Chromium Code Reviews| Index: tests/lib/async/future_constructor_test.dart |
| diff --git a/tests/lib/async/future_constructor_test.dart b/tests/lib/async/future_constructor_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..b0e0b91e9dfa041cd143af4335fec6ba239c00c2 |
| --- /dev/null |
| +++ b/tests/lib/async/future_constructor_test.dart |
| @@ -0,0 +1,41 @@ |
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +library future_test; |
| + |
| +import "package:expect/expect.dart"; |
| +import 'dart:async'; |
| +import 'dart:isolate'; |
| + |
| +main() { |
| + compare(func) { |
| + // Compare the results of the following two futures. |
| + Future f1 = new Future(func); |
| + Future f2 = new Future.value().then((_) => func()); |
| + f2.catchError((_){}); // I'll get the error later. |
| + f1.then((v1) { f2.then((v2) { Expect.equals(v1, v2); }); }, |
| + onError: (e1) { |
| + f2.then((_) { Expect.fail("Expected error"); }, |
| + onError: (e2) { |
| + Expect.equals(e1.error, e2.error); |
| + }); |
| + }); |
| + } |
| + Future val = new Future.value(42); |
| + Future err1 = new Future.error("Error")..catchError((_){}); |
| + Future err2 = new Future.error(new AsyncError("AsyncError"))..catchError((_){}); |
|
Anders Johnsen
2013/04/15 08:59:06
Long line.
floitsch
2013/04/15 21:20:50
Gone with AsyncError removal.
|
| + compare(() => 42); |
| + compare(() => val); |
| + compare(() { throw "Flif"; }); |
| + compare(() { throw new AsyncError("AsyncFlif"); }); |
| + compare(() => err1); |
| + compare(() => err2); |
| + bool hasExecuted = false; |
| + compare(() { |
| + hasExecuted = true; |
| + return 499; |
| + }); |
| + Expect.isFalse(hasExecuted); |
| +} |
| + |