source: Dev/trunk/src/client/dojo/tests/DeferredList.js

Last change on this file was 483, checked in by hendrikvanantwerpen, 11 years ago

Added Dojo 1.9.3 release.

File size: 4.5 KB
Line 
1define(["../main", "doh/main", "../DeferredList"], function(dojo, doh){
2        doh.register("tests.DeferredList", [
3                function callback(t){
4                        var d1 = new dojo.Deferred();
5                        var d2 = new dojo.Deferred();
6                        var dl = new dojo.DeferredList([d1, d2]);
7                        var fired = false;
8
9                        dl.addCallback(function(res){
10                                doh.debug("debug from dojo.DeferredList callback");
11                                return res;
12                        });
13                        dl.addCallback(function(res){
14                                console.log("res: ", res, res.length);
15                                t.assertTrue(res.length == 2);
16                                t.assertTrue(res[0][0]);
17                                t.assertEqual(res[0][1], "foo");
18                                t.assertTrue(res[1][0]);
19                                t.assertEqual(res[1][1], "bar");
20                                fired = true;
21                                return res;
22                        });
23                        d1.callback("foo");
24                        d2.callback("bar");
25                        t.assertTrue(fired);
26                },
27
28                function errback(t){
29                        var d1 = new dojo.Deferred();
30                        var d2 = new dojo.Deferred();
31                        var dl = new dojo.DeferredList([d1, d2]);
32                        var fired = false;
33                        var e1 = new Error("foo");
34                        var e2 = new Error("bar");
35
36                        dl.addCallback(function(res){
37                                doh.debug("debug from dojo.DeferredList callback");
38                                return res;
39                        });
40                        dl.addCallback(function(res){
41                                t.assertTrue(res.length == 2);
42                                t.assertTrue(!res[0][0]);
43
44                                t.assertEqual(res[0][1], e1);
45                                t.assertTrue(!res[1][0]);
46                                t.assertEqual(res[1][1], e2);
47                                fired = true;
48                                return res;
49                        });
50                        d1.errback(e1);
51                        d2.errback(e2);
52                        t.assertTrue(fired);
53                },
54
55
56                function mixed(t){
57                        var d1 = new dojo.Deferred();
58                        var d2 = new dojo.Deferred();
59                        var dl = new dojo.DeferredList([d1, d2]);
60                        var fired = false;
61                        var e = new Error("foo");
62
63                        dl.addCallback(function(res){
64                                doh.debug("debug from dojo.DeferredList callback");
65                                return res;
66                        });
67                        dl.addCallback(function(res){
68                                t.assertTrue(res.length == 2);
69                                t.assertTrue(!res[0][0]);
70
71                                t.assertEqual(res[0][1], e);
72                                t.assertTrue(res[1][0]);
73                                t.assertEqual(res[1][1], "bar");
74                                fired = true;
75                                return res;
76                        });
77                        d1.errback(e);
78                        d2.callback("bar");
79                        t.assertTrue(fired);
80                },
81
82                function gather(t){
83                        var d1 = new dojo.Deferred();
84                        var d2 = new dojo.Deferred();
85                        var dl = dojo.DeferredList.prototype.gatherResults([d1, d2]);
86                        var fired = false;
87                        dl.addCallback(function(res){
88                                t.assertEqual(res[0], "foo");
89                                t.assertEqual(res[1], "bar");
90                                fired = true;
91                                return res;
92                        });
93                        d1.callback("foo");
94                        d2.callback("bar");
95                        t.assertTrue(fired);
96                }
97        ]);
98
99        doh.register("tests.DeferredList", [
100                function callback(t){
101                        var d1 = new dojo.Deferred();
102                        var d2 = new dojo.Deferred();
103                        var dl = new dojo.DeferredList([d1, d2]);
104                        var fired = false;
105                        dl.addCallback(function(res){
106                                doh.debug("debug from dojo.DeferredList callback");
107                                return res;
108                        });
109                        dl.addCallback(function(res){
110                                t.assertTrue(res.length == 2);
111                                t.assertTrue(res[0][0]);
112                                t.assertEqual(res[0][1], "foo");
113                                t.assertTrue(res[1][0]);
114                                t.assertEqual(res[1][1], "bar");
115                                fired = true;
116                                return res;
117                        });
118                        d1.callback("foo");
119                        d2.callback("bar");
120                        t.assertTrue(fired);
121                },
122
123                function errback(t){
124                        var d1 = new dojo.Deferred();
125                        var d2 = new dojo.Deferred();
126                        var dl = new dojo.DeferredList([d1, d2]);
127                        var fired = false;
128                        var e1 = new Error("foo");
129                        var e2 = new Error("bar");
130
131                        dl.addCallback(function(res){
132                                doh.debug("debug from dojo.DeferredList callback");
133                                return res;
134                        });
135                        dl.addCallback(function(res){
136                                t.assertTrue(res.length == 2);
137                                t.assertTrue(!res[0][0]);
138
139                                t.assertEqual(res[0][1], e1);
140                                t.assertTrue(!res[1][0]);
141                                t.assertEqual(res[1][1], e2);
142                                fired = true;
143                                return res;
144                        });
145                        d1.errback(e1);
146                        d2.errback(e2);
147                        t.assertTrue(fired);
148                },
149
150
151                function mixed(t){
152                        var d1 = new dojo.Deferred();
153                        var d2 = new dojo.Deferred();
154                        var dl = new dojo.DeferredList([d1, d2]);
155                        var fired = false;
156                        var e = new Error("foo");
157
158                        dl.addCallback(function(res){
159                                doh.debug("debug from dojo.DeferredList callback");
160                                return res;
161                        });
162                        dl.addCallback(function(res){
163                                t.assertTrue(res.length == 2);
164                                t.assertTrue(!res[0][0]);
165
166                                t.assertEqual(res[0][1], e);
167                                t.assertTrue(res[1][0]);
168                                t.assertEqual(res[1][1], "bar");
169                                fired = true;
170                                return res;
171                        });
172                        d1.errback(e);
173                        d2.callback("bar");
174                        t.assertTrue(fired);
175                },
176
177                function gather(t){
178                        var d1 = new dojo.Deferred();
179                        var d2 = new dojo.Deferred();
180                        var dl = dojo.DeferredList.prototype.gatherResults([d1, d2]);
181                        var fired = false;
182                        dl.addCallback(function(res){
183                                t.assertEqual(res[0], "foo");
184                                t.assertEqual(res[1], "bar");
185                                fired = true;
186                                return res;
187                        });
188                        d1.callback("foo");
189                        d2.callback("bar");
190                        t.assertTrue(fired);
191                }
192        ]);
193});
Note: See TracBrowser for help on using the repository browser.