X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=build%2Fjs%2Flib%2FTest%2FHarness.js;fp=build%2Fjs%2Flib%2FTest%2FHarness.js;h=0000000000000000000000000000000000000000;hb=61aab47bcf4c35d021a88d95b7a17643d1342596;hp=e43dc5c92fbbd8f880a9b9a3d88963110550b93a;hpb=e943090a72fada9068705a701e2f37ca2907d310;p=jquery.git diff --git a/build/js/lib/Test/Harness.js b/build/js/lib/Test/Harness.js deleted file mode 100644 index e43dc5c..0000000 --- a/build/js/lib/Test/Harness.js +++ /dev/null @@ -1,267 +0,0 @@ -// # $Id: Kinetic.pm 1493 2005-04-07 19:20:18Z theory $ - -// Set up namespace. -if (typeof self != 'undefined') { - //Browser - if (typeof Test == 'undefined') Test = {PLATFORM: 'browser'}; - else Test.PLATFORM = 'browser'; -} else if (typeof _player != 'undefined'){ - //Director - if (typeof _global.Test != "object") _global.Test = {PLATFORM: 'director'}; - else _global.Test.PLATFORM = 'director'; -} else { - throw new Error("Test.Harness does not support your platform"); -} - -Test.Harness = function () {}; -Test.Harness.VERSION = '0.11'; -Test.Harness.Done = 0; - -// Stoopid IE. -Test.Harness.LF = typeof document != "undefined" - && typeof document.all != "undefined" - ? "\r" - : "\n"; - -Test.Harness.prototype.isDone = Test.Harness.isDone; - -/* - - bonus Number of individual todo tests unexpectedly passed - ran Number of individual tests ran - ok Number of individual tests passed - subSkipped Number of individual tests skipped - todo Number of individual todo tests - - files Number of test files ran - good Number of test files passed - bad Number of test files failed - tests Number of test files originally given - skipped Number of test files skipped - -*/ - -Test.Harness.prototype.bonus = 0; -Test.Harness.prototype.ran = 0; -Test.Harness.prototype.ok = 0; -Test.Harness.prototype.subSkipped = 0; -Test.Harness.prototype.todo = 0; -Test.Harness.prototype.files = 0; -Test.Harness.prototype.good = 0; -Test.Harness.prototype.bad = 0; -Test.Harness.prototype.tests = 0; -Test.Harness.prototype.skipped = 0; -Test.Harness.prototype.failures = []; - -Test.Harness.runTests = function () { - // XXX Can't handle inheritance, right? Or can we? - var harness = new Test.Harness(); - harness.runTests.apply(harness, arguments); -}; - -Test.Harness.prototype.outFileNames = function (files) { - var len = 0; - for (var i = 0; i < files.length; i++) { - if (files[i].length > len) len = files[i].length; - } - len += 3; - var ret = []; - for (var i = 0; i < files.length; i++) { - var outName = files[i]; - var add = len - files[i].length; - // Where is Perl's x operator when I need it?? - for (var j = 0; j < add; j++) { - outName += '.'; - } - ret.push(outName); - } - return ret; -}; - -Test.Harness.prototype.outputResults = function (test, file, fn, attrs) { - this.tests++; - this.ran += test.TestResults.length; - var fails = []; - var track = { - fn: file, - total: test.expectedTests, - ok: 0, - failList: [] - }; - - if (test.TestResults.length) { - this.files++; - var pass = true; - for (var i = 0; i < test.TestResults.length; i++) { - var ok = "ok"; - if (test.TestResults[i].ok) { - this.ok++; - track.ok++ - if (test.TestResults[i].type == 'todo') { - // Handle unexpected pass. - if (test.TestResults[i].actualOK) this.bonus++; - this.todo ++; - } else if (test.TestResults[i].type == 'skip') this.subSkipped++; - } else { - if (test.TestResults[i].type == 'todo') { - // Expected failure. - this.todo++; - } else { - pass = false; - track.failList.push(i + 1); - } - ok = "not ok"; // XXX Need to handle TODO and TODO Skipped. - } - - if (!pass || attrs.verbose) fn(test.TestResults[i].output); - } - - if (pass) { - this.good++; - fn("ok" + Test.Harness.LF); - } else { - this.bad++; - var err = "NOK # Failed "; - if (track.failList.length == 1) { - err += "test " + track.failList[0]; - } else { - err += "tests " + this._failList(track.failList); - } - fn(err + " in " + file + Test.Harness.LF); - } - } else if (test.SkipAll){ - // All tests skipped. - this.skipped++; - this.good++; - fn("1..0 # Skip 1" + Test.Harness.LF); - } else { - // Wha happened? Tests ran, but no results! - this.files++; - this.bad++; - fn("FAILED before any test output arrived" + Test.Harness.LF); - } - if (track.failList.length) this.failures.push(track); -}; - -Test.Harness.prototype._allOK = function () { - return this.bad == 0 && (this.ran || this.skipped) ? true : false; -}; - -Test.Harness.prototype.outputSummary = function (fn, time) { - var bonusmsg = this._bonusmsg(); - var pct; - if (this._allOK()) { - fn("All tests successful" + bonusmsg + '.' + Test.Harness.LF); - } else if (!this.tests) { - fn("FAILED—no tests were run for some reason." + Test.Harness.LF); - } else if (!this.ran) { - var blurb = this.tests == 1 ? "file" : "files"; - fn("FAILED—" + this.tests + " test " + blurb + " could be run, " - + "alas—no output ever seen." + Test.Harness.LF); - } else { - pct = this.good / this.tests * 100; - var pctOK = 100 * this.ok / this.ran; - var subpct = (this.ran - this.ok) + "/" + this.ran - + " subtests failed, " + pctOK.toPrecision(4) + "% okay."; - - if (this.bad) { - bonusmsg = bonusmsg.replace(/^,?\s*/, ''); - if (bonusmsg) fn(bonusmsg + '.' + Test.Harness.LF); - fn("Failed " + this.bad + "/" + this.tests + " test scripts, " - + pct.toPrecision(4) + "% okay. " + subpct + Test.Harness.LF); - } - this.formatFailures(fn); - } - - fn("Files=" + this.tests + ", Tests=" + this.ran + ", " + (time / 1000) - + " seconds" + Test.Harness.LF); -}; - -Test.Harness.prototype.formatFailures = function () { - var table = ''; - var failedStr = "Failed Test"; - var middleStr = " Total Fail Failed "; - var listStr = "List of Failed"; - var cols = 80; - - // Figure out our longest name string for formatting purposes. - var maxNamelen = failedStr.length; - for (var i = 0; i < this.failures.length; i++) { - var len = this.failures[i].length; - if (len > maxNamelen) maxNamelen = len; - } - - var listLen = cols - middleStr.length - maxNamelen.length; - if (listLen < listStr.length) { - listLen = listStr.length; - maxNamelen = cols - middleStr.length - listLen; - if (maxNamelen < failedStr.length) { - maxNamelen = failedStr.length; - cols = maxNamelen + middleStr.length + listLen; - } - } - - var out = failedStr; - if (out.length < maxNamelen) { - for (var j = out.length; j < maxNameLength; j++) { - out += ' '; - } - } - out += ' ' + middleStr; - // XXX Need to finish implementing the text-only version of the failures - // table. -}; - -Test.Harness.prototype._bonusmsg = function () { - var bonusmsg = ''; - if (this.bonus) { - bonusmsg = (" (" + this.bonus + " subtest" + (this.bonus > 1 ? 's' : '') - + " UNEXPECTEDLY SUCCEEDED)"); - } - - if (this.skipped) { - bonusmsg += ", " + this.skipped + " test" - + (this.skipped != 1 ? 's' : ''); - if (this.subSkipped) { - bonusmsg += " and " + this.subSkipped + " subtest" - + (this.subSkipped != 1 ? 's' : ''); - } - bonusmsg += ' skipped'; - } else if (this.subSkipped) { - bonusmsg += ", " + this.subSkipped + " subtest" - + (this.subSkipped != 1 ? 's' : '') + " skipped"; - } - - return bonusmsg; -} - -Test.Harness.prototype._failList = function (fails) { - var last = -1; - var dash = ''; - var list = []; - for (var i = 0; i < fails.length; i++) { - if (dash) { - // We're in a series of numbers. - if (fails[i] - 1 == last) { - // We're still in it. - last = fails[i]; - } else { - // End of the line. - list[list.length-1] += dash + last; - last = -1; - list.push(fails[i]); - dash = ''; - } - } else if (fails[i] - 1 == last) { - // We're in a new series. - last = fails[i]; - dash = '-'; - } else { - // Not in a sequence. - list.push(fails[i]); - last = fails[i]; - } - } - if (dash) list[list.length-1] += dash + last; - return list.join(' '); -}