| 165 | | |
|---|
| 166 | | /* |
|---|
| 167 | | Test DeferredList |
|---|
| 168 | | */ |
|---|
| 169 | | |
|---|
| 170 | | var callList = new Array(3); |
|---|
| 171 | | callList[0] = new Deferred(); |
|---|
| 172 | | callList[1] = new Deferred(); |
|---|
| 173 | | callList[2] = new Deferred(); |
|---|
| 174 | | callList[0].addCallback(increment); |
|---|
| 175 | | callList[1].addCallback(increment); |
|---|
| 176 | | callList[2].addCallback(increment); |
|---|
| 177 | | var defList = new DeferredList(callList); |
|---|
| 178 | | callList[0].callback(3); |
|---|
| 179 | | callList[1].callback(5); |
|---|
| 180 | | callList[2].callback(4); |
|---|
| 181 | | |
|---|
| 182 | | defList.addCallback(function (lst) { |
|---|
| 183 | | is( arrayEqual(lst, [[true, 4], [true, 6], [true, 5]]), 1, |
|---|
| 184 | | "deferredlist result ok" ); |
|---|
| 185 | | }); |
|---|
| 186 | | |
|---|
| 187 | | /* |
|---|
| 188 | | Test fireOnOneCallback |
|---|
| 189 | | */ |
|---|
| 190 | | |
|---|
| 191 | | var callList2 = new Array(3); |
|---|
| 192 | | callList2[0] = new Deferred(); |
|---|
| 193 | | callList2[1] = new Deferred(); |
|---|
| 194 | | callList2[2] = new Deferred(); |
|---|
| 195 | | callList2[0].addCallback(increment); |
|---|
| 196 | | callList2[1].addCallback(increment); |
|---|
| 197 | | callList2[2].addCallback(increment); |
|---|
| 198 | | var defList2 = new DeferredList(callList2, true); |
|---|
| 199 | | callList2[1].callback(5); |
|---|
| 200 | | callList2[0].callback(3); |
|---|
| 201 | | callList2[2].callback(4); |
|---|
| 202 | | |
|---|
| 203 | | defList2.addCallback(function (lst) { |
|---|
| 204 | | is( arrayEqual(lst, [1, 6]), 1, "deferredlist fireOnOneCallback ok" ); |
|---|
| 205 | | }); |
|---|
| 206 | | |
|---|
| 207 | | /* |
|---|
| 208 | | Test fireOnOneErrback |
|---|
| 209 | | */ |
|---|
| 210 | | |
|---|
| 211 | | var callList3 = new Array(3); |
|---|
| 212 | | callList3[0] = new Deferred(); |
|---|
| 213 | | callList3[1] = new Deferred(); |
|---|
| 214 | | callList3[2] = new Deferred(); |
|---|
| 215 | | callList3[0].addCallback(increment); |
|---|
| 216 | | callList3[1].addCallback(throwStuff); |
|---|
| 217 | | callList3[2].addCallback(increment); |
|---|
| 218 | | var defList3 = new DeferredList(callList3, false, true); |
|---|
| 219 | | callList3[0].callback(3); |
|---|
| 220 | | callList3[1].callback("foo"); |
|---|
| 221 | | callList3[2].callback(4); |
|---|
| 222 | | |
|---|
| 223 | | defList3.addErrback(function (err) { |
|---|
| 224 | | is( err.message, "foo", "deferredlist fireOnOneErrback ok" ); |
|---|
| 225 | | }); |
|---|
| 226 | | |
|---|
| 227 | | /* |
|---|
| 228 | | Test consumeErrors |
|---|
| 229 | | */ |
|---|
| 230 | | |
|---|
| 231 | | var callList4 = new Array(3); |
|---|
| 232 | | callList4[0] = new Deferred(); |
|---|
| 233 | | callList4[1] = new Deferred(); |
|---|
| 234 | | callList4[2] = new Deferred(); |
|---|
| 235 | | callList4[0].addCallback(increment); |
|---|
| 236 | | callList4[1].addCallback(throwStuff); |
|---|
| 237 | | callList4[2].addCallback(increment); |
|---|
| 238 | | var defList4 = new DeferredList(callList4, false, false, true); |
|---|
| 239 | | defList4.addErrback(neverHappen); |
|---|
| 240 | | callList4[1].addCallback(function (arg) { |
|---|
| 241 | | is(arg, null, "deferredlist consumeErrors ok" ); |
|---|
| 242 | | }); |
|---|
| 243 | | callList4[0].callback(3); |
|---|
| 244 | | callList4[1].callback("foo"); |
|---|
| 245 | | callList4[2].callback(4); |
|---|
| 246 | | |
|---|