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

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

Issue 12213092: Rework Timer interface. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 10 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/language/closure_cycles_test.dart ('k') | tests/lib/async/slow_consumer2_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 'dart:async'; 7 import 'dart:async';
8 import 'dart:isolate'; 8 import 'dart:isolate';
9 9
10 const Duration MS = const Duration(milliseconds: 1);
11
10 testImmediate() { 12 testImmediate() {
11 final future = new Future<String>.immediate("42"); 13 final future = new Future<String>.immediate("42");
12 var port = new ReceivePort(); 14 var port = new ReceivePort();
13 future.then((x) { 15 future.then((x) {
14 Expect.equals("42", x); 16 Expect.equals("42", x);
15 port.close(); 17 port.close();
16 }); 18 });
17 } 19 }
18 20
19 testOf() { 21 testOf() {
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 352
351 testFutureWhenCompletePreValue() { 353 testFutureWhenCompletePreValue() {
352 var port = new ReceivePort(); 354 var port = new ReceivePort();
353 int counter = 2; 355 int counter = 2;
354 countDown() { 356 countDown() {
355 if (--counter == 0) port.close(); 357 if (--counter == 0) port.close();
356 } 358 }
357 var completer = new Completer(); 359 var completer = new Completer();
358 Future future = completer.future; 360 Future future = completer.future;
359 completer.complete(42); 361 completer.complete(42);
360 new Timer(0, () { 362 Timer.run(() {
361 Future later = future.whenComplete(countDown); 363 Future later = future.whenComplete(countDown);
362 later.then((v) { 364 later.then((v) {
363 Expect.equals(42, v); 365 Expect.equals(42, v);
364 countDown(); 366 countDown();
365 }); 367 });
366 }); 368 });
367 } 369 }
368 370
369 testFutureWhenValueFutureValue() { 371 testFutureWhenValueFutureValue() {
372
370 var port = new ReceivePort(); 373 var port = new ReceivePort();
371 int counter = 3; 374 int counter = 3;
372 countDown(int expect) { 375 countDown(int expect) {
373 Expect.equals(expect, counter); 376 Expect.equals(expect, counter);
374 if (--counter == 0) port.close(); 377 if (--counter == 0) port.close();
375 } 378 }
376 var completer = new Completer(); 379 var completer = new Completer();
377 completer.future.whenComplete(() { 380 completer.future.whenComplete(() {
378 countDown(3); 381 countDown(3);
379 var completer2 = new Completer(); 382 var completer2 = new Completer();
380 new Timer(10, (_) { 383 new Timer(MS * 10, () {
381 countDown(2); 384 countDown(2);
382 completer2.complete(37); 385 completer2.complete(37);
383 }); 386 });
384 return completer2.future; 387 return completer2.future;
385 }).then((v) { 388 }).then((v) {
386 Expect.equals(42, v); 389 Expect.equals(42, v);
387 countDown(1); 390 countDown(1);
388 }); 391 });
389 392
390 completer.complete(42); 393 completer.complete(42);
391 } 394 }
392 395
393 testFutureWhenValueFutureError() { 396 testFutureWhenValueFutureError() {
394 var port = new ReceivePort(); 397 var port = new ReceivePort();
395 int counter = 3; 398 int counter = 3;
396 countDown(int expect) { 399 countDown(int expect) {
397 Expect.equals(expect, counter); 400 Expect.equals(expect, counter);
398 if (--counter == 0) port.close(); 401 if (--counter == 0) port.close();
399 } 402 }
400 var completer = new Completer(); 403 var completer = new Completer();
401 completer.future.whenComplete(() { 404 completer.future.whenComplete(() {
402 countDown(3); 405 countDown(3);
403 var completer2 = new Completer(); 406 var completer2 = new Completer();
404 new Timer(10, (_) { 407 new Timer(MS * 10, () {
405 countDown(2); 408 countDown(2);
406 completer2.completeError("Fail"); 409 completer2.completeError("Fail");
407 }); 410 });
408 return completer2.future; 411 return completer2.future;
409 }).then((v) { 412 }).then((v) {
410 Expect.fail("should fail async"); 413 Expect.fail("should fail async");
411 }, onError: (AsyncError e) { 414 }, onError: (AsyncError e) {
412 Expect.equals("Fail", e.error); 415 Expect.equals("Fail", e.error);
413 countDown(1); 416 countDown(1);
414 }); 417 });
415 418
416 completer.complete(42); 419 completer.complete(42);
417 } 420 }
418 421
419 testFutureWhenErrorFutureValue() { 422 testFutureWhenErrorFutureValue() {
420 var port = new ReceivePort(); 423 var port = new ReceivePort();
421 int counter = 3; 424 int counter = 3;
422 countDown(int expect) { 425 countDown(int expect) {
423 Expect.equals(expect, counter); 426 Expect.equals(expect, counter);
424 if (--counter == 0) port.close(); 427 if (--counter == 0) port.close();
425 } 428 }
426 var completer = new Completer(); 429 var completer = new Completer();
427 completer.future.whenComplete(() { 430 completer.future.whenComplete(() {
428 countDown(3); 431 countDown(3);
429 var completer2 = new Completer(); 432 var completer2 = new Completer();
430 new Timer(10, (_) { 433 new Timer(MS * 10, () {
431 countDown(2); 434 countDown(2);
432 completer2.complete(37); 435 completer2.complete(37);
433 }); 436 });
434 return completer2.future; 437 return completer2.future;
435 }).then((v) { 438 }).then((v) {
436 Expect.fail("should fail async"); 439 Expect.fail("should fail async");
437 }, onError: (AsyncError e) { 440 }, onError: (AsyncError e) {
438 Expect.equals("Error", e.error); 441 Expect.equals("Error", e.error);
439 countDown(1); 442 countDown(1);
440 }); 443 });
441 444
442 completer.completeError("Error"); 445 completer.completeError("Error");
443 } 446 }
444 447
445 testFutureWhenErrorFutureError() { 448 testFutureWhenErrorFutureError() {
446 var port = new ReceivePort(); 449 var port = new ReceivePort();
447 int counter = 3; 450 int counter = 3;
448 countDown(int expect) { 451 countDown(int expect) {
449 Expect.equals(expect, counter); 452 Expect.equals(expect, counter);
450 if (--counter == 0) port.close(); 453 if (--counter == 0) port.close();
451 } 454 }
452 var completer = new Completer(); 455 var completer = new Completer();
453 completer.future.whenComplete(() { 456 completer.future.whenComplete(() {
454 countDown(3); 457 countDown(3);
455 var completer2 = new Completer(); 458 var completer2 = new Completer();
456 new Timer(10, (_) { 459 new Timer(MS * 10, () {
457 countDown(2); 460 countDown(2);
458 completer2.completeError("Fail"); 461 completer2.completeError("Fail");
459 }); 462 });
460 return completer2.future; 463 return completer2.future;
461 }).then((v) { 464 }).then((v) {
462 Expect.fail("should fail async"); 465 Expect.fail("should fail async");
463 }, onError: (AsyncError e) { 466 }, onError: (AsyncError e) {
464 Expect.equals("Fail", e.error); 467 Expect.equals("Fail", e.error);
465 countDown(1); 468 countDown(1);
466 }); 469 });
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 testFutureCatchThrowsAsync(); 622 testFutureCatchThrowsAsync();
620 testFutureWhenThrowsAsync(); 623 testFutureWhenThrowsAsync();
621 testFutureCatchRethrowsAsync(); 624 testFutureCatchRethrowsAsync();
622 625
623 testChainedFutureValue(); 626 testChainedFutureValue();
624 testChainedFutureValueDelay(); 627 testChainedFutureValueDelay();
625 testChainedFutureError(); 628 testChainedFutureError();
626 } 629 }
627 630
628 631
OLDNEW
« no previous file with comments | « tests/language/closure_cycles_test.dart ('k') | tests/lib/async/slow_consumer2_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698