| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 // Test the StreamSubscription.cancel return Future. | 5 // Test the StreamSubscription.cancel return Future. |
| 6 library stream_subscription_cancel; | 6 library stream_subscription_cancel; |
| 7 | 7 |
| 8 import 'dart:async'; | 8 import 'dart:async'; |
| 9 import 'package:unittest/unittest.dart'; | 9 import 'package:unittest/unittest.dart'; |
| 10 | 10 |
| 11 void main() { | 11 void main() { |
| 12 test('subscription.cancel', () { | 12 test('subscription.cancel', () { |
| 13 var completer = new Completer(); | 13 var completer = new Completer(); |
| 14 StreamController controller = new StreamController( | 14 StreamController controller = new StreamController( |
| 15 onCancel: () => completer.future); | 15 onCancel: () => completer.future); |
| 16 | 16 |
| 17 bool done = false; | 17 bool done = false; |
| 18 expect(controller.stream.listen(null).cancel().then((_) => done), | 18 expect(controller.stream.listen(null).cancel().then((_) => done), |
| 19 completion(equals(true))); | 19 completion(equals(true))); |
| 20 | 20 |
| 21 new Timer(const Duration(milliseconds: 10), () { | 21 Timer.run(() { |
| 22 done = true; | 22 done = true; |
| 23 completer.complete(); | 23 completer.complete(); |
| 24 }); | 24 }); |
| 25 }); | 25 }); |
| 26 | 26 |
| 27 test('subscription.cancel after close', () { | 27 test('subscription.cancel after close', () { |
| 28 var completer = new Completer(); | 28 var completer = new Completer(); |
| 29 StreamController controller = new StreamController( | 29 StreamController controller = new StreamController( |
| 30 onCancel: completer.complete); | 30 onCancel: completer.complete); |
| 31 | 31 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 | 129 |
| 130 void onDone() { | 130 void onDone() { |
| 131 fail("onDone is unexpected"); | 131 fail("onDone is unexpected"); |
| 132 } | 132 } |
| 133 controller.stream | 133 controller.stream |
| 134 .listen(null, onDone: onDone) | 134 .listen(null, onDone: onDone) |
| 135 .cancel(); | 135 .cancel(); |
| 136 expect(doneCompleter.future, completion(equals(true))); | 136 expect(doneCompleter.future, completion(equals(true))); |
| 137 }); | 137 }); |
| 138 } | 138 } |
| OLD | NEW |