| Index: tests/lib/async/stream_subscription_as_future_test.dart
|
| diff --git a/tests/lib/async/stream_subscription_as_future_test.dart b/tests/lib/async/stream_subscription_as_future_test.dart
|
| index ac1293b0297ba9b8c1f9d429c89b22e9f0d21680..1ebd05837f9c413424a955e581addde5a54d0ac7 100644
|
| --- a/tests/lib/async/stream_subscription_as_future_test.dart
|
| +++ b/tests/lib/async/stream_subscription_as_future_test.dart
|
| @@ -10,7 +10,7 @@ import 'dart:async';
|
| import 'package:unittest/unittest.dart';
|
|
|
| main() {
|
| - test("subscription.asStream success", () {
|
| + test("subscription.asFuture success", () {
|
| Stream stream = new Stream.fromIterable([1, 2, 3]);
|
| var output = [];
|
| var subscription = stream.listen((x) { output.add(x); });
|
| @@ -19,7 +19,7 @@ main() {
|
| }));
|
| });
|
|
|
| - test("subscription.asStream success2", () {
|
| + test("subscription.asFuture success2", () {
|
| StreamController controller = new StreamController(sync: true);
|
| [1, 2, 3].forEach(controller.add);
|
| controller.close();
|
| @@ -31,7 +31,7 @@ main() {
|
| }));
|
| });
|
|
|
| - test("subscription.asStream success 3", () {
|
| + test("subscription.asFuture success 3", () {
|
| Stream stream = new Stream.fromIterable([1, 2, 3]).map((x) => x);
|
| var output = [];
|
| var subscription = stream.listen((x) { output.add(x); });
|
| @@ -40,7 +40,7 @@ main() {
|
| }));
|
| });
|
|
|
| - test("subscription.asStream different type", () {
|
| + test("subscription.asFuture different type", () {
|
| Stream stream = new Stream<int>.fromIterable([1, 2, 3]);
|
| var asyncCallback = expectAsync(() => {});
|
| var output = [];
|
| @@ -52,7 +52,7 @@ main() {
|
| });
|
| });
|
|
|
| - test("subscription.asStream failure", () {
|
| + test("subscription.asFuture failure", () {
|
| StreamController controller = new StreamController(sync: true);
|
| [1, 2, 3].forEach(controller.add);
|
| controller.addError("foo");
|
| @@ -65,7 +65,7 @@ main() {
|
| }));
|
| });
|
|
|
| - test("subscription.asStream failure2", () {
|
| + test("subscription.asFuture failure2", () {
|
| Stream stream = new Stream.fromIterable([1, 2, 3, 4])
|
| .map((x) {
|
| if (x == 4) throw "foo";
|
| @@ -77,4 +77,25 @@ main() {
|
| Expect.equals(error, "foo");
|
| }));
|
| });
|
| +
|
| + test("subscription.asFuture delayed cancel", () {
|
| + var completer = new Completer();
|
| + var controller =
|
| + new StreamController(onCancel: () => completer.future, sync: true);
|
| + [1, 2, 3].forEach(controller.add);
|
| + controller.addError("foo");
|
| + controller.close();
|
| + Stream stream = controller.stream;
|
| + var output = [];
|
| + var subscription = stream.listen((x) { output.add(x); });
|
| + bool catchErrorHasRun = false;
|
| + subscription.asFuture(output).catchError(expectAsync((error) {
|
| + Expect.equals(error, "foo");
|
| + catchErrorHasRun = true;
|
| + }));
|
| + Timer.run(expectAsync(() {
|
| + Expect.isFalse(catchErrorHasRun);
|
| + completer.complete();
|
| + }));
|
| + });
|
| }
|
|
|