Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(163)

Side by Side Diff: tests/corelib/future_test.dart

Issue 11090016: Change core lib, dart2js, and more for new optional parameters syntax (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // Tests for Future.immediate 5 // Tests for Future.immediate
6 6
7 testImmediate() { 7 testImmediate() {
8 final future = new Future<String>.immediate("42"); 8 final future = new Future<String>.immediate("42");
9 Expect.isTrue(future.isComplete); 9 Expect.isTrue(future.isComplete);
10 Expect.isTrue(future.hasValue); 10 Expect.isTrue(future.hasValue);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 Expect.equals(future, f); 67 Expect.equals(future, f);
68 Expect.isTrue(f.isComplete); 68 Expect.isTrue(f.isComplete);
69 Expect.isFalse(f.hasValue); 69 Expect.isFalse(f.hasValue);
70 err = f.exception; 70 err = f.exception;
71 }); 71 });
72 Expect.throws(() => future.exception); 72 Expect.throws(() => future.exception);
73 Expect.isNull(err); 73 Expect.isNull(err);
74 completer.completeException(exception); 74 completer.completeException(exception);
75 Expect.equals(exception, future.exception); 75 Expect.equals(exception, future.exception);
76 Expect.equals(exception, err); 76 Expect.equals(exception, err);
77 Expect.throws(() => future.value, check: (e) => e == exception); 77 Expect.throws(() => future.value, (e) => e == exception);
78 } 78 }
79 79
80 testCompleteWithCompleteHandlerAfterComplete() { 80 testCompleteWithCompleteHandlerAfterComplete() {
81 final completer = new Completer<int>(); 81 final completer = new Completer<int>();
82 final future = completer.future; 82 final future = completer.future;
83 83
84 int after; 84 int after;
85 completer.complete(3); 85 completer.complete(3);
86 future.onComplete((f) { 86 future.onComplete((f) {
87 Expect.equals(future, f); 87 Expect.equals(future, f);
(...skipping 13 matching lines...) Expand all
101 var err; 101 var err;
102 completer.completeException(exception); 102 completer.completeException(exception);
103 future.onComplete((f) { 103 future.onComplete((f) {
104 Expect.equals(future, f); 104 Expect.equals(future, f);
105 Expect.isTrue(f.isComplete); 105 Expect.isTrue(f.isComplete);
106 Expect.isFalse(f.hasValue); 106 Expect.isFalse(f.hasValue);
107 err = f.exception; 107 err = f.exception;
108 }); 108 });
109 Expect.equals(exception, future.exception); 109 Expect.equals(exception, future.exception);
110 Expect.equals(exception, err); 110 Expect.equals(exception, err);
111 Expect.throws(() => future.value, check: (e) => e == exception); 111 Expect.throws(() => future.value, (e) => e == exception);
112 } 112 }
113 113
114 testCompleteWithManyCompleteHandlers() { 114 testCompleteWithManyCompleteHandlers() {
115 final completer = new Completer<int>(); 115 final completer = new Completer<int>();
116 final future = completer.future; 116 final future = completer.future;
117 int before; 117 int before;
118 int after1; 118 int after1;
119 int after2; 119 int after2;
120 120
121 future.onComplete((f) { before = f.value; }); 121 future.onComplete((f) { before = f.value; });
(...skipping 17 matching lines...) Expand all
139 139
140 future.onComplete((f) { before = f.exception; }); 140 future.onComplete((f) { before = f.exception; });
141 completer.completeException(exception); 141 completer.completeException(exception);
142 future.onComplete((f) { after1 = f.exception; }); 142 future.onComplete((f) { after1 = f.exception; });
143 future.onComplete((f) { after2 = f.exception; }); 143 future.onComplete((f) { after2 = f.exception; });
144 144
145 Expect.equals(exception, future.exception); 145 Expect.equals(exception, future.exception);
146 Expect.equals(exception, before); 146 Expect.equals(exception, before);
147 Expect.equals(exception, after1); 147 Expect.equals(exception, after1);
148 Expect.equals(exception, after2); 148 Expect.equals(exception, after2);
149 Expect.throws(() => future.value, check: (e) => e == exception); 149 Expect.throws(() => future.value, (e) => e == exception);
150 } 150 }
151 151
152 // Tests for [then] 152 // Tests for [then]
153 153
154 testCompleteWithSuccessHandlerBeforeComplete() { 154 testCompleteWithSuccessHandlerBeforeComplete() {
155 final completer = new Completer<int>(); 155 final completer = new Completer<int>();
156 final future = completer.future; 156 final future = completer.future;
157 157
158 int before; 158 int before;
159 future.then((int v) { before = v; }); 159 future.then((int v) { before = v; });
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 200
201 // Tests for [handleException] 201 // Tests for [handleException]
202 202
203 testException() { 203 testException() {
204 final completer = new Completer<int>(); 204 final completer = new Completer<int>();
205 final future = completer.future; 205 final future = completer.future;
206 final ex = new Exception(); 206 final ex = new Exception();
207 future.then((_) {}); // exception is thrown if we plan to use the value 207 future.then((_) {}); // exception is thrown if we plan to use the value
208 Expect.throws( 208 Expect.throws(
209 () { completer.completeException(ex); }, 209 () { completer.completeException(ex); },
210 check: (e) => e == ex); 210 (e) => e == ex);
211 } 211 }
212 212
213 testExceptionNoSuccessListeners() { 213 testExceptionNoSuccessListeners() {
214 final completer = new Completer<int>(); 214 final completer = new Completer<int>();
215 final future = completer.future; 215 final future = completer.future;
216 final ex = new Exception(); 216 final ex = new Exception();
217 completer.completeException(ex); // future.then is not called, so no exception 217 completer.completeException(ex); // future.then is not called, so no exception
218 } 218 }
219 219
220 testExceptionHandler() { 220 testExceptionHandler() {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
256 final completer = new Completer<int>(); 256 final completer = new Completer<int>();
257 final future = completer.future; 257 final future = completer.future;
258 final ex = new Exception(); 258 final ex = new Exception();
259 259
260 bool reached = false; 260 bool reached = false;
261 future.then((_) {}); // ensure exception is thrown... 261 future.then((_) {}); // ensure exception is thrown...
262 future.handleException((e) { return false; }); 262 future.handleException((e) { return false; });
263 future.handleException((e) { reached = true; return false; }); // overshadowed 263 future.handleException((e) { reached = true; return false; }); // overshadowed
264 Expect.throws( 264 Expect.throws(
265 () { completer.completeException(ex); }, 265 () { completer.completeException(ex); },
266 check: (e) => e == ex); 266 (e) => e == ex);
267 Expect.isTrue(reached); 267 Expect.isTrue(reached);
268 } 268 }
269 269
270 testExceptionHandlerReturnsFalse2() { 270 testExceptionHandlerReturnsFalse2() {
271 final completer = new Completer<int>(); 271 final completer = new Completer<int>();
272 final future = completer.future; 272 final future = completer.future;
273 final ex = new Exception(); 273 final ex = new Exception();
274 274
275 bool reached = false; 275 bool reached = false;
276 future.handleException((e) { return false; }); 276 future.handleException((e) { return false; });
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
378 final future = completer.future; 378 final future = completer.future;
379 final ex = new Exception(); 379 final ex = new Exception();
380 380
381 var exceptionFromCompleteHandler; 381 var exceptionFromCompleteHandler;
382 future.onComplete((f) { 382 future.onComplete((f) {
383 Expect.equals(future, f); 383 Expect.equals(future, f);
384 Expect.isFalse(f.hasValue); 384 Expect.isFalse(f.hasValue);
385 exceptionFromCompleteHandler = f.exception; 385 exceptionFromCompleteHandler = f.exception;
386 }); 386 });
387 future.then((v) => Expect.fail("Should not succeed")); 387 future.then((v) => Expect.fail("Should not succeed"));
388 Expect.throws(() => completer.completeException(ex), check: (e) => ex == e); 388 Expect.throws(() => completer.completeException(ex), (e) => ex == e);
389 Expect.equals(ex, exceptionFromCompleteHandler); 389 Expect.equals(ex, exceptionFromCompleteHandler);
390 } 390 }
391 391
392 testExceptionWithCompletionAndSuccessAndExceptionHandlers() { 392 testExceptionWithCompletionAndSuccessAndExceptionHandlers() {
393 final completer = new Completer<int>(); 393 final completer = new Completer<int>();
394 final future = completer.future; 394 final future = completer.future;
395 final ex = new Exception(); 395 final ex = new Exception();
396 396
397 var exceptionFromCompleteHandler; 397 var exceptionFromCompleteHandler;
398 var exceptionFromExceptionHandler; 398 var exceptionFromExceptionHandler;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 completer.completeException(error); 431 completer.completeException(error);
432 Expect.equals(error, transformedFuture.exception); 432 Expect.equals(error, transformedFuture.exception);
433 } 433 }
434 434
435 testTransformTransformerFails() { 435 testTransformTransformerFails() {
436 final completer = new Completer<String>(); 436 final completer = new Completer<String>();
437 final error = new Exception("Oh no!"); 437 final error = new Exception("Oh no!");
438 final transformedFuture = completer.future.transform((x) { throw error; }); 438 final transformedFuture = completer.future.transform((x) { throw error; });
439 Expect.isFalse(transformedFuture.isComplete); 439 Expect.isFalse(transformedFuture.isComplete);
440 transformedFuture.then((v) => null); 440 transformedFuture.then((v) => null);
441 Expect.throws(() => completer.complete("42"), check: (e) => e == error); 441 Expect.throws(() => completer.complete("42"), (e) => e == error);
442 Expect.equals(error, transformedFuture.exception); 442 Expect.equals(error, transformedFuture.exception);
443 } 443 }
444 444
445 // Tests for Future.chain 445 // Tests for Future.chain
446 446
447 testChainSuccess() { 447 testChainSuccess() {
448 final completerA = new Completer<String>(); 448 final completerA = new Completer<String>();
449 final completerB = new Completer<String>(); 449 final completerB = new Completer<String>();
450 final chainedFuture = completerA.future.chain((x) { 450 final chainedFuture = completerA.future.chain((x) {
451 Expect.equals("42", x); 451 Expect.equals("42", x);
(...skipping 19 matching lines...) Expand all
471 471
472 testChainTransformerFails() { 472 testChainTransformerFails() {
473 final completerA = new Completer<String>(); 473 final completerA = new Completer<String>();
474 final error = new Exception("Oh no!"); 474 final error = new Exception("Oh no!");
475 final chainedFuture = completerA.future.chain((x) { 475 final chainedFuture = completerA.future.chain((x) {
476 Expect.equals("42", x); 476 Expect.equals("42", x);
477 throw error; 477 throw error;
478 }); 478 });
479 chainedFuture.then((v) => null); 479 chainedFuture.then((v) => null);
480 Expect.isFalse(chainedFuture.isComplete); 480 Expect.isFalse(chainedFuture.isComplete);
481 Expect.throws(() => completerA.complete("42"), check: (e) => e == error); 481 Expect.throws(() => completerA.complete("42"), (e) => e == error);
482 Expect.equals(error, chainedFuture.exception); 482 Expect.equals(error, chainedFuture.exception);
483 } 483 }
484 484
485 testChainSecondFutureFails() { 485 testChainSecondFutureFails() {
486 final completerA = new Completer<String>(); 486 final completerA = new Completer<String>();
487 final completerB = new Completer<String>(); 487 final completerB = new Completer<String>();
488 final error = new Exception("Oh no!"); 488 final error = new Exception("Oh no!");
489 final chainedFuture = completerA.future.chain((x) { 489 final chainedFuture = completerA.future.chain((x) {
490 Expect.equals("42", x); 490 Expect.equals("42", x);
491 return completerB.future; 491 return completerB.future;
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 testTransformTransformerFails(); 599 testTransformTransformerFails();
600 testChainSuccess(); 600 testChainSuccess();
601 testChainFirstFutureFails(); 601 testChainFirstFutureFails();
602 testChainTransformerFails(); 602 testChainTransformerFails();
603 testChainSecondFutureFails(); 603 testChainSecondFutureFails();
604 testTransformExceptionCompletesNormally(); 604 testTransformExceptionCompletesNormally();
605 testTransformExceptionThrows(); 605 testTransformExceptionThrows();
606 testTransformExceptionReturns(); 606 testTransformExceptionReturns();
607 testTransformExceptionReturnsAFuture(); 607 testTransformExceptionReturnsAFuture();
608 } 608 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698