Chromium Code Reviews| Index: tests/lib/async/catch_errors16_test.dart |
| diff --git a/tests/lib/async/catch_errors16_test.dart b/tests/lib/async/catch_errors16_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..22428c89a04c2c7cf15c4aa5a9adc737fdc68177 |
| --- /dev/null |
| +++ b/tests/lib/async/catch_errors16_test.dart |
| @@ -0,0 +1,37 @@ |
| +// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +import "package:expect/expect.dart"; |
| +import 'dart:async'; |
| +import 'dart:isolate'; |
| + |
| +main() { |
| + // We keep a ReceivePort open until all tests are done. This way the VM will |
| + // time out if the callbacks are not invoked. |
| + var port = new ReceivePort(); |
| + var events = []; |
| + StreamController controller = new StreamController(); |
| + Stream stream = controller.stream; |
| + // Test that the subscription of a stream is what counts. The error (2) runs |
| + // through the map-stream which goes through the nested `catchError` but |
| + // the nested `catchError` won't see the error. |
| + catchErrors(() { |
| + stream = stream.map((x) => x + 100); |
| + }).listen((x) { events.add(x); }); |
| + stream |
| + .transform(new StreamTransformer( |
| + handleError: (e, sink) => sink.add("error $e"))) |
| + .listen((x) { events.add("stream $x"); }, |
| + onDone: () { |
| + Expect.listEquals([ |
|
Lasse Reichstein Nielsen
2013/05/29 08:32:26
This looks weird. It should be indented 2 relative
floitsch
2013/05/29 15:48:56
done.
|
| + "stream 101", |
| + "stream error 2" |
| + ], |
| + events); |
| + port.close(); |
| + }); |
| + controller.add(1); |
| + controller.addError(2); |
| + controller.close(); |
| +} |