Refactored the testsuite code with the hope in mind to make the test suite run faster

This commit is contained in:
Jörn Zaefferer 2006-09-05 19:50:13 +00:00
parent b5220adbbc
commit ded1402498

View File

@ -1,13 +1,10 @@
var queue = [];
var blocking = false;
var fixture;
function reset() {
if(fixture) {
$("#main").html(fixture);
} else {
fixture = $("#main").html();
}
function reset(fixture) {
synchronize(function() {
document.getElementById('main').innerHTML = fixture;
});
}
function synchronize(callback) {
@ -26,14 +23,15 @@ function process() {
}
function runTests(files) {
var fixture = null;
reset();
var fixture = document.getElementById('main').innerHTML;
var startTime = new Date();
for( var i=0; i < files.length; i++) {
runTest( files, i );
reset(fixture);
}
synchronize(function() {
var runTime = new Date() - startTime;
// lets use jQuery for this, its not important anyway
$('body').append('<br/>Tests completed in ' + runTime + ' milliseconds.');
});
}
@ -41,7 +39,14 @@ function runTests(files) {
function runTest( files, num ) {
synchronize(function() {
blocking = true;
$.get(files[num],function(js){
$.get(files[num],function(js) {
evaluateTest(files, num, js);
});
});
}
function evaluateTest(files, num, js) {
var Test = [];
js = js.replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&amp;/g, "&");
try {
@ -49,6 +54,7 @@ function runTest( files, num ) {
} catch(e) {
if(typeof console != "undefined")
console.error(e);
console.debug(js);
Test.push( [ false, "Died on test #" + (Test.length+1) + ": " + e ] );
}
@ -86,27 +92,20 @@ function runTest( files, num ) {
document.getElementById("tests").appendChild( li );
Test = [];
reset();
blocking = false;
process();
});
});
}
var Test = [];
function ok(a, msg) {
function ok(a, msg) {
Test.push( [ !!a, msg ] );
}
}
function cmpOK( a, c, b, msg ) {
function cmpOK( a, c, b, msg ) {
var res;
eval( "res = (a " + c + " b)" );
Test.push( [ res, msg ] );
}
}
function isSet(a, b, msg) {
function isSet(a, b, msg) {
var ret = true;
if ( a && b && a.length == b.length ) {
@ -120,18 +119,18 @@ function isSet(a, b, msg) {
console.log( msg, a, b );
Test.push( [ ret, msg ] );
}
}
function q() {
function q() {
var r = [];
for ( var i = 0; i < arguments.length; i++ )
r.push( document.getElementById( arguments[i] ) );
return r;
}
}
function t(a,b,c) {
function t(a,b,c) {
var f = jQuery.find(b);
var s = "";
@ -139,20 +138,5 @@ function t(a,b,c) {
s += (s && ",") + '"' + f[i].id + '"';
isSet(f, q.apply(q,c), a + " (" + b + ")");
}
}
function o(a) {
var li = document.createElement("li");
li.innerHTML = a;
if ( a.indexOf("#") == 0 )
li.className = "comment";
else if ( a.indexOf("TODO") >= 0 )
li.className = "todo";
else if ( a.indexOf("not ok") == 0 )
li.classname = "fail";
else
li.className = "pass";
document.getElementById("test").appendChild(li);
}
//plan({noPlan: true});