| Index: tests/lib/async/stream_controller_async_test.dart
|
| diff --git a/tests/lib/async/stream_controller_async_test.dart b/tests/lib/async/stream_controller_async_test.dart
|
| index 55cf634cb3aa3a5d2fd725c805c038235ec4a377..f29ff6d0347a86e135948661b5862418a910f288 100644
|
| --- a/tests/lib/async/stream_controller_async_test.dart
|
| +++ b/tests/lib/async/stream_controller_async_test.dart
|
| @@ -412,10 +412,66 @@ testRethrow() {
|
| testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b)));
|
| }
|
|
|
| +void testMultiplex() {
|
| + test("multiplex-basic", () {
|
| + StreamController<int> c = new StreamController.multiplex(
|
| + onListen: expectAsync0(() {}),
|
| + onCancel: expectAsync0(() {})
|
| + );
|
| + Stream<int> s = c.stream;
|
| + s.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + c.add(42);
|
| + c.close();
|
| + });
|
| +
|
| + test("multiplex-listen-twice", () {
|
| + StreamController<int> c = new StreamController.multiplex(
|
| + onListen: expectAsync0(() {}),
|
| + onCancel: expectAsync0(() {})
|
| + );
|
| + c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }, count: 2));
|
| + c.add(42);
|
| + c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + c.add(42);
|
| + c.close();
|
| + });
|
| +
|
| + test("multiplex-listen-twice-non-overlap", () {
|
| + StreamController<int> c = new StreamController.multiplex(
|
| + onListen: expectAsync0(() {}, count: 2),
|
| + onCancel: expectAsync0(() {}, count: 2)
|
| + );
|
| + var sub = c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + c.add(42);
|
| + sub.cancel();
|
| + c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + c.add(42);
|
| + c.close();
|
| + });
|
| +
|
| + test("multiplex-individual-pause", () {
|
| + StreamController<int> c = new StreamController.multiplex(
|
| + onListen: expectAsync0(() {}),
|
| + onCancel: expectAsync0(() {})
|
| + );
|
| + var sub1 = c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + var sub2 = c.stream.listen(expectAsync1((x) { expect(x, equals(42)); },
|
| + count: 3));
|
| + c.add(42);
|
| + sub1.pause();
|
| + c.add(42);
|
| + sub1.cancel();
|
| + var sub3 = c.stream.listen(expectAsync1((x) { expect(x, equals(42)); }));
|
| + c.add(42);
|
| + c.close();
|
| + });
|
| +}
|
| +
|
| main() {
|
| testController();
|
| testSingleController();
|
| testExtraMethods();
|
| testPause();
|
| testRethrow();
|
| + testMultiplex();
|
| }
|
|
|