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 file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import "dart:async"; | 5 import "dart:async"; |
6 | 6 |
7 import "package:async/async.dart" show StreamCompleter; | 7 import "package:async/async.dart" show StreamCompleter; |
8 import "package:test/test.dart"; | 8 import "package:test/test.dart"; |
9 | 9 |
10 import "utils.dart"; | 10 import "utils.dart"; |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 completer.stream.listen( | 123 completer.stream.listen( |
124 unreachable("data"), | 124 unreachable("data"), |
125 onError: unreachable("error"), | 125 onError: unreachable("error"), |
126 onDone: done.complete); | 126 onDone: done.complete); |
127 completer.setEmpty(); | 127 completer.setEmpty(); |
128 await done.future; | 128 await done.future; |
129 }); | 129 }); |
130 | 130 |
131 test("source stream isn't listened to until completer stream is", () async { | 131 test("source stream isn't listened to until completer stream is", () async { |
132 var completer = new StreamCompleter(); | 132 var completer = new StreamCompleter(); |
133 var controller; | 133 StreamController controller; |
134 controller = new StreamController(onListen: () { | 134 controller = new StreamController(onListen: () { |
135 scheduleMicrotask(controller.close); | 135 scheduleMicrotask(controller.close); |
136 }); | 136 }); |
137 | 137 |
138 completer.setSourceStream(controller.stream); | 138 completer.setSourceStream(controller.stream); |
139 await flushMicrotasks(); | 139 await flushMicrotasks(); |
140 expect(controller.hasListener, isFalse); | 140 expect(controller.hasListener, isFalse); |
141 var subscription = completer.stream.listen(null); | 141 var subscription = completer.stream.listen(null); |
142 expect(controller.hasListener, isTrue); | 142 expect(controller.hasListener, isTrue); |
143 await subscription.asFuture(); | 143 await subscription.asFuture(); |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
274 test("listening more than once before setting stream", () async { | 274 test("listening more than once before setting stream", () async { |
275 var completer = new StreamCompleter(); | 275 var completer = new StreamCompleter(); |
276 completer.stream.toList(); | 276 completer.stream.toList(); |
277 expect(() => completer.stream.toList(), throwsStateError); | 277 expect(() => completer.stream.toList(), throwsStateError); |
278 }); | 278 }); |
279 | 279 |
280 test("setting onData etc. before and after setting stream", () async { | 280 test("setting onData etc. before and after setting stream", () async { |
281 var completer = new StreamCompleter(); | 281 var completer = new StreamCompleter(); |
282 var controller = new StreamController(); | 282 var controller = new StreamController(); |
283 var subscription = completer.stream.listen(null); | 283 var subscription = completer.stream.listen(null); |
284 var lastEvent = 0; | 284 Object lastEvent = 0; |
285 subscription.onData((value) => lastEvent = value); | 285 subscription.onData((value) => lastEvent = value); |
286 subscription.onError((value) => lastEvent = "$value"); | 286 subscription.onError((value) => lastEvent = "$value"); |
287 subscription.onDone(() => lastEvent = -1); | 287 subscription.onDone(() => lastEvent = -1); |
288 completer.setSourceStream(controller.stream); | 288 completer.setSourceStream(controller.stream); |
289 await flushMicrotasks(); | 289 await flushMicrotasks(); |
290 controller.add(1); | 290 controller.add(1); |
291 await flushMicrotasks(); | 291 await flushMicrotasks(); |
292 expect(lastEvent, 1); | 292 expect(lastEvent, 1); |
293 controller.addError(2); | 293 controller.addError(2); |
294 await flushMicrotasks(); | 294 await flushMicrotasks(); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
369 | 369 |
370 Stream<int> createStream() async* { | 370 Stream<int> createStream() async* { |
371 yield 1; | 371 yield 1; |
372 await flushMicrotasks(); | 372 await flushMicrotasks(); |
373 yield 2; | 373 yield 2; |
374 await flushMicrotasks(); | 374 await flushMicrotasks(); |
375 yield 3; | 375 yield 3; |
376 await flushMicrotasks(); | 376 await flushMicrotasks(); |
377 yield 4; | 377 yield 4; |
378 } | 378 } |
OLD | NEW |