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

Side by Side Diff: test/frontend/expect_async_test.dart

Issue 2515303002: Add expectAsyncX and expectAsyncUntilX methods, and deprecate the old methods. (Closed)
Patch Set: Mark parameter types as Object. Created 4 years 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
« no previous file with comments | « test/backend/invoker_test.dart ('k') | test/frontend/set_up_all_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 import 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:test/src/backend/state.dart'; 7 import 'package:test/src/backend/state.dart';
8 import 'package:test/test.dart'; 8 import 'package:test/test.dart';
9 9
10 import '../utils.dart'; 10 import '../utils.dart';
11 11
12 void main() { 12 void main() {
13 group("supports a function with this many arguments:", () { 13 group("supports a function with this many arguments:", () {
14 test("0", () async { 14 test("0", () async {
15 var callbackRun = false; 15 var callbackRun = false;
16 var liveTest = await runTestBody(() { 16 var liveTest = await runTestBody(() {
17 expectAsync(() { 17 expectAsync0(() {
18 callbackRun = true; 18 callbackRun = true;
19 })(); 19 })();
20 }); 20 });
21 21
22 expectTestPassed(liveTest); 22 expectTestPassed(liveTest);
23 expect(callbackRun, isTrue); 23 expect(callbackRun, isTrue);
24 }); 24 });
25 25
26 test("1", () async { 26 test("1", () async {
27 var callbackRun = false; 27 var callbackRun = false;
28 var liveTest = await runTestBody(() { 28 var liveTest = await runTestBody(() {
29 expectAsync((arg) { 29 expectAsync1((arg) {
30 expect(arg, equals(1)); 30 expect(arg, equals(1));
31 callbackRun = true; 31 callbackRun = true;
32 })(1); 32 })(1);
33 }); 33 });
34 34
35 expectTestPassed(liveTest); 35 expectTestPassed(liveTest);
36 expect(callbackRun, isTrue); 36 expect(callbackRun, isTrue);
37 }); 37 });
38 38
39 test("2", () async { 39 test("2", () async {
40 var callbackRun = false; 40 var callbackRun = false;
41 var liveTest = await runTestBody(() { 41 var liveTest = await runTestBody(() {
42 expectAsync((arg1, arg2) { 42 expectAsync2((arg1, arg2) {
43 expect(arg1, equals(1)); 43 expect(arg1, equals(1));
44 expect(arg2, equals(2)); 44 expect(arg2, equals(2));
45 callbackRun = true; 45 callbackRun = true;
46 })(1, 2); 46 })(1, 2);
47 }); 47 });
48 48
49 expectTestPassed(liveTest); 49 expectTestPassed(liveTest);
50 expect(callbackRun, isTrue); 50 expect(callbackRun, isTrue);
51 }); 51 });
52 52
53 test("3", () async { 53 test("3", () async {
54 var callbackRun = false; 54 var callbackRun = false;
55 var liveTest = await runTestBody(() { 55 var liveTest = await runTestBody(() {
56 expectAsync((arg1, arg2, arg3) { 56 expectAsync3((arg1, arg2, arg3) {
57 expect(arg1, equals(1)); 57 expect(arg1, equals(1));
58 expect(arg2, equals(2)); 58 expect(arg2, equals(2));
59 expect(arg3, equals(3)); 59 expect(arg3, equals(3));
60 callbackRun = true; 60 callbackRun = true;
61 })(1, 2, 3); 61 })(1, 2, 3);
62 }); 62 });
63 63
64 expectTestPassed(liveTest); 64 expectTestPassed(liveTest);
65 expect(callbackRun, isTrue); 65 expect(callbackRun, isTrue);
66 }); 66 });
67 67
68 test("4", () async { 68 test("4", () async {
69 var callbackRun = false; 69 var callbackRun = false;
70 var liveTest = await runTestBody(() { 70 var liveTest = await runTestBody(() {
71 expectAsync((arg1, arg2, arg3, arg4) { 71 expectAsync4((arg1, arg2, arg3, arg4) {
72 expect(arg1, equals(1)); 72 expect(arg1, equals(1));
73 expect(arg2, equals(2)); 73 expect(arg2, equals(2));
74 expect(arg3, equals(3)); 74 expect(arg3, equals(3));
75 expect(arg4, equals(4)); 75 expect(arg4, equals(4));
76 callbackRun = true; 76 callbackRun = true;
77 })(1, 2, 3, 4); 77 })(1, 2, 3, 4);
78 }); 78 });
79 79
80 expectTestPassed(liveTest); 80 expectTestPassed(liveTest);
81 expect(callbackRun, isTrue); 81 expect(callbackRun, isTrue);
82 }); 82 });
83 83
84 test("5", () async { 84 test("5", () async {
85 var callbackRun = false; 85 var callbackRun = false;
86 var liveTest = await runTestBody(() { 86 var liveTest = await runTestBody(() {
87 expectAsync((arg1, arg2, arg3, arg4, arg5) { 87 expectAsync5((arg1, arg2, arg3, arg4, arg5) {
88 expect(arg1, equals(1)); 88 expect(arg1, equals(1));
89 expect(arg2, equals(2)); 89 expect(arg2, equals(2));
90 expect(arg3, equals(3)); 90 expect(arg3, equals(3));
91 expect(arg4, equals(4)); 91 expect(arg4, equals(4));
92 expect(arg5, equals(5)); 92 expect(arg5, equals(5));
93 callbackRun = true; 93 callbackRun = true;
94 })(1, 2, 3, 4, 5); 94 })(1, 2, 3, 4, 5);
95 }); 95 });
96 96
97 expectTestPassed(liveTest); 97 expectTestPassed(liveTest);
98 expect(callbackRun, isTrue); 98 expect(callbackRun, isTrue);
99 }); 99 });
100 100
101 test("6", () async { 101 test("6", () async {
102 var callbackRun = false; 102 var callbackRun = false;
103 var liveTest = await runTestBody(() { 103 var liveTest = await runTestBody(() {
104 expectAsync((arg1, arg2, arg3, arg4, arg5, arg6) { 104 expectAsync6((arg1, arg2, arg3, arg4, arg5, arg6) {
105 expect(arg1, equals(1)); 105 expect(arg1, equals(1));
106 expect(arg2, equals(2)); 106 expect(arg2, equals(2));
107 expect(arg3, equals(3)); 107 expect(arg3, equals(3));
108 expect(arg4, equals(4)); 108 expect(arg4, equals(4));
109 expect(arg5, equals(5)); 109 expect(arg5, equals(5));
110 expect(arg6, equals(6)); 110 expect(arg6, equals(6));
111 callbackRun = true; 111 callbackRun = true;
112 })(1, 2, 3, 4, 5, 6); 112 })(1, 2, 3, 4, 5, 6);
113 }); 113 });
114 114
115 expectTestPassed(liveTest); 115 expectTestPassed(liveTest);
116 expect(callbackRun, isTrue); 116 expect(callbackRun, isTrue);
117 }); 117 });
118 }); 118 });
119 119
120 group("with optional arguments", () { 120 group("with optional arguments", () {
121 test("allows them to be passed", () async { 121 test("allows them to be passed", () async {
122 var callbackRun = false; 122 var callbackRun = false;
123 var liveTest = await runTestBody(() { 123 var liveTest = await runTestBody(() {
124 expectAsync(([arg = 1]) { 124 expectAsync1(([arg = 1]) {
125 expect(arg, equals(2)); 125 expect(arg, equals(2));
126 callbackRun = true; 126 callbackRun = true;
127 })(2); 127 })(2);
128 }); 128 });
129 129
130 expectTestPassed(liveTest); 130 expectTestPassed(liveTest);
131 expect(callbackRun, isTrue); 131 expect(callbackRun, isTrue);
132 }); 132 });
133 133
134 test("allows them not to be passed", () async { 134 test("allows them not to be passed", () async {
135 var callbackRun = false; 135 var callbackRun = false;
136 var liveTest = await runTestBody(() { 136 var liveTest = await runTestBody(() {
137 expectAsync(([arg = 1]) { 137 expectAsync1(([arg = 1]) {
138 expect(arg, equals(1)); 138 expect(arg, equals(1));
139 callbackRun = true; 139 callbackRun = true;
140 })(); 140 })();
141 }); 141 });
142 142
143 expectTestPassed(liveTest); 143 expectTestPassed(liveTest);
144 expect(callbackRun, isTrue); 144 expect(callbackRun, isTrue);
145 }); 145 });
146 }); 146 });
147 147
148 test("doesn't support a function with 7 arguments", () { 148 test("doesn't support a function with 7 arguments", () {
149 expect(() => expectAsync((_1, _2, _3, _4, _5, _6, _7) {}), 149 expect(() => expectAsync((_1, _2, _3, _4, _5, _6, _7) {}),
150 throwsArgumentError); 150 throwsArgumentError);
151 }); 151 });
152 152
153 group("by default", () { 153 group("by default", () {
154 test("won't allow the test to complete until it's called", () { 154 test("won't allow the test to complete until it's called", () {
155 return expectTestBlocks( 155 return expectTestBlocks(
156 () => expectAsync(() {}), 156 () => expectAsync0(() {}),
157 (callback) => callback()); 157 (callback) => callback());
158 }); 158 });
159 159
160 test("may only be called once", () async { 160 test("may only be called once", () async {
161 var liveTest = await runTestBody(() { 161 var liveTest = await runTestBody(() {
162 var callback = expectAsync(() {}); 162 var callback = expectAsync0(() {});
163 callback(); 163 callback();
164 callback(); 164 callback();
165 }); 165 });
166 166
167 expectTestFailed(liveTest, 167 expectTestFailed(liveTest,
168 "Callback called more times than expected (1)."); 168 "Callback called more times than expected (1).");
169 }); 169 });
170 }); 170 });
171 171
172 group("with count", () { 172 group("with count", () {
173 test("won't allow the test to complete until it's called at least that " 173 test("won't allow the test to complete until it's called at least that "
174 "many times", () async { 174 "many times", () async {
175 var liveTest; 175 var liveTest;
176 var future; 176 var future;
177 liveTest = createTest(() { 177 liveTest = createTest(() {
178 var callback = expectAsync(() {}, count: 3); 178 var callback = expectAsync0(() {}, count: 3);
179 179
180 future = new Future.sync(() async { 180 future = new Future.sync(() async {
181 await pumpEventQueue(); 181 await pumpEventQueue();
182 expect(liveTest.state.status, equals(Status.running)); 182 expect(liveTest.state.status, equals(Status.running));
183 callback(); 183 callback();
184 184
185 await pumpEventQueue(); 185 await pumpEventQueue();
186 expect(liveTest.state.status, equals(Status.running)); 186 expect(liveTest.state.status, equals(Status.running));
187 callback(); 187 callback();
188 188
189 await pumpEventQueue(); 189 await pumpEventQueue();
190 expect(liveTest.state.status, equals(Status.running)); 190 expect(liveTest.state.status, equals(Status.running));
191 callback(); 191 callback();
192 }); 192 });
193 }); 193 });
194 194
195 await liveTest.run(); 195 await liveTest.run();
196 expectTestPassed(liveTest); 196 expectTestPassed(liveTest);
197 // Ensure that the outer test doesn't complete until the inner future 197 // Ensure that the outer test doesn't complete until the inner future
198 // completes. 198 // completes.
199 await future; 199 await future;
200 }); 200 });
201 201
202 test("will throw an error if it's called more than that many times", () asyn c { 202 test("will throw an error if it's called more than that many times", () asyn c {
203 var liveTest = await runTestBody(() { 203 var liveTest = await runTestBody(() {
204 var callback = expectAsync(() {}, count: 3); 204 var callback = expectAsync0(() {}, count: 3);
205 callback(); 205 callback();
206 callback(); 206 callback();
207 callback(); 207 callback();
208 callback(); 208 callback();
209 }); 209 });
210 210
211 expectTestFailed( 211 expectTestFailed(
212 liveTest, "Callback called more times than expected (3)."); 212 liveTest, "Callback called more times than expected (3).");
213 }); 213 });
214 214
215 group("0,", () { 215 group("0,", () {
216 test("won't block the test's completion", () { 216 test("won't block the test's completion", () {
217 expectAsync(() {}, count: 0); 217 expectAsync0(() {}, count: 0);
218 }); 218 });
219 219
220 test("will throw an error if it's ever called", () async { 220 test("will throw an error if it's ever called", () async {
221 var liveTest = await runTestBody(() { 221 var liveTest = await runTestBody(() {
222 expectAsync(() {}, count: 0)(); 222 expectAsync0(() {}, count: 0)();
223 }); 223 });
224 224
225 expectTestFailed( 225 expectTestFailed(
226 liveTest, "Callback called more times than expected (0)."); 226 liveTest, "Callback called more times than expected (0).");
227 }); 227 });
228 }); 228 });
229 }); 229 });
230 230
231 group("with max", () { 231 group("with max", () {
232 test("will allow the callback to be called that many times", () { 232 test("will allow the callback to be called that many times", () {
233 var callback = expectAsync(() {}, max: 3); 233 var callback = expectAsync0(() {}, max: 3);
234 callback(); 234 callback();
235 callback(); 235 callback();
236 callback(); 236 callback();
237 }); 237 });
238 238
239 test("will allow the callback to be called fewer than that many times", () { 239 test("will allow the callback to be called fewer than that many times", () {
240 var callback = expectAsync(() {}, max: 3); 240 var callback = expectAsync0(() {}, max: 3);
241 callback(); 241 callback();
242 }); 242 });
243 243
244 test("will throw an error if it's called more than that many times", 244 test("will throw an error if it's called more than that many times",
245 () async { 245 () async {
246 var liveTest = await runTestBody(() { 246 var liveTest = await runTestBody(() {
247 var callback = expectAsync(() {}, max: 3); 247 var callback = expectAsync0(() {}, max: 3);
248 callback(); 248 callback();
249 callback(); 249 callback();
250 callback(); 250 callback();
251 callback(); 251 callback();
252 }); 252 });
253 253
254 expectTestFailed( 254 expectTestFailed(
255 liveTest, "Callback called more times than expected (3)."); 255 liveTest, "Callback called more times than expected (3).");
256 }); 256 });
257 257
258 test("-1, will allow the callback to be called any number of times", () { 258 test("-1, will allow the callback to be called any number of times", () {
259 var callback = expectAsync(() {}, max: -1); 259 var callback = expectAsync0(() {}, max: -1);
260 for (var i = 0; i < 20; i++) { 260 for (var i = 0; i < 20; i++) {
261 callback(); 261 callback();
262 } 262 }
263 }); 263 });
264 }); 264 });
265 265
266 test("will throw an error if max is less than count", () { 266 test("will throw an error if max is less than count", () {
267 expect(() => expectAsync(() {}, max: 1, count: 2), 267 expect(() => expectAsync0(() {}, max: 1, count: 2),
268 throwsArgumentError); 268 throwsArgumentError);
269 }); 269 });
270 270
271 group("expectAsyncUntil()", () { 271 group("expectAsyncUntil()", () {
272 test("won't allow the test to complete until isDone returns true", 272 test("won't allow the test to complete until isDone returns true",
273 () async { 273 () async {
274 var liveTest; 274 var liveTest;
275 var future; 275 var future;
276 liveTest = createTest(() { 276 liveTest = createTest(() {
277 var done = false; 277 var done = false;
278 var callback = expectAsyncUntil(() {}, () => done); 278 var callback = expectAsyncUntil0(() {}, () => done);
279 279
280 future = new Future.sync(() async { 280 future = new Future.sync(() async {
281 await pumpEventQueue(); 281 await pumpEventQueue();
282 expect(liveTest.state.status, equals(Status.running)); 282 expect(liveTest.state.status, equals(Status.running));
283 callback(); 283 callback();
284 await pumpEventQueue(); 284 await pumpEventQueue();
285 expect(liveTest.state.status, equals(Status.running)); 285 expect(liveTest.state.status, equals(Status.running));
286 done = true; 286 done = true;
287 callback(); 287 callback();
288 }); 288 });
289 }); 289 });
290 290
291 await liveTest.run(); 291 await liveTest.run();
292 expectTestPassed(liveTest); 292 expectTestPassed(liveTest);
293 // Ensure that the outer test doesn't complete until the inner future 293 // Ensure that the outer test doesn't complete until the inner future
294 // completes. 294 // completes.
295 await future; 295 await future;
296 }); 296 });
297 297
298 test("doesn't call isDone until after the callback is called", () { 298 test("doesn't call isDone until after the callback is called", () {
299 var callbackRun = false; 299 var callbackRun = false;
300 expectAsyncUntil(() => callbackRun = true, () { 300 expectAsyncUntil0(() => callbackRun = true, () {
301 expect(callbackRun, isTrue); 301 expect(callbackRun, isTrue);
302 return true; 302 return true;
303 })(); 303 })();
304 }); 304 });
305 }); 305 });
306 306
307 group("with errors", () { 307 group("with errors", () {
308 test("reports them to the current test", () async { 308 test("reports them to the current test", () async {
309 var liveTest = await runTestBody(() { 309 var liveTest = await runTestBody(() {
310 expectAsync(() => throw new TestFailure('oh no'))(); 310 expectAsync0(() => throw new TestFailure('oh no'))();
311 }); 311 });
312 312
313 expectTestFailed(liveTest, 'oh no'); 313 expectTestFailed(liveTest, 'oh no');
314 }); 314 });
315 315
316 test("swallows them and returns null", () async { 316 test("swallows them and returns null", () async {
317 var returnValue; 317 var returnValue;
318 var caughtError = false; 318 var caughtError = false;
319 var liveTest = await runTestBody(() { 319 var liveTest = await runTestBody(() {
320 try { 320 try {
321 returnValue = expectAsync(() => throw new TestFailure('oh no'))(); 321 returnValue = expectAsync0(() => throw new TestFailure('oh no'))();
322 } on TestFailure catch (_) { 322 } on TestFailure catch (_) {
323 caughtError = true; 323 caughtError = true;
324 } 324 }
325 }); 325 });
326 326
327 expectTestFailed(liveTest, 'oh no'); 327 expectTestFailed(liveTest, 'oh no');
328 expect(returnValue, isNull); 328 expect(returnValue, isNull);
329 expect(caughtError, isFalse); 329 expect(caughtError, isFalse);
330 }); 330 });
331 }); 331 });
332 } 332 }
OLDNEW
« no previous file with comments | « test/backend/invoker_test.dart ('k') | test/frontend/set_up_all_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698