SemanticScuttle/includes/js/dojo/tests/DeferredList.js

206 lines
5.4 KiB
JavaScript

if(!dojo._hasResource["tests.DeferredList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["tests.DeferredList"] = true;
dojo.provide("tests.DeferredList");
dojo.require("dojo.DeferredList");
doh.register("tests.DeferredList",
[
function callback(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
console.log("res: ", res, res.length);
t.assertTrue(res.length == 2);
t.assertTrue(res[0][0]);
t.assertEqual(res[0][1], "foo");
t.assertTrue(res[1][0]);
t.assertEqual(res[1][1], "bar");
fired = true;
return res;
});
d1.callback("foo");
d2.callback("bar");
t.assertTrue(fired);
},
function errback(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
var e1 = new Error("foo");
var e2 = new Error("bar");
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
t.assertTrue(res.length == 2);
t.assertTrue(!res[0][0]);
t.assertEqual(res[0][1], e1);
t.assertTrue(!res[1][0]);
t.assertEqual(res[1][1], e2);
fired = true;
return res;
});
d1.errback(e1);
d2.errback(e2);
t.assertTrue(fired);
},
function mixed(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
var e = new Error("foo");
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
t.assertTrue(res.length == 2);
t.assertTrue(!res[0][0]);
t.assertEqual(res[0][1], e);
t.assertTrue(res[1][0]);
t.assertEqual(res[1][1], "bar");
fired = true;
return res;
});
d1.errback(e);
d2.callback("bar");
t.assertTrue(fired);
},
function gather(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = dojo.DeferredList.prototype.gatherResults([d1, d2]);
var fired = false;
dl.addCallback(function(res){
t.assertEqual(res[0], "foo");
t.assertEqual(res[1], "bar");
fired = true;
return res;
});
d1.callback("foo");
d2.callback("bar");
t.assertTrue(fired);
}
]
);
dojo.provide("tests.DeferredList");
dojo.require("dojo.DeferredList");
doh.register("tests.DeferredList",
[
function callback(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
t.assertTrue(res.length == 2);
t.assertTrue(res[0][0]);
t.assertEqual(res[0][1], "foo");
t.assertTrue(res[1][0]);
t.assertEqual(res[1][1], "bar");
fired = true;
return res;
});
d1.callback("foo");
d2.callback("bar");
t.assertTrue(fired);
},
function errback(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
var e1 = new Error("foo");
var e2 = new Error("bar");
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
t.assertTrue(res.length == 2);
t.assertTrue(!res[0][0]);
t.assertEqual(res[0][1], e1);
t.assertTrue(!res[1][0]);
t.assertEqual(res[1][1], e2);
fired = true;
return res;
});
d1.errback(e1);
d2.errback(e2);
t.assertTrue(fired);
},
function mixed(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = new dojo.DeferredList([d1, d2]);
var fired = false;
var e = new Error("foo");
dl.addCallback(function(res){
doh.debug("debug from dojo.DeferredList callback");
return res;
});
dl.addCallback(function(res){
t.assertTrue(res.length == 2);
t.assertTrue(!res[0][0]);
t.assertEqual(res[0][1], e);
t.assertTrue(res[1][0]);
t.assertEqual(res[1][1], "bar");
fired = true;
return res;
});
d1.errback(e);
d2.callback("bar");
t.assertTrue(fired);
},
function gather(t){
var d1 = new dojo.Deferred();
var d2 = new dojo.Deferred();
var dl = dojo.DeferredList.prototype.gatherResults([d1, d2]);
var fired = false;
dl.addCallback(function(res){
t.assertEqual(res[0], "foo");
t.assertEqual(res[1], "bar");
fired = true;
return res;
});
d1.callback("foo");
d2.callback("bar");
t.assertTrue(fired);
}
]
);
}