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

Side by Side Diff: tests/lib/async/future_test.dart

Issue 14070010: Refactor Future constructors. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Added co19 issue number. Created 7 years, 8 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
« no previous file with comments | « tests/lib/async/future_delayed_error_test.dart ('k') | tests/lib/async/futures_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library future_test; 5 library future_test;
6 6
7 import "package:expect/expect.dart"; 7 import "package:expect/expect.dart";
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:isolate'; 9 import 'dart:isolate';
10 10
11 const Duration MS = const Duration(milliseconds: 1); 11 const Duration MS = const Duration(milliseconds: 1);
12 12
13 testImmediate() { 13 testValue() {
14 final future = new Future<String>.immediate("42"); 14 final future = new Future<String>.value("42");
15 var port = new ReceivePort(); 15 var port = new ReceivePort();
16 future.then((x) { 16 future.then((x) {
17 Expect.equals("42", x); 17 Expect.equals("42", x);
18 port.close(); 18 port.close();
19 }); 19 });
20 } 20 }
21 21
22 testOf() { 22 testSync() {
23 compare(func) { 23 compare(func) {
24 // Compare the results of the following two futures. 24 // Compare the results of the following two futures.
25 Future f1 = new Future.of(func); 25 Future f1 = new Future.sync(func);
26 Future f2 = new Future.immediate(null).then((_) => func()); 26 Future f2 = new Future.value().then((_) => func());
27 f2.catchError((_){}); // I'll get the error later. 27 f2.catchError((_){}); // I'll get the error later.
28 f1.then((v1) { f2.then((v2) { Expect.equals(v1, v2); }); }, 28 f1.then((v1) { f2.then((v2) { Expect.equals(v1, v2); }); },
29 onError: (e1) { 29 onError: (e1) {
30 f2.then((_) { Expect.fail("Expected error"); }, 30 f2.then((_) { Expect.fail("Expected error"); },
31 onError: (e2) { 31 onError: (e2) {
32 Expect.equals(e1, e2); 32 Expect.equals(e1, e2);
33 }); 33 });
34 }); 34 });
35 } 35 }
36 Future val = new Future.immediate(42); 36 Future val = new Future.value(42);
37 Future err1 = new Future.immediateError("Error")..catchError((_){}); 37 Future err1 = new Future.error("Error")..catchError((_){});
38 try { 38 try {
39 throw new List(0); 39 throw new List(0);
40 } catch (e, st) { 40 } catch (e, st) {
41 Future err2 = new Future.immediateError(e, st)..catchError((_){}); 41 Future err2 = new Future.error(e, st)..catchError((_){});
42 } 42 }
43 compare(() => 42); 43 compare(() => 42);
44 compare(() => val); 44 compare(() => val);
45 compare(() { throw "Flif"; }); 45 compare(() { throw "Flif"; });
46 compare(() => err1); 46 compare(() => err1);
47 bool hasExecuted = false;
48 compare(() {
49 hasExecuted = true;
50 return 499;
51 });
52 Expect.isTrue(hasExecuted);
47 } 53 }
48 54
49 testNeverComplete() { 55 testNeverComplete() {
50 final completer = new Completer<int>(); 56 final completer = new Completer<int>();
51 final future = completer.future; 57 final future = completer.future;
52 future.then((v) => Expect.fails("Value not expected")); 58 future.then((v) => Expect.fails("Value not expected"));
53 future.catchError((e) => Expect.fails("Value not expected")); 59 future.catchError((e) => Expect.fails("Value not expected"));
54 } 60 }
55 61
56 testComplete() { 62 testComplete() {
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 }, 241 },
236 onDone: () { 242 onDone: () {
237 Expect.isTrue(gotValue); 243 Expect.isTrue(gotValue);
238 port.close(); 244 port.close();
239 }); 245 });
240 } 246 }
241 247
242 testFutureAsStreamCompleteImmediate() { 248 testFutureAsStreamCompleteImmediate() {
243 bool gotValue = false; 249 bool gotValue = false;
244 var port = new ReceivePort(); 250 var port = new ReceivePort();
245 new Future.immediate("value").asStream().listen( 251 new Future.value("value").asStream().listen(
246 (data) { 252 (data) {
247 Expect.isFalse(gotValue); 253 Expect.isFalse(gotValue);
248 gotValue = true; 254 gotValue = true;
249 Expect.equals("value", data); 255 Expect.equals("value", data);
250 }, 256 },
251 onDone: () { 257 onDone: () {
252 Expect.isTrue(gotValue); 258 Expect.isTrue(gotValue);
253 port.close(); 259 port.close();
254 }); 260 });
255 } 261 }
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 }); 563 });
558 564
559 completer.completeError(error); 565 completer.completeError(error);
560 } 566 }
561 567
562 testChainedFutureValue() { 568 testChainedFutureValue() {
563 final completer = new Completer(); 569 final completer = new Completer();
564 final future = completer.future; 570 final future = completer.future;
565 var port = new ReceivePort(); 571 var port = new ReceivePort();
566 572
567 future.then((v) => new Future.immediate(v * 2)) 573 future.then((v) => new Future.value(v * 2))
568 .then((v) { 574 .then((v) {
569 Expect.equals(42, v); 575 Expect.equals(42, v);
570 port.close(); 576 port.close();
571 }); 577 });
572 completer.complete(21); 578 completer.complete(21);
573 } 579 }
574 580
575 testChainedFutureValueDelay() { 581 testChainedFutureValueDelay() {
576 final completer = new Completer(); 582 final completer = new Completer();
577 final future = completer.future; 583 final future = completer.future;
(...skipping 15 matching lines...) Expand all
593 .then((v) { 599 .then((v) {
594 Expect.isNull(v); 600 Expect.isNull(v);
595 port.close(); 601 port.close();
596 }); 602 });
597 } 603 }
598 testChainedFutureError() { 604 testChainedFutureError() {
599 final completer = new Completer(); 605 final completer = new Completer();
600 final future = completer.future; 606 final future = completer.future;
601 var port = new ReceivePort(); 607 var port = new ReceivePort();
602 608
603 future.then((v) => new Future.immediateError("Fehler")) 609 future.then((v) => new Future.error("Fehler"))
604 .then((v) { Expect.fail("unreachable!"); }, onError: (error) { 610 .then((v) { Expect.fail("unreachable!"); }, onError: (error) {
605 Expect.equals("Fehler", error); 611 Expect.equals("Fehler", error);
606 port.close(); 612 port.close();
607 }); 613 });
608 completer.complete(21); 614 completer.complete(21);
609 } 615 }
610 616
611 main() { 617 main() {
612 testImmediate(); 618 testValue();
613 testOf(); 619 testSync();
614 testNeverComplete(); 620 testNeverComplete();
615 621
616 testComplete(); 622 testComplete();
617 testCompleteWithSuccessHandlerBeforeComplete(); 623 testCompleteWithSuccessHandlerBeforeComplete();
618 testCompleteWithSuccessHandlerAfterComplete(); 624 testCompleteWithSuccessHandlerAfterComplete();
619 testCompleteManySuccessHandlers(); 625 testCompleteManySuccessHandlers();
620 testCompleteWithError(); 626 testCompleteWithError();
621 627
622 testException(); 628 testException();
623 testExceptionHandler(); 629 testExceptionHandler();
(...skipping 21 matching lines...) Expand all
645 testFutureCatchThrowsAsync(); 651 testFutureCatchThrowsAsync();
646 testFutureWhenThrowsAsync(); 652 testFutureWhenThrowsAsync();
647 testFutureCatchRethrowsAsync(); 653 testFutureCatchRethrowsAsync();
648 654
649 testChainedFutureValue(); 655 testChainedFutureValue();
650 testChainedFutureValueDelay(); 656 testChainedFutureValueDelay();
651 testChainedFutureError(); 657 testChainedFutureError();
652 } 658 }
653 659
654 660
OLDNEW
« no previous file with comments | « tests/lib/async/future_delayed_error_test.dart ('k') | tests/lib/async/futures_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698