| 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();
 | 
|  }
 | 
| 
 |