sample skeleton application with dojo toolkit & arcgis js api v 4.30
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.
 
 
 
 
 
 

193 lines
4.5 KiB

define(["../main", "doh/main", "../DeferredList"], function(dojo, doh){
doh.register("testsDOH.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);
}
]);
doh.register("testsDOH.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);
}
]);
});