OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
| 5 // TODO(ajohnsen): This test needs to be updated. |
| 6 // Can Dart2JS on V8 somehow run it? |
| 7 |
5 // Tests for Future.immediate | 8 // Tests for Future.immediate |
| 9 import 'dart:async'; |
| 10 import 'dart:isolate'; |
6 | 11 |
7 testImmediate() { | 12 testImmediate() { |
8 final future = new Future<String>.immediate("42"); | 13 final future = new Future<String>.immediate("42"); |
9 Expect.isTrue(future.isComplete); | 14 future.then((x) => Expect.equals("42", x)); |
10 Expect.isTrue(future.hasValue); | |
11 var value = null; | |
12 future.then((x) => value = x); | |
13 Expect.equals("42", value); | |
14 } | 15 } |
15 | 16 |
16 // Tests for getters (value, exception, isComplete, isValue) | 17 // Tests for getters (value, exception, isComplete, isValue) |
17 | 18 |
18 testNeverComplete() { | 19 testNeverComplete() { |
19 final completer = new Completer<int>(); | 20 final completer = new Completer<int>(); |
20 final future = completer.future; | 21 final future = completer.future; |
21 Expect.isFalse(future.isComplete); | 22 future.then((v) => Except.fails("Value not expected")); |
22 Expect.isFalse(future.hasValue); | 23 future.catchError((e) => Except.fails("Value not expected")); |
23 Expect.throws(() { future.value; }); | |
24 Expect.throws(() { future.exception; }); | |
25 } | 24 } |
26 | 25 |
27 testComplete() { | 26 testComplete() { |
28 final completer = new Completer<int>(); | 27 final completer = new Completer<int>(); |
29 final future = completer.future; | 28 final future = completer.future; |
30 | 29 |
31 completer.complete(3); | 30 completer.complete(3); |
32 | 31 |
33 Expect.isTrue(future.isComplete); | 32 future.then((v) => Expect.equals(3, v)); |
34 Expect.isTrue(future.hasValue); | |
35 Expect.equals(3, future.value); | |
36 Expect.isNull(future.exception); | |
37 } | |
38 | |
39 // Tests for [onComplete] | |
40 | |
41 testCompleteWithCompleteHandlerBeforeComplete() { | |
42 final completer = new Completer<int>(); | |
43 final future = completer.future; | |
44 | |
45 int before; | |
46 future.onComplete((f) { | |
47 Expect.equals(future, f); | |
48 Expect.isTrue(f.isComplete); | |
49 Expect.isTrue(f.hasValue); | |
50 before = f.value; | |
51 }); | |
52 Expect.throws(() => future.value); | |
53 Expect.isNull(before); | |
54 completer.complete(3); | |
55 | |
56 Expect.equals(3, future.value); | |
57 Expect.equals(3, before); | |
58 } | |
59 | |
60 testExceptionWithCompleteHandlerBeforeComplete() { | |
61 final completer = new Completer<int>(); | |
62 final future = completer.future; | |
63 final exception = new Exception(); | |
64 | |
65 var err; | |
66 future.onComplete((f) { | |
67 Expect.equals(future, f); | |
68 Expect.isTrue(f.isComplete); | |
69 Expect.isFalse(f.hasValue); | |
70 err = f.exception; | |
71 }); | |
72 Expect.throws(() => future.exception); | |
73 Expect.isNull(err); | |
74 completer.completeException(exception); | |
75 Expect.equals(exception, future.exception); | |
76 Expect.equals(exception, err); | |
77 Expect.throws(() => future.value, (e) => e.source == exception); | |
78 } | |
79 | |
80 testCompleteWithCompleteHandlerAfterComplete() { | |
81 final completer = new Completer<int>(); | |
82 final future = completer.future; | |
83 | |
84 int after; | |
85 completer.complete(3); | |
86 future.onComplete((f) { | |
87 Expect.equals(future, f); | |
88 Expect.isTrue(f.isComplete); | |
89 Expect.isTrue(f.hasValue); | |
90 after = f.value; | |
91 }); | |
92 Expect.equals(3, future.value); | |
93 Expect.equals(3, after); | |
94 } | |
95 | |
96 testExceptionWithCompleteHandlerAfterComplete() { | |
97 final completer = new Completer<int>(); | |
98 final future = completer.future; | |
99 final exception = new Exception(); | |
100 | |
101 var err; | |
102 completer.completeException(exception); | |
103 future.onComplete((f) { | |
104 Expect.equals(future, f); | |
105 Expect.isTrue(f.isComplete); | |
106 Expect.isFalse(f.hasValue); | |
107 err = f.exception; | |
108 }); | |
109 Expect.equals(exception, future.exception); | |
110 Expect.equals(exception, err); | |
111 Expect.throws(() => future.value, (e) => e.source == exception); | |
112 } | |
113 | |
114 testCompleteWithManyCompleteHandlers() { | |
115 final completer = new Completer<int>(); | |
116 final future = completer.future; | |
117 int before; | |
118 int after1; | |
119 int after2; | |
120 | |
121 future.onComplete((f) { before = f.value; }); | |
122 completer.complete(3); | |
123 future.onComplete((f) { after1 = f.value; }); | |
124 future.onComplete((f) { after2 = f.value; }); | |
125 | |
126 Expect.equals(3, future.value); | |
127 Expect.equals(3, before); | |
128 Expect.equals(3, after1); | |
129 Expect.equals(3, after2); | |
130 } | |
131 | |
132 testExceptionWithManyCompleteHandlers() { | |
133 final completer = new Completer<int>(); | |
134 final future = completer.future; | |
135 final exception = new Exception(); | |
136 var before; | |
137 var after1; | |
138 var after2; | |
139 | |
140 future.onComplete((f) { before = f.exception; }); | |
141 completer.completeException(exception); | |
142 future.onComplete((f) { after1 = f.exception; }); | |
143 future.onComplete((f) { after2 = f.exception; }); | |
144 | |
145 Expect.equals(exception, future.exception); | |
146 Expect.equals(exception, before); | |
147 Expect.equals(exception, after1); | |
148 Expect.equals(exception, after2); | |
149 Expect.throws(() => future.value, (e) => e.source == exception); | |
150 } | 33 } |
151 | 34 |
152 // Tests for [then] | 35 // Tests for [then] |
153 | 36 |
154 testCompleteWithSuccessHandlerBeforeComplete() { | 37 testCompleteWithSuccessHandlerBeforeComplete() { |
155 final completer = new Completer<int>(); | 38 final completer = new Completer<int>(); |
156 final future = completer.future; | 39 final future = completer.future; |
157 | 40 |
158 int before; | 41 int before; |
159 future.then((int v) { before = v; }); | 42 future.then((int v) { before = v; }); |
160 Expect.throws(() { future.value; }); | |
161 Expect.isNull(before); | 43 Expect.isNull(before); |
162 completer.complete(3); | 44 completer.complete(3); |
163 | 45 |
164 Expect.equals(3, future.value); | |
165 Expect.equals(3, before); | 46 Expect.equals(3, before); |
166 } | 47 } |
167 | 48 |
168 testCompleteWithSuccessHandlerAfterComplete() { | 49 testCompleteWithSuccessHandlerAfterComplete() { |
169 final completer = new Completer<int>(); | 50 final completer = new Completer<int>(); |
170 final future = completer.future; | 51 final future = completer.future; |
171 | 52 |
172 int after; | 53 int after; |
173 completer.complete(3); | 54 completer.complete(3); |
174 Expect.equals(3, future.value); | |
175 Expect.isNull(after); | 55 Expect.isNull(after); |
176 | 56 |
177 future.then((int v) { after = v; }); | 57 future.then((int v) { after = v; }); |
178 | 58 |
179 Expect.equals(3, future.value); | |
180 Expect.equals(3, after); | 59 Expect.equals(3, after); |
181 } | 60 } |
182 | 61 |
183 testCompleteManySuccessHandlers() { | 62 testCompleteManySuccessHandlers() { |
184 final completer = new Completer<int>(); | 63 final completer = new Completer<int>(); |
185 final future = completer.future; | 64 final future = completer.future; |
186 int before; | 65 int before; |
187 int after1; | 66 int after1; |
188 int after2; | 67 int after2; |
189 | 68 |
190 future.then((int v) { before = v; }); | 69 future.then((int v) { before = v; }); |
191 completer.complete(3); | 70 completer.complete(3); |
192 future.then((int v) { after1 = v; }); | 71 future.then((int v) { after1 = v; }); |
193 future.then((int v) { after2 = v; }); | 72 future.then((int v) { after2 = v; }); |
194 | 73 |
195 Expect.equals(3, future.value); | |
196 Expect.equals(3, before); | 74 Expect.equals(3, before); |
197 Expect.equals(3, after1); | 75 Expect.equals(3, after1); |
198 Expect.equals(3, after2); | 76 Expect.equals(3, after2); |
199 } | 77 } |
200 | 78 |
201 // Tests for [handleException] | 79 // Tests for [handleException] |
202 | 80 |
203 testException() { | 81 testException() { |
204 final completer = new Completer<int>(); | 82 final completer = new Completer<int>(); |
205 final future = completer.future; | 83 final future = completer.future; |
206 final ex = new Exception(); | 84 final ex = new Exception(); |
207 future.then((_) {}); // exception is thrown if we plan to use the value | 85 // future.catchError((e) => print("got error"));//Expect.equals(e, ex)); |
208 Expect.throws( | 86 future.then((v) {print(v);}) |
209 () { completer.completeException(ex); }, | 87 .catchError((e) => Expect.equals(e.error, ex)); |
210 (e) => e.source == ex); | 88 completer.completeError(ex); |
211 } | 89 } |
212 | 90 |
213 testExceptionNoSuccessListeners() { | 91 testExceptionNoSuccessListeners() { |
214 final completer = new Completer<int>(); | 92 final completer = new Completer<int>(); |
215 final future = completer.future; | 93 final future = completer.future; |
216 final ex = new Exception(); | 94 final ex = new Exception(); |
217 completer.completeException(ex); // future.then is not called, so no exception | 95 completer.completeException(ex); // future.then is not called, so no exception |
218 } | 96 } |
219 | 97 |
220 testExceptionHandler() { | 98 testExceptionHandler() { |
221 final completer = new Completer<int>(); | 99 final completer = new Completer<int>(); |
222 final future = completer.future; | 100 final future = completer.future; |
223 final ex = new Exception(); | 101 final ex = new Exception(); |
224 | 102 |
225 var ex2; | 103 var ex2; |
226 future.handleException((e) { ex2 = e; return true; }); | 104 future.catchError((e) { ex2 = e.error; }); |
227 completer.completeException(ex); | 105 completer.completeError(ex); |
228 Expect.equals(ex, ex2); | 106 Expect.equals(ex, ex2); |
229 } | 107 } |
230 | 108 |
231 testExceptionHandlerReturnsTrue() { | 109 testExceptionHandlerReturnsTrue() { |
232 final completer = new Completer<int>(); | 110 final completer = new Completer<int>(); |
233 final future = completer.future; | 111 final future = completer.future; |
234 final ex = new Exception(); | 112 final ex = new Exception(); |
235 | 113 |
236 bool reached = false; | 114 bool reached = false; |
237 future.handleException((e) { return true; }); | 115 future.catchError((e) { }); |
238 future.handleException((e) { reached = true; return false; }); // overshadowed | 116 future.catchError((e) { reached = true; }, test: (e) => false) |
239 completer.completeException(ex); | 117 .catchError((e) {}); |
| 118 completer.completeError(ex); |
240 Expect.isFalse(reached); | 119 Expect.isFalse(reached); |
241 } | 120 } |
242 | 121 |
243 testExceptionHandlerReturnsTrue2() { | 122 testExceptionHandlerReturnsTrue2() { |
244 final completer = new Completer<int>(); | 123 final completer = new Completer<int>(); |
245 final future = completer.future; | 124 final future = completer.future; |
246 final ex = new Exception(); | 125 final ex = new Exception(); |
247 | 126 |
248 bool reached = false; | 127 bool reached = false; |
249 future.handleException((e) { return false; }); | 128 future.catchError((e) { }, test: (e) => false) |
250 future.handleException((e) { reached = true; return true; }); | 129 .catchError((e) { reached = true; }); |
251 completer.completeException(ex); | 130 completer.completeError(ex); |
252 Expect.isTrue(reached); | 131 Expect.isTrue(reached); |
253 } | 132 } |
254 | 133 |
255 testExceptionHandlerReturnsFalse() { | 134 testExceptionHandlerReturnsFalse() { |
256 final completer = new Completer<int>(); | 135 final completer = new Completer<int>(); |
257 final future = completer.future; | 136 final future = completer.future; |
258 final ex = new Exception(); | 137 final ex = new Exception(); |
259 | 138 |
260 bool reached = false; | 139 bool reached = false; |
261 future.then((_) {}); // ensure exception is thrown... | 140 |
262 future.handleException((e) { return false; }); | 141 future.catchError((e) { }); |
263 future.handleException((e) { reached = true; return false; }); // overshadowed | 142 |
264 Expect.throws( | 143 future.catchError((e) { reached = true; }, test: (e) => false) |
265 () { completer.completeException(ex); }, | 144 .catchError((e) { }); |
266 (e) => e.source == ex); | 145 |
267 Expect.isTrue(reached); | 146 completer.completeError(ex); |
| 147 |
| 148 Expect.isFalse(reached); |
268 } | 149 } |
269 | 150 |
270 testExceptionHandlerReturnsFalse2() { | 151 testExceptionHandlerReturnsFalse2() { |
271 final completer = new Completer<int>(); | 152 final completer = new Completer<int>(); |
272 final future = completer.future; | 153 final future = completer.future; |
273 final ex = new Exception(); | 154 final ex = new Exception(); |
274 | 155 |
275 bool reached = false; | 156 bool reached = false; |
276 future.handleException((e) { return false; }); | 157 future.handleException((e) { return false; }); |
277 future.handleException((e) { reached = true; return false; }); // overshadowed | 158 future.handleException((e) { reached = true; return false; }); // overshadowed |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
324 final completer = new Completer(); | 205 final completer = new Completer(); |
325 final future = completer.future; | 206 final future = completer.future; |
326 | 207 |
327 final stackTrace = 'fake stack trace'; | 208 final stackTrace = 'fake stack trace'; |
328 completer.completeException(new Exception(), stackTrace); | 209 completer.completeException(new Exception(), stackTrace); |
329 Expect.equals(stackTrace, future.stackTrace); | 210 Expect.equals(stackTrace, future.stackTrace); |
330 } | 211 } |
331 | 212 |
332 testCallStackIsCapturedIfTransformCallbackThrows() { | 213 testCallStackIsCapturedIfTransformCallbackThrows() { |
333 final completer = new Completer(); | 214 final completer = new Completer(); |
334 final transformed = completer.future.transform((_) { | 215 final transformed = completer.future.then((_) { |
335 throw 'whoops!'; | 216 throw 'whoops!'; |
336 }); | 217 }); |
337 | 218 |
338 final stackTrace = 'fake stack trace'; | 219 final stackTrace = 'fake stack trace'; |
339 completer.complete('blah'); | 220 completer.complete('blah'); |
340 Expect.isNotNull(transformed.stackTrace); | 221 Expect.isNotNull(transformed.stackTrace); |
341 } | 222 } |
342 | 223 |
343 testCallStackIsCapturedIfChainCallbackThrows() { | 224 testCallStackIsCapturedIfChainCallbackThrows() { |
344 final completer = new Completer(); | 225 final completer = new Completer(); |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
421 future.then((v) => Expect.fail("Should not succeed")); | 302 future.then((v) => Expect.fail("Should not succeed")); |
422 completer.completeException(ex); | 303 completer.completeException(ex); |
423 Expect.equals(ex, exceptionFromCompleteHandler); | 304 Expect.equals(ex, exceptionFromCompleteHandler); |
424 Expect.equals(ex, exceptionFromExceptionHandler); | 305 Expect.equals(ex, exceptionFromExceptionHandler); |
425 } | 306 } |
426 | 307 |
427 // Tests for Future.transform | 308 // Tests for Future.transform |
428 | 309 |
429 testTransformSuccess() { | 310 testTransformSuccess() { |
430 final completer = new Completer<String>(); | 311 final completer = new Completer<String>(); |
431 final transformedFuture = completer.future.transform((x) => "** $x **"); | 312 final transformedFuture = completer.future.then((x) => "** $x **"); |
432 Expect.isFalse(transformedFuture.isComplete); | 313 Expect.isFalse(transformedFuture.isComplete); |
433 completer.complete("42"); | 314 completer.complete("42"); |
434 Expect.equals("** 42 **", transformedFuture.value); | 315 Expect.equals("** 42 **", transformedFuture.value); |
435 } | 316 } |
436 | 317 |
437 testTransformFutureFails() { | 318 testTransformFutureFails() { |
438 final completer = new Completer<String>(); | 319 final completer = new Completer<String>(); |
439 final error = new Exception("Oh no!"); | 320 final error = new Exception("Oh no!"); |
440 final transformedFuture = completer.future.transform((x) { | 321 final transformedFuture = completer.future.then((x) { |
441 Expect.fail("transformer shouldn't be called"); | 322 Expect.fail("transformer shouldn't be called"); |
442 }); | 323 }); |
443 Expect.isFalse(transformedFuture.isComplete); | 324 Expect.isFalse(transformedFuture.isComplete); |
444 completer.completeException(error); | 325 completer.completeException(error); |
445 Expect.equals(error, transformedFuture.exception); | 326 Expect.equals(error, transformedFuture.exception); |
446 } | 327 } |
447 | 328 |
448 testTransformTransformerFails() { | 329 testTransformTransformerFails() { |
449 final completer = new Completer<String>(); | 330 final completer = new Completer<String>(); |
450 final error = new Exception("Oh no!"); | 331 final error = new Exception("Oh no!"); |
451 final transformedFuture = completer.future.transform((x) { throw error; }); | 332 final transformedFuture = completer.future.then((x) { throw error; }); |
452 Expect.isFalse(transformedFuture.isComplete); | 333 Expect.isFalse(transformedFuture.isComplete); |
453 transformedFuture.then((v) => null); | 334 transformedFuture.then((v) => null); |
454 Expect.throws(() => completer.complete("42"), (e) => e.source == error); | 335 Expect.throws(() => completer.complete("42"), (e) => e.source == error); |
455 Expect.equals(error, transformedFuture.exception); | 336 Expect.equals(error, transformedFuture.exception); |
456 } | 337 } |
457 | 338 |
458 // Tests for Future.chain | 339 // Tests for Future.chain |
459 | 340 |
460 testChainSuccess() { | 341 testChainSuccess() { |
461 final completerA = new Completer<String>(); | 342 final completerA = new Completer<String>(); |
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
577 Expect.isTrue(transformedFuture.isComplete); | 458 Expect.isTrue(transformedFuture.isComplete); |
578 Expect.equals("transformed value", transformedFuture.value); | 459 Expect.equals("transformed value", transformedFuture.value); |
579 } | 460 } |
580 | 461 |
581 // Tests for branching exceptions | 462 // Tests for branching exceptions |
582 | 463 |
583 testExceptionTravelsAlongBothBranches() { | 464 testExceptionTravelsAlongBothBranches() { |
584 var results = <int>[]; | 465 var results = <int>[]; |
585 | 466 |
586 var completer = new Completer(); | 467 var completer = new Completer(); |
587 var branch1 = completer.future.transform((_) => null); | 468 var branch1 = completer.future.then((_) => null); |
588 var branch2 = completer.future.transform((_) => null); | 469 var branch2 = completer.future.then((_) => null); |
589 | 470 |
590 branch1.handleException((e) { | 471 branch1.handleException((e) { |
591 results.add(1); | 472 results.add(1); |
592 return true; | 473 return true; |
593 }); | 474 }); |
594 | 475 |
595 branch2.handleException((e) { | 476 branch2.handleException((e) { |
596 results.add(2); | 477 results.add(2); |
597 return true; | 478 return true; |
598 }); | 479 }); |
599 | 480 |
600 completer.completeException("error"); | 481 completer.completeException("error"); |
601 Expect.setEquals([1, 2], results); | 482 Expect.setEquals([1, 2], results); |
602 } | 483 } |
603 | 484 |
604 testExceptionTravelsAlongBothBranchesAfterComplete() { | 485 testExceptionTravelsAlongBothBranchesAfterComplete() { |
605 var results = <int>[]; | 486 var results = <int>[]; |
606 | 487 |
607 var completer = new Completer(); | 488 var completer = new Completer(); |
608 completer.completeException("error"); | 489 completer.completeException("error"); |
609 | 490 |
610 var branch1 = completer.future.transform((_) => null); | 491 var branch1 = completer.future.then((_) => null); |
611 var branch2 = completer.future.transform((_) => null); | 492 var branch2 = completer.future.then((_) => null); |
612 | 493 |
613 branch1.handleException((e) { | 494 branch1.handleException((e) { |
614 results.add(1); | 495 results.add(1); |
615 return true; | 496 return true; |
616 }); | 497 }); |
617 | 498 |
618 branch2.handleException((e) { | 499 branch2.handleException((e) { |
619 results.add(2); | 500 results.add(2); |
620 return true; | 501 return true; |
621 }); | 502 }); |
622 | 503 |
623 Expect.setEquals([1, 2], results); | 504 Expect.setEquals([1, 2], results); |
624 } | 505 } |
625 | 506 |
626 testExceptionIsHandledInBaseAndBranch() { | 507 testExceptionIsHandledInBaseAndBranch() { |
627 var results = <String>[]; | 508 var results = <String>[]; |
628 | 509 |
629 var completer = new Completer(); | 510 var completer = new Completer(); |
630 var branch = completer.future.transform((_) => null); | 511 var branch = completer.future.then((_) => null); |
631 | 512 |
632 completer.future.handleException((e) { | 513 completer.future.handleException((e) { |
633 results.add("base"); | 514 results.add("base"); |
634 return true; | 515 return true; |
635 }); | 516 }); |
636 | 517 |
637 branch.handleException((e) { | 518 branch.handleException((e) { |
638 results.add("branch"); | 519 results.add("branch"); |
639 return true; | 520 return true; |
640 }); | 521 }); |
641 | 522 |
642 completer.completeException("error"); | 523 completer.completeException("error"); |
643 Expect.setEquals(["base", "branch"], results); | 524 Expect.setEquals(["base", "branch"], results); |
644 } | 525 } |
645 | 526 |
646 testExceptionIsHandledInBaseAndBranchAfterComplete() { | 527 testExceptionIsHandledInBaseAndBranchAfterComplete() { |
647 var results = <String>[]; | 528 var results = <String>[]; |
648 | 529 |
649 var completer = new Completer(); | 530 var completer = new Completer(); |
650 completer.completeException("error"); | 531 completer.completeException("error"); |
651 | 532 |
652 var branch = completer.future.transform((_) => null); | 533 var branch = completer.future.then((_) => null); |
653 | 534 |
654 completer.future.handleException((e) { | 535 completer.future.handleException((e) { |
655 results.add("base"); | 536 results.add("base"); |
656 return true; | 537 return true; |
657 }); | 538 }); |
658 | 539 |
659 branch.handleException((e) { | 540 branch.handleException((e) { |
660 results.add("branch"); | 541 results.add("branch"); |
661 return true; | 542 return true; |
662 }); | 543 }); |
663 | 544 |
664 Expect.setEquals(["base", "branch"], results); | 545 Expect.setEquals(["base", "branch"], results); |
665 } | 546 } |
666 | 547 |
667 main() { | 548 main() { |
| 549 // /* |
668 testImmediate(); | 550 testImmediate(); |
669 testNeverComplete(); | 551 testNeverComplete(); |
670 testComplete(); | 552 testComplete(); |
671 testCompleteWithCompleteHandlerBeforeComplete(); | |
672 testExceptionWithCompleteHandlerBeforeComplete(); | |
673 testCompleteWithCompleteHandlerAfterComplete(); | |
674 testExceptionWithCompleteHandlerAfterComplete(); | |
675 testCompleteWithManyCompleteHandlers(); | |
676 testExceptionWithManyCompleteHandlers(); | |
677 testCompleteWithSuccessHandlerBeforeComplete(); | 553 testCompleteWithSuccessHandlerBeforeComplete(); |
678 testCompleteWithSuccessHandlerAfterComplete(); | 554 testCompleteWithSuccessHandlerAfterComplete(); |
679 testCompleteManySuccessHandlers(); | 555 testCompleteManySuccessHandlers(); |
680 testException(); | 556 testException(); |
681 testExceptionHandler(); | 557 testExceptionHandler(); |
682 testExceptionHandlerReturnsTrue(); | 558 testExceptionHandlerReturnsTrue(); |
683 testExceptionHandlerReturnsTrue2(); | 559 testExceptionHandlerReturnsTrue2(); |
684 testExceptionHandlerReturnsFalse(); | 560 testExceptionHandlerReturnsFalse(); |
| 561 // */ |
| 562 /* |
| 563 */ |
| 564 /* |
685 testExceptionHandlerReturnsFalse2(); | 565 testExceptionHandlerReturnsFalse2(); |
686 testExceptionHandlerAfterCompleteThenNotCalled(); | 566 testExceptionHandlerAfterCompleteThenNotCalled(); |
687 testExceptionHandlerAfterCompleteReturnsFalseThenThrows(); | 567 testExceptionHandlerAfterCompleteReturnsFalseThenThrows(); |
688 testCallStackThrowsIfNotComplete(); | 568 testCallStackThrowsIfNotComplete(); |
689 testCallStackIsNullIfCompletedSuccessfully(); | 569 testCallStackIsNullIfCompletedSuccessfully(); |
690 testCallStackReturnsCallstackPassedToCompleteException(); | 570 testCallStackReturnsCallstackPassedToCompleteException(); |
691 testCallStackIsCapturedIfTransformCallbackThrows(); | 571 testCallStackIsCapturedIfTransformCallbackThrows(); |
692 testCallStackIsCapturedIfChainCallbackThrows(); | 572 testCallStackIsCapturedIfChainCallbackThrows(); |
693 testCallStackIsPreservedIfExceptionIsRethrownInTransformException(); | 573 testCallStackIsPreservedIfExceptionIsRethrownInTransformException(); |
694 testCompleteWithCompletionAndSuccessHandlers(); | 574 testCompleteWithCompletionAndSuccessHandlers(); |
695 testExceptionWithCompletionAndSuccessHandlers(); | 575 testExceptionWithCompletionAndSuccessHandlers(); |
696 testExceptionWithCompletionAndSuccessAndExceptionHandlers(); | 576 testExceptionWithCompletionAndSuccessAndExceptionHandlers(); |
697 testTransformSuccess(); | 577 testTransformSuccess(); |
698 testTransformFutureFails(); | 578 testTransformFutureFails(); |
699 testTransformTransformerFails(); | 579 testTransformTransformerFails(); |
700 testChainSuccess(); | 580 testChainSuccess(); |
701 testChainFirstFutureFails(); | 581 testChainFirstFutureFails(); |
702 testChainTransformerFails(); | 582 testChainTransformerFails(); |
703 testChainSecondFutureFails(); | 583 testChainSecondFutureFails(); |
704 testTransformExceptionCompletesNormally(); | 584 testTransformExceptionCompletesNormally(); |
705 testTransformExceptionThrows(); | 585 testTransformExceptionThrows(); |
706 testTransformExceptionReturns(); | 586 testTransformExceptionReturns(); |
707 testTransformExceptionReturnsAFuture(); | 587 testTransformExceptionReturnsAFuture(); |
708 testExceptionTravelsAlongBothBranches(); | 588 testExceptionTravelsAlongBothBranches(); |
709 testExceptionTravelsAlongBothBranchesAfterComplete(); | 589 testExceptionTravelsAlongBothBranchesAfterComplete(); |
710 testExceptionIsHandledInBaseAndBranch(); | 590 testExceptionIsHandledInBaseAndBranch(); |
711 testExceptionIsHandledInBaseAndBranchAfterComplete(); | 591 testExceptionIsHandledInBaseAndBranchAfterComplete(); |
| 592 */ |
712 } | 593 } |
OLD | NEW |