| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 filevents. | 3 // BSD-style license that can be found in the LICENSE filevents. |
| 4 | 4 |
| 5 import "dart:async"; | 5 import "dart:async"; |
| 6 | 6 |
| 7 import "package:async/async.dart" show StreamQueue; | 7 import "package:async/async.dart" show StreamQueue; |
| 8 import "package:test/test.dart"; | 8 import "package:test/test.dart"; |
| 9 | 9 |
| 10 import "utils.dart"; | 10 import "utils.dart"; |
| (...skipping 854 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 865 expect(await queue2.hasNext, isFalse); | 865 expect(await queue2.hasNext, isFalse); |
| 866 }); | 866 }); |
| 867 | 867 |
| 868 test("the underlying stream is only canceled once all forks are canceled", | 868 test("the underlying stream is only canceled once all forks are canceled", |
| 869 () async { | 869 () async { |
| 870 var controller = new StreamController(); | 870 var controller = new StreamController(); |
| 871 var queue1 = new StreamQueue<int>(controller.stream); | 871 var queue1 = new StreamQueue<int>(controller.stream); |
| 872 var queue2 = queue1.fork(); | 872 var queue2 = queue1.fork(); |
| 873 | 873 |
| 874 await flushMicrotasks(); | 874 await flushMicrotasks(); |
| 875 expect(controller.hasListener, isFalse); | 875 expect(controller.hasListener, isTrue); |
| 876 | 876 |
| 877 expect(queue1.next, completion(1)); | 877 expect(queue1.next, completion(1)); |
| 878 await flushMicrotasks(); | 878 await flushMicrotasks(); |
| 879 expect(controller.hasListener, isTrue); | 879 expect(controller.hasListener, isTrue); |
| 880 | 880 |
| 881 queue2.cancel(); | 881 queue2.cancel(); |
| 882 await flushMicrotasks(); | 882 await flushMicrotasks(); |
| 883 expect(controller.hasListener, isTrue); | 883 expect(controller.hasListener, isTrue); |
| 884 | 884 |
| 885 controller.add(1); | 885 controller.add(1); |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 935 expect(await queue2.hasNext, isFalse); | 935 expect(await queue2.hasNext, isFalse); |
| 936 }); | 936 }); |
| 937 | 937 |
| 938 test("the underlying stream is only canceled once all forks are " | 938 test("the underlying stream is only canceled once all forks are " |
| 939 "canceled", () async { | 939 "canceled", () async { |
| 940 var controller = new StreamController(); | 940 var controller = new StreamController(); |
| 941 var queue1 = new StreamQueue<int>(controller.stream); | 941 var queue1 = new StreamQueue<int>(controller.stream); |
| 942 var queue2 = queue1.fork(); | 942 var queue2 = queue1.fork(); |
| 943 | 943 |
| 944 await flushMicrotasks(); | 944 await flushMicrotasks(); |
| 945 expect(controller.hasListener, isFalse); | 945 expect(controller.hasListener, isTrue); |
| 946 | 946 |
| 947 expect(queue1.next, throwsStateError); | 947 expect(queue1.next, throwsStateError); |
| 948 await flushMicrotasks(); | 948 await flushMicrotasks(); |
| 949 expect(controller.hasListener, isTrue); | 949 expect(controller.hasListener, isTrue); |
| 950 | 950 |
| 951 queue2.cancel(immediate: true); | 951 queue2.cancel(immediate: true); |
| 952 await flushMicrotasks(); | 952 await flushMicrotasks(); |
| 953 expect(controller.hasListener, isTrue); | 953 expect(controller.hasListener, isTrue); |
| 954 | 954 |
| 955 queue1.cancel(immediate: true); | 955 queue1.cancel(immediate: true); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1016 expect(await queue2.hasNext, isFalse); | 1016 expect(await queue2.hasNext, isFalse); |
| 1017 }); | 1017 }); |
| 1018 | 1018 |
| 1019 test("the underlying stream is only paused when all forks are paused", | 1019 test("the underlying stream is only paused when all forks are paused", |
| 1020 () async { | 1020 () async { |
| 1021 var controller = new StreamController(); | 1021 var controller = new StreamController(); |
| 1022 var queue1 = new StreamQueue<int>(controller.stream); | 1022 var queue1 = new StreamQueue<int>(controller.stream); |
| 1023 var queue2 = queue1.fork(); | 1023 var queue2 = queue1.fork(); |
| 1024 | 1024 |
| 1025 await flushMicrotasks(); | 1025 await flushMicrotasks(); |
| 1026 expect(controller.hasListener, isFalse); | 1026 expect(controller.hasListener, isTrue); |
| 1027 | 1027 |
| 1028 var sub1 = queue1.rest.listen(null); | 1028 var sub1 = queue1.rest.listen(null); |
| 1029 await flushMicrotasks(); | 1029 await flushMicrotasks(); |
| 1030 expect(controller.hasListener, isTrue); | 1030 expect(controller.hasListener, isTrue); |
| 1031 expect(controller.isPaused, isFalse); | 1031 expect(controller.isPaused, isFalse); |
| 1032 | 1032 |
| 1033 sub1.pause(); | 1033 sub1.pause(); |
| 1034 await flushMicrotasks(); | 1034 await flushMicrotasks(); |
| 1035 expect(controller.isPaused, isTrue); | 1035 expect(controller.isPaused, isTrue); |
| 1036 | 1036 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1122 controller.add(4); | 1122 controller.add(4); |
| 1123 await flushMicrotasks(); | 1123 await flushMicrotasks(); |
| 1124 controller.close(); | 1124 controller.close(); |
| 1125 }(); | 1125 }(); |
| 1126 return controller.stream; | 1126 return controller.stream; |
| 1127 } | 1127 } |
| 1128 | 1128 |
| 1129 Stream<int> createLongStream(int eventCount) async* { | 1129 Stream<int> createLongStream(int eventCount) async* { |
| 1130 for (int i = 0; i < eventCount; i++) yield i; | 1130 for (int i = 0; i < eventCount; i++) yield i; |
| 1131 } | 1131 } |
| OLD | NEW |