Index: tests/lib_strong/async/future_constructor2_test.dart |
diff --git a/tests/lib_strong/async/future_constructor2_test.dart b/tests/lib_strong/async/future_constructor2_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2d64ff4e9656fe694f7955a2439d6605c795e114 |
--- /dev/null |
+++ b/tests/lib_strong/async/future_constructor2_test.dart |
@@ -0,0 +1,62 @@ |
+// Copyright (c) 2015, 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_delayed_test; |
+ |
+import 'package:async_helper/async_helper.dart'; |
+import "package:expect/expect.dart"; |
+import 'dart:async'; |
+ |
+Future<int> createIntFuture() { |
+ return new Future<int>.value(499); |
+} |
+ |
+unnamed() { |
+ asyncStart(); |
+ new Future<int>(createIntFuture) |
+ .then((x) { |
+ Expect.equals(499, x); |
+ asyncEnd(); |
+ }); |
+} |
+ |
+delayed() { |
+ asyncStart(); |
+ new Future<int>.delayed(const Duration(milliseconds: 2), createIntFuture) |
+ .then((x) { |
+ Expect.equals(499, x); |
+ asyncEnd(); |
+ }); |
+} |
+ |
+microtask() { |
+ asyncStart(); |
+ new Future<int>.microtask(createIntFuture) |
+ .then((x) { |
+ Expect.equals(499, x); |
+ asyncEnd(); |
+ }); |
+} |
+ |
+sync() { |
+ asyncStart(); |
+ new Future<int>.sync(createIntFuture) |
+ .then((x) { |
+ Expect.equals(499, x); |
+ asyncEnd(); |
+ }); |
+} |
+ |
+main() { |
+ asyncStart(); |
+ // Test that all the Future constructors take functions that return a Future |
+ // as argument. |
+ // In particular the constructors must not type their argument as |
+ // `T computation()`. |
+ unnamed(); |
+ delayed(); |
+ microtask(); |
+ sync(); |
+ asyncEnd(); |
+} |