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

Side by Side Diff: tests/lib/async/stream_state_test.dart

Issue 18915008: Let StreamSubscription.cancel return a Future. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Mark failing tests. Created 7 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 | Annotate | Revision Log
OLDNEW
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 event/callback protocol of the stream implementations. 5 // Test the event/callback protocol of the stream implementations.
6 library stream_state_test; 6 library stream_state_test;
7 7
8 import "../../../pkg/unittest/lib/unittest.dart"; 8 import "../../../pkg/unittest/lib/unittest.dart";
9 import "stream_state_helper.dart"; 9 import "stream_state_helper.dart";
10 10
11 const ms5 = const Duration(milliseconds: 5); 11 const ms5 = const Duration(milliseconds: 5);
12 12
13 main() { 13 main() {
14 mainTest(sync: true, asBroadcast: false); 14 mainTest(sync: true, asBroadcast: false);
15 mainTest(sync: true, asBroadcast: true); 15 mainTest(sync: true, asBroadcast: true);
16 mainTest(sync: false, asBroadcast: false); 16 mainTest(sync: false, asBroadcast: false);
17 mainTest(sync: false, asBroadcast: true); 17 mainTest(sync: false, asBroadcast: true);
18 } 18 }
19 19
20 void terminateWithDone(t, asBroadcast) {
21 if (asBroadcast) {
22 t..expectCancel()
23 ..expectDone()
24 ..expectBroadcastCancel((_) => t.terminate());
25 } else {
26 t..expectCancel()
27 ..expectDone(t.terminate);
28 }
29 }
30
20 mainTest({bool sync, bool asBroadcast}) { 31 mainTest({bool sync, bool asBroadcast}) {
21 var p = (sync ? "S" : "AS") + (asBroadcast ? "BC" : "SC"); 32 var p = (sync ? "S" : "AS") + (asBroadcast ? "BC" : "SC");
22 test("$p-sub-data-done", () { 33 test("$p-sub-data-done", () {
23 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 34 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
24 : new StreamProtocolTest(sync: sync); 35 : new StreamProtocolTest(sync: sync);
25 t..expectListen() 36 t..expectListen()
26 ..expectBroadcastListenOpt() 37 ..expectBroadcastListenOpt()
27 ..expectData(42) 38 ..expectData(42);
28 ..expectDone() 39 terminateWithDone(t, asBroadcast);
29 ..expectBroadcastCancelOpt()
30 ..expectCancel(t.terminate);
31 t..listen()..add(42)..close(); 40 t..listen()..add(42)..close();
32 }); 41 });
33 42
34 test("$p-data-done-sub-sync", () { 43 test("$p-data-done-sub-sync", () {
35 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 44 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
36 : new StreamProtocolTest(sync: sync); 45 : new StreamProtocolTest(sync: sync);
37 t..expectListen() 46 t..expectListen()
38 ..expectBroadcastListenOpt() 47 ..expectBroadcastListenOpt()
39 ..expectData(42) 48 ..expectData(42);
40 ..expectDone() 49 terminateWithDone(t, asBroadcast);
41 ..expectBroadcastCancelOpt()
42 ..expectCancel(t.terminate);
43 t..add(42)..close()..listen(); 50 t..add(42)..close()..listen();
44 }); 51 });
45 52
46 test("$p-data-done-sub-async", () { 53 test("$p-data-done-sub-async", () {
47 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 54 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
48 : new StreamProtocolTest(sync: sync); 55 : new StreamProtocolTest(sync: sync);
49 t..expectListen() 56 t..expectListen()
50 ..expectBroadcastListenOpt() 57 ..expectBroadcastListenOpt()
51 ..expectData(42) 58 ..expectData(42);
52 ..expectDone() 59 terminateWithDone(t, asBroadcast);
53 ..expectBroadcastCancelOpt()
54 ..expectCancel(t.terminate);
55 t..add(42)..close()..listen(); 60 t..add(42)..close()..listen();
56 }); 61 });
57 62
58 test("$p-sub-data/pause+resume-done", () { 63 test("$p-sub-data/pause+resume-done", () {
59 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 64 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
60 : new StreamProtocolTest(sync: sync); 65 : new StreamProtocolTest(sync: sync);
61 t..expectListen() 66 t..expectListen()
62 ..expectBroadcastListenOpt() 67 ..expectBroadcastListenOpt()
63 ..expectData(42, () { 68 ..expectData(42, () {
64 t.pause(); 69 t.pause();
65 t.resume(); 70 t.resume();
66 t.close(); 71 t.close();
67 }) 72 });
68 ..expectDone() 73 terminateWithDone(t, asBroadcast);
69 ..expectBroadcastCancelOpt()
70 ..expectCancel(t.terminate);
71 t..listen()..add(42); 74 t..listen()..add(42);
72 }); 75 });
73 76
74 test("$p-sub-data-unsubonerror", () { 77 test("$p-sub-data-unsubonerror", () {
75 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 78 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
76 : new StreamProtocolTest(sync: sync); 79 : new StreamProtocolTest(sync: sync);
77 t..expectListen() 80 if (asBroadcast) {
78 ..expectBroadcastListenOpt() 81 t..expectListen()
79 ..expectData(42) 82 ..expectBroadcastListen()
80 ..expectError("bad") 83 ..expectData(42)
81 ..expectBroadcastCancelOpt() 84 ..expectError("bad")
82 ..expectCancel(t.terminate); 85 ..expectBroadcastCancel()
86 ..expectCancel(t.terminate);
87 } else {
88 t..expectListen()
89 ..expectData(42)
90 ..expectCancel()
91 ..expectError("bad", t.terminate);
92 }
83 t..listen(cancelOnError: true) 93 t..listen(cancelOnError: true)
84 ..add(42) 94 ..add(42)
85 ..error("bad") 95 ..error("bad")
86 ..add(43) 96 ..add(43)
87 ..close(); 97 ..close();
88 }); 98 });
89 99
90 test("$p-sub-data-no-unsubonerror", () { 100 test("$p-sub-data-no-unsubonerror", () {
91 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync) 101 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
92 : new StreamProtocolTest(sync: sync); 102 : new StreamProtocolTest(sync: sync);
93 t..expectListen() 103 t..expectListen()
94 ..expectBroadcastListenOpt() 104 ..expectBroadcastListenOpt()
95 ..expectData(42) 105 ..expectData(42)
96 ..expectError("bad") 106 ..expectError("bad")
97 ..expectData(43) 107 ..expectData(43);
98 ..expectDone() 108 terminateWithDone(t, asBroadcast);
99 ..expectBroadcastCancelOpt()
100 ..expectCancel(t.terminate);
101 t..listen(cancelOnError: false) 109 t..listen(cancelOnError: false)
102 ..add(42) 110 ..add(42)
103 ..error("bad") 111 ..error("bad")
104 ..add(43) 112 ..add(43)
105 ..close(); 113 ..close();
106 }); 114 });
107 115
108 test("$p-pause-resume-during-event", () { 116 test("$p-pause-resume-during-event", () {
109 var t = asBroadcast ? new StreamProtocolTest.broadcast(sync: sync) 117 var t = asBroadcast ? new StreamProtocolTest.broadcast(sync: sync)
110 : new StreamProtocolTest(sync: sync); 118 : new StreamProtocolTest(sync: sync);
111 t..expectListen() 119 t..expectListen()
112 ..expectBroadcastListenOpt() 120 ..expectBroadcastListenOpt()
113 ..expectData(42, () { 121 ..expectData(42, () {
114 t.pause(); 122 t.pause();
115 t.resume(); 123 t.resume();
116 }); 124 });
117 if (!asBroadcast && !sync) { 125 if (!asBroadcast && !sync) {
118 t..expectPause(); 126 t..expectPause();
119 } 127 }
120 t..expectDone() 128 if (asBroadcast && sync) {
121 ..expectBroadcastCancelOpt() 129 t..expectDone()
122 ..expectCancel(t.terminate); 130 ..expectCancel(t.terminate);
131 } else {
132 t..expectCancel()
133 ..expectDone(t.terminate);
134 }
123 t..listen() 135 t..listen()
124 ..add(42) 136 ..add(42)
125 ..close(); 137 ..close();
126 }); 138 });
139
140 test("$p-cancel-on-data", () {
141 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
142 : new StreamProtocolTest(sync: sync);
143 t..expectListen()
144 ..expectBroadcastListenOpt()
145 ..expectData(42, t.cancel)
146 ..expectBroadcastCancelOpt()
147 ..expectCancel(t.terminate);
148 t..listen(cancelOnError: false)
149 ..add(42)
150 ..close();
151 });
152
153 test("$p-cancel-on-error", () {
154 var t = asBroadcast ? new StreamProtocolTest.asBroadcast(sync: sync)
155 : new StreamProtocolTest(sync: sync);
156 t..expectListen()
157 ..expectBroadcastListenOpt()
158 ..expectError(42, t.cancel)
159 ..expectBroadcastCancelOpt()
160 ..expectCancel(t.terminate);
161 t..listen(cancelOnError: false)
162 ..error(42)
163 ..close();
164 });
127 } 165 }
OLDNEW
« no previous file with comments | « tests/lib/async/stream_state_nonzero_timer_test.dart ('k') | tests/lib/async/stream_subscription_cancel_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698