You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
9.2 KiB
274 lines
9.2 KiB
define(["doh/runner"], function(doh) { |
|
|
|
|
|
doh.register("doh/selftest/lastTest", function(t){ |
|
t.assertTrue(true); |
|
}); |
|
|
|
var |
|
tObj1 = { a:0, b:1, c:true, d:false, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, |
|
tObj2 = { a:0, b:1, c:true, d:false, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, // equal |
|
tObja = { a:1, b:1, c:true, d:false, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, // delta a |
|
tObjb = { a:0, b:2, c:true, d:false, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, // delta b |
|
tObjc = { a:0, b:1, c:false, d:false, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, // delta c |
|
tObjd = { a:0, b:1, c:true, d:true, e:{}, f:{a:"x"}, g:"", h:"hellp", i:null}, // delta d |
|
tObje = { a:0, b:1, c:true, d:false, e:{a:"x"}, f:{a:"x"}, g:"", h:"hellp", i:null}, // delta e |
|
tObjf1= { a:0, b:1, c:true, d:false, e:{}, f:{a:"y"}, g:"", h:"hellp", i:null}, // delta f.a |
|
tObjf2= { a:0, b:1, c:true, d:false, e:{}, f:{b:"x"}, g:"", h:"hellp", i:null}, // delta f, property |
|
tObjg = { a:0, b:1, c:true, d:false, e:{}, f:{}, g:"x", h:"hellp", i:null}, // delta g |
|
tObjh = { a:0, b:1, c:true, d:false, e:{}, f:{}, g:"", h:"hello", i:null}, // delta h |
|
tObji = { a:0, b:1, c:true, d:false, e:{}, f:{}, g:"", h:"hellp", i:0}, // delta i |
|
|
|
tArray1 = [0, 1, true, false, {}, {a:"x"}, "", "hello", null], |
|
tArray2 = [0, 1, true, false, {}, {a:"x"}, "", "hello", null], |
|
tArraya = [1, 1, true, false, {}, {a:"x"}, "", "hellp", null], // delta a |
|
tArrayb = [0, 2, true, false, {}, {a:"x"}, "", "hellp", null], // delta b |
|
tArrayc = [0, 1, false, false, {}, {a:"x"}, "", "hellp", null], // delta c |
|
tArrayd = [0, 1, true, true, {}, {a:"x"}, "", "hellp", null], // delta d |
|
tArraye = [0, 1, true, false, {a:"x"}, {a:"x"}, "", "hellp", null], // delta e |
|
tArrayf1= [0, 1, true, false, {}, {a:"y"}, "", "hellp", null], // delta f.a |
|
tArrayf2= [0, 1, true, false, {}, {b:"x"}, "", "hellp", null], // delta f, property |
|
tArrayg = [0, 1, true, false, {}, {}, "x", "hellp", null], // delta g |
|
tArrayh = [0, 1, true, false, {}, {}, "", "hello", null], // delta h |
|
tArrayi = [0, 1, true, false, {}, {}, "", "hellp", 0]; // delta i |
|
|
|
|
|
doh.register("doh/asserts/pass", function(t){ |
|
function check(method, args){ |
|
t[method].apply(t, args); |
|
}; |
|
|
|
check("assertTrue", [true]); |
|
check("assertTrue", [{}]); |
|
check("assertTrue", [1]); |
|
//check("assertTrue", ["hello"]); |
|
|
|
check("assertFalse", [false]); |
|
check("assertFalse", [0]); |
|
check("assertFalse", [null]); |
|
check("assertFalse", [undefined]); |
|
check("assertFalse", [(function(){})()]); |
|
|
|
check("assertEqual", [[], []]); |
|
check("assertEqual", [[1], [1]]); |
|
check("assertEqual", [[1,2], [1,2]]); |
|
check("assertEqual", [[1,2,3], [1,2,3]]); |
|
check("assertEqual", [tObj1, tObj1]); |
|
check("assertEqual", [tObj1, tObj2]); |
|
check("assertEqual", [tArray1, tArray2]); |
|
|
|
check("assertNotEqual", [tObj1, tObja]); |
|
check("assertNotEqual", [tObj1, tObjb]); |
|
check("assertNotEqual", [tObj1, tObjc]); |
|
check("assertNotEqual", [tObj1, tObjd]); |
|
check("assertNotEqual", [tObj1, tObje]); |
|
check("assertNotEqual", [tObj1, tObjf1]); |
|
check("assertNotEqual", [tObj1, tObjf2]); |
|
check("assertNotEqual", [tObj1, tObjg]); |
|
check("assertNotEqual", [tObj1, tObjh]); |
|
check("assertNotEqual", [tObj1, tObji]); |
|
|
|
check("assertNotEqual", [tArray1, tArraya]); |
|
check("assertNotEqual", [tArray1, tArrayb]); |
|
check("assertNotEqual", [tArray1, tArrayc]); |
|
check("assertNotEqual", [tArray1, tArrayd]); |
|
check("assertNotEqual", [tArray1, tArraye]); |
|
check("assertNotEqual", [tArray1, tArrayf1]); |
|
check("assertNotEqual", [tArray1, tArrayf2]); |
|
check("assertNotEqual", [tArray1, tArrayg]); |
|
check("assertNotEqual", [tArray1, tArrayh]); |
|
check("assertNotEqual", [tArray1, tArrayi]); |
|
}); |
|
|
|
doh.register("doh/asserts/fail", function(t){ |
|
function check(method, args){ |
|
try{ |
|
t[method].apply(t, args); |
|
}catch(e){ |
|
t.assertTrue(true); |
|
return; |
|
} |
|
throw new doh._AssertFailure("failed: " + method); |
|
} |
|
check("assertFalse", [true]); |
|
check("assertFalse", [{}]); |
|
check("assertFalse", [1]); |
|
//check("assertFalse", ["hello"]); |
|
|
|
check("assertTrue", [false]); |
|
check("assertTrue", [0]); |
|
check("assertTrue", [null]); |
|
check("assertTrue", [undefined]); |
|
check("assertTrue", [(function(){})()]); |
|
|
|
check("assertNotEqual", [[], []]); |
|
check("assertNotEqual", [[1], [1]]); |
|
check("assertNotEqual", [[1,2], [1,2]]); |
|
check("assertNotEqual", [[1,2,3], [1,2,3]]); |
|
check("assertNotEqual", [tObj1, tObj1]); |
|
check("assertNotEqual", [tObj1, tObj2]); |
|
check("assertNotEqual", [tArray1, tArray2]); |
|
|
|
check("assertEqual", [tObj1, tObja]); |
|
check("assertEqual", [tObj1, tObjb]); |
|
check("assertEqual", [tObj1, tObjc]); |
|
check("assertEqual", [tObj1, tObjd]); |
|
check("assertEqual", [tObj1, tObje]); |
|
check("assertEqual", [tObj1, tObjf1]); |
|
check("assertEqual", [tObj1, tObjf2]); |
|
check("assertEqual", [tObj1, tObjg]); |
|
check("assertEqual", [tObj1, tObjh]); |
|
check("assertEqual", [tObj1, tObji]); |
|
|
|
check("assertEqual", [tArray1, tArraya]); |
|
check("assertEqual", [tArray1, tArrayb]); |
|
check("assertEqual", [tArray1, tArrayc]); |
|
check("assertEqual", [tArray1, tArrayd]); |
|
check("assertEqual", [tArray1, tArraye]); |
|
check("assertEqual", [tArray1, tArrayf1]); |
|
check("assertEqual", [tArray1, tArrayf2]); |
|
check("assertEqual", [tArray1, tArrayg]); |
|
check("assertEqual", [tArray1, tArrayh]); |
|
check("assertEqual", [tArray1, tArrayi]); |
|
}); |
|
|
|
// test the highly overloaded doh.register signature |
|
var currentFixture; |
|
dojo.connect(doh, "_testStarted", function(groupId, fixture){ |
|
currentFixture= fixture; |
|
}); |
|
|
|
var lastId; |
|
function f(id, tid) { |
|
return function() { |
|
if(tid){ |
|
doh.assertTrue(currentFixture.name==tid); |
|
} |
|
if(id){ |
|
doh.assertTrue(lastId+1==id); |
|
lastId= id; |
|
} |
|
}; |
|
}; |
|
|
|
var hijack= doh._setupGroupForRun; |
|
doh._setupGroupForRun= function(groupName){ |
|
lastId= 0; |
|
hijack.call(doh, groupName); |
|
}; |
|
|
|
// note: the tests that are commented out below all have zero for the setup function |
|
// and a real teardown function. For now, this is |
|
|
|
|
|
doh.register("myGroup2-1", f(2), f(1), f(3)); |
|
doh.register("myGroup2-2", f(2), f(1)); |
|
doh.register("myGroup2-4", f(1)); |
|
|
|
dohSelfTestLog5= f(2); |
|
dohSelfTestLog6= f(2); |
|
dohSelfTestLog7= f(1); |
|
dohSelfTestLog8= f(1); |
|
|
|
doh.register("myGroup2-5", "dohSelfTestLog5();", f(1), f(3)); |
|
doh.register("myGroup2-6", "dohSelfTestLog6();", f(1)); |
|
doh.register("myGroup2-8", "dohSelfTestLog8();"); |
|
|
|
doh.register("myGroup2-9", [f(2), f(3)], f(1), f(4)); |
|
doh.register("myGroup2-10", [f(2), f(3)], f(1)); |
|
doh.register("myGroup2-12", [f(1), f(2)]); |
|
|
|
doh.register("myGroup2-13", {t1:f(0, "t1"), t2:f(0, "t2")}, f(1), f(2)); |
|
doh.register("myGroup2-14", {t3:f(0, "t3"), t4:f(0, "t4")}, f(1)); |
|
doh.register("myGroup2-16", {t7:f(0, "t7"), t8:f(0, "t8")}); |
|
|
|
doh.register("myGroup2-17", {name:"t9", runTest:f(2, "t9")}, f(1), f(3)); |
|
doh.register("myGroup2-18", {name:"t10", runTest:f(2, "t10")}, f(1)); |
|
doh.register("myGroup2-20", {name:"t12", runTest:f(1, "t12")}); |
|
|
|
doh.register("myGroup2-21", {name:"tx", runTest:f(3), setUp:f(2)}, f(1), f(4)); |
|
doh.register("myGroup2-22", {name:"tx", runTest:f(3), setUp:f(2)}, f(1)); |
|
doh.register("myGroup2-24", {name:"tx", runTest:f(2), setUp:f(1)}); |
|
|
|
doh.register("myGroup2-25", {name:"tx", runTest:f(2), tearDown:f(3)}, f(1), f(4)); |
|
doh.register("myGroup2-26", {name:"tx", runTest:f(2), tearDown:f(3)}, f(1)); |
|
doh.register("myGroup2-28", {name:"tx", runTest:f(1), tearDown:f(2)}); |
|
|
|
doh.register("myGroup2-29", {name:"tx", runTest:f(3), setUp:f(2), tearDown:f(4)}, f(1), f(5)); |
|
doh.register("myGroup2-30", {name:"tx", runTest:f(3), setUp:f(2), tearDown:f(4)}, f(1)); |
|
doh.register("myGroup2-32", {name:"tx", runTest:f(2), setUp:f(1), tearDown:f(3)}); |
|
|
|
//v1.6- signatures |
|
//TODO |
|
|
|
doh.registerTestType("dohSelfTest", function(group, fixture){ |
|
}); |
|
// a stone-stupid async test |
|
doh.register("doh/async", [{ |
|
name: "doh.Deferred success", |
|
runTest: function(t){ |
|
var d = new doh.Deferred(); |
|
setTimeout(d.getTestCallback(function(){ |
|
t.assertTrue(true); |
|
t.assertFalse(false); |
|
}), 50); |
|
return d; |
|
} |
|
},{ |
|
name: "dojo.Deferred success", |
|
runTest: function(t){ |
|
var d = new dojo.Deferred(); |
|
setTimeout(function(){ |
|
d.resolve(true); |
|
}, 50); |
|
return d; |
|
} |
|
},{ |
|
name: "doh.Deferred failure--SHOULD FAIL", |
|
runTest: function(t){ |
|
console.log("running test that SHOULD FAIL"); |
|
var d = new doh.Deferred(); |
|
setTimeout(d.getTestCallback(function(){ |
|
t.assertTrue(false); |
|
}), 50); |
|
return d; |
|
} |
|
},{ |
|
name: "dojo.Deferred failure--SHOULD FAIL", |
|
runTest: function(t){ |
|
console.log("running test that SHOULD FAIL"); |
|
var d = new dojo.Deferred(); |
|
setTimeout(function(){ |
|
d.reject(new Error("hrm...")); |
|
}, 50); |
|
return d; |
|
} |
|
},{ |
|
name: "doh.Deferred timeout failure--SHOULD FAIL", |
|
timeout: 50, |
|
runTest: function(t){ |
|
console.log("running test that SHOULD FAIL"); |
|
// timeout of 50 |
|
var d = new doh.Deferred(); |
|
setTimeout(d.getTestCallback(function(){ |
|
}), 100); |
|
return d; |
|
} |
|
},{ |
|
name: "dojo.Deferred timeout failure--SHOULD FAIL", |
|
timeout: 50, |
|
runTest: function(t){ |
|
console.log("running test that SHOULD FAIL"); |
|
// timeout of 50 |
|
var d = new dojo.Deferred(); |
|
setTimeout(function(){ |
|
d.callback(true); |
|
}, 100); |
|
return d; |
|
} |
|
}]); |
|
|
|
doh.register("doh/selftest/lastTest", function(t){ |
|
t.assertTrue(true); |
|
}); |
|
});
|
|
|