Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(233)

Side by Side Diff: packages/async/test/stream_zip_zone_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // BSD-style license that can be found in the LICENSE file.
4
5 import "dart:async";
6 import "package:test/test.dart";
7
8 // Test that stream listener callbacks all happen in the zone where the
9 // listen occurred.
10
11 main() {
12 StreamController controller;
13 controller = new StreamController();
14 testStream("singlesub-async", controller, controller.stream);
15 controller = new StreamController.broadcast();
16 testStream("broadcast-async", controller, controller.stream);
17 controller = new StreamController();
18 testStream("asbroadcast-async", controller,
19 controller.stream.asBroadcastStream());
20
21 controller = new StreamController(sync: true);
22 testStream("singlesub-sync", controller, controller.stream);
23 controller = new StreamController.broadcast(sync: true);
24 testStream("broadcast-sync", controller, controller.stream);
25 controller = new StreamController(sync: true);
26 testStream("asbroadcast-sync", controller,
27 controller.stream.asBroadcastStream());
28 }
29
30 void testStream(String name, StreamController controller, Stream stream) {
31 test(name, () {
32 Zone outer = Zone.current;
33 runZoned(() {
34 Zone newZone1 = Zone.current;
35 StreamSubscription sub;
36 sub = stream.listen(expectAsync((v) {
37 expect(v, 42);
38 expect(Zone.current, newZone1);
39 outer.run(() {
40 sub.onData(expectAsync((v) {
41 expect(v, 37);
42 expect(Zone.current, newZone1);
43 runZoned(() {
44 sub.onData(expectAsync((v) {
45 expect(v, 87);
46 expect(Zone.current, newZone1);
47 }));
48 });
49 if (controller is SynchronousStreamController) {
50 scheduleMicrotask(() => controller.add(87));
51 } else {
52 controller.add(87);
53 }
54 }));
55 });
56 if (controller is SynchronousStreamController) {
57 scheduleMicrotask(() => controller.add(37));
58 } else {
59 controller.add(37);
60 }
61 }));
62 });
63 controller.add(42);
64 });
65 }
OLDNEW
« no previous file with comments | « packages/async/test/stream_zip_test.dart ('k') | packages/async/test/subscription_stream_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698