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

Side by Side Diff: test/util/forkable_stream_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, 1 month 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/runner/signal_test.dart ('k') | test/util/one_off_handler_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 // TODO(nweiz): Get rid of this when https://codereview.chromium.org/1241723003/ 5 // TODO(nweiz): Get rid of this when https://codereview.chromium.org/1241723003/
6 // lands. 6 // lands.
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 9
10 import 'package:test/test.dart'; 10 import 'package:test/test.dart';
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 206
207 for (var i = 0; i < 4; i++) { 207 for (var i = 0; i < 4; i++) {
208 controller.add(i); 208 controller.add(i);
209 209
210 var queue1Fired = false; 210 var queue1Fired = false;
211 var queue2Fired = false; 211 var queue2Fired = false;
212 var queue3Fired = false; 212 var queue3Fired = false;
213 var queue4Fired = false; 213 var queue4Fired = false;
214 var queue5Fired = false; 214 var queue5Fired = false;
215 215
216 queue5.next.then(expectAsync((_) { 216 queue5.next.then(expectAsync1((_) {
217 queue5Fired = true; 217 queue5Fired = true;
218 expect(queue1Fired, isTrue); 218 expect(queue1Fired, isTrue);
219 expect(queue2Fired, isTrue); 219 expect(queue2Fired, isTrue);
220 expect(queue3Fired, isTrue); 220 expect(queue3Fired, isTrue);
221 expect(queue4Fired, isTrue); 221 expect(queue4Fired, isTrue);
222 })); 222 }));
223 223
224 queue1.next.then(expectAsync((_) { 224 queue1.next.then(expectAsync1((_) {
225 queue1Fired = true; 225 queue1Fired = true;
226 expect(queue2Fired, isFalse); 226 expect(queue2Fired, isFalse);
227 expect(queue3Fired, isFalse); 227 expect(queue3Fired, isFalse);
228 expect(queue4Fired, isFalse); 228 expect(queue4Fired, isFalse);
229 expect(queue5Fired, isFalse); 229 expect(queue5Fired, isFalse);
230 })); 230 }));
231 231
232 queue4.next.then(expectAsync((_) { 232 queue4.next.then(expectAsync1((_) {
233 queue4Fired = true; 233 queue4Fired = true;
234 expect(queue1Fired, isTrue); 234 expect(queue1Fired, isTrue);
235 expect(queue2Fired, isTrue); 235 expect(queue2Fired, isTrue);
236 expect(queue3Fired, isTrue); 236 expect(queue3Fired, isTrue);
237 expect(queue5Fired, isFalse); 237 expect(queue5Fired, isFalse);
238 })); 238 }));
239 239
240 queue2.next.then(expectAsync((_) { 240 queue2.next.then(expectAsync1((_) {
241 queue2Fired = true; 241 queue2Fired = true;
242 expect(queue1Fired, isTrue); 242 expect(queue1Fired, isTrue);
243 expect(queue3Fired, isFalse); 243 expect(queue3Fired, isFalse);
244 expect(queue4Fired, isFalse); 244 expect(queue4Fired, isFalse);
245 expect(queue5Fired, isFalse); 245 expect(queue5Fired, isFalse);
246 })); 246 }));
247 247
248 queue3.next.then(expectAsync((_) { 248 queue3.next.then(expectAsync1((_) {
249 queue3Fired = true; 249 queue3Fired = true;
250 expect(queue1Fired, isTrue); 250 expect(queue1Fired, isTrue);
251 expect(queue2Fired, isTrue); 251 expect(queue2Fired, isTrue);
252 expect(queue4Fired, isFalse); 252 expect(queue4Fired, isFalse);
253 expect(queue5Fired, isFalse); 253 expect(queue5Fired, isFalse);
254 })); 254 }));
255 } 255 }
256 }); 256 });
257 257
258 test("pauses the source when all forks are paused and/or not listening", 258 test("pauses the source when all forks are paused and/or not listening",
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 expect(controller.hasListener, isTrue); 304 expect(controller.hasListener, isTrue);
305 305
306 expect(fork4.listen(null).cancel(), completion(equals(42))); 306 expect(fork4.listen(null).cancel(), completion(equals(42)));
307 await flushMicrotasks(); 307 await flushMicrotasks();
308 expect(controller.hasListener, isFalse); 308 expect(controller.hasListener, isFalse);
309 }); 309 });
310 }); 310 });
311 311
312 group("modification during dispatch:", () { 312 group("modification during dispatch:", () {
313 test("forking during onCancel", () { 313 test("forking during onCancel", () {
314 controller = new StreamController<int>(onCancel: expectAsync(() { 314 controller = new StreamController<int>(onCancel: expectAsync0(() {
315 expect(stream.fork().toList(), completion(isEmpty)); 315 expect(stream.fork().toList(), completion(isEmpty));
316 })); 316 }));
317 stream = new ForkableStream<int>(controller.stream); 317 stream = new ForkableStream<int>(controller.stream);
318 318
319 stream.listen(null).cancel(); 319 stream.listen(null).cancel();
320 }); 320 });
321 321
322 test("forking during onPause", () { 322 test("forking during onPause", () {
323 controller = new StreamController<int>(onPause: expectAsync(() { 323 controller = new StreamController<int>(onPause: expectAsync0(() {
324 stream.fork().listen(null); 324 stream.fork().listen(null);
325 })); 325 }));
326 stream = new ForkableStream<int>(controller.stream); 326 stream = new ForkableStream<int>(controller.stream);
327 327
328 stream.listen(null).pause(); 328 stream.listen(null).pause();
329 329
330 // The fork created in onPause should have resumed the stream. 330 // The fork created in onPause should have resumed the stream.
331 expect(controller.isPaused, isFalse); 331 expect(controller.isPaused, isFalse);
332 }); 332 });
333 333
334 test("forking during onData", () { 334 test("forking during onData", () {
335 var sub; 335 var sub;
336 sub = stream.listen(expectAsync((value1) { 336 sub = stream.listen(expectAsync1((value1) {
337 expect(value1, equals(1)); 337 expect(value1, equals(1));
338 stream.fork().listen(expectAsync((value2) { 338 stream.fork().listen(expectAsync1((value2) {
339 expect(value2, equals(2)); 339 expect(value2, equals(2));
340 })); 340 }));
341 sub.cancel(); 341 sub.cancel();
342 })); 342 }));
343 343
344 controller.add(1); 344 controller.add(1);
345 controller.add(2); 345 controller.add(2);
346 }); 346 });
347 347
348 test("canceling a fork during onData", () { 348 test("canceling a fork during onData", () {
349 var fork = stream.fork(); 349 var fork = stream.fork();
350 var forkSub = fork.listen(expectAsync((_) {}, count: 0)); 350 var forkSub = fork.listen(expectAsync1((_) {}, count: 0));
351 351
352 stream.listen(expectAsync((_) => forkSub.cancel())); 352 stream.listen(expectAsync1((_) => forkSub.cancel()));
353 controller.add(null); 353 controller.add(null);
354 }); 354 });
355 355
356 test("forking during onError", () { 356 test("forking during onError", () {
357 var sub; 357 var sub;
358 sub = stream.listen(null, onError: expectAsync((error1) { 358 sub = stream.listen(null, onError: expectAsync1((error1) {
359 expect(error1, equals("error 1")); 359 expect(error1, equals("error 1"));
360 stream.fork().listen(null, onError: expectAsync((error2) { 360 stream.fork().listen(null, onError: expectAsync1((error2) {
361 expect(error2, equals("error 2")); 361 expect(error2, equals("error 2"));
362 })); 362 }));
363 sub.cancel(); 363 sub.cancel();
364 })); 364 }));
365 365
366 controller.addError("error 1"); 366 controller.addError("error 1");
367 controller.addError("error 2"); 367 controller.addError("error 2");
368 }); 368 });
369 369
370 test("canceling a fork during onError", () { 370 test("canceling a fork during onError", () {
371 var fork = stream.fork(); 371 var fork = stream.fork();
372 var forkSub = fork.listen(expectAsync((_) {}, count: 0)); 372 var forkSub = fork.listen(expectAsync1((_) {}, count: 0));
373 373
374 stream.listen(null, onError: expectAsync((_) => forkSub.cancel())); 374 stream.listen(null, onError: expectAsync1((_) => forkSub.cancel()));
375 controller.addError("error"); 375 controller.addError("error");
376 }); 376 });
377 377
378 test("forking during onDone", () { 378 test("forking during onDone", () {
379 stream.listen(null, onDone: expectAsync(() { 379 stream.listen(null, onDone: expectAsync0(() {
380 expect(stream.fork().toList(), completion(isEmpty)); 380 expect(stream.fork().toList(), completion(isEmpty));
381 })); 381 }));
382 382
383 controller.close(); 383 controller.close();
384 }); 384 });
385 385
386 test("canceling a fork during onDone", () { 386 test("canceling a fork during onDone", () {
387 var fork = stream.fork(); 387 var fork = stream.fork();
388 var forkSub = fork.listen(null, onDone: expectAsync(() {}, count: 0)); 388 var forkSub = fork.listen(null, onDone: expectAsync0(() {}, count: 0));
389 389
390 stream.listen(null, onDone: expectAsync(() => forkSub.cancel())); 390 stream.listen(null, onDone: expectAsync0(() => forkSub.cancel()));
391 controller.close(); 391 controller.close();
392 }); 392 });
393 }); 393 });
394 394
395 group("throws an error when", () { 395 group("throws an error when", () {
396 test("a cancelled stream is forked", () { 396 test("a cancelled stream is forked", () {
397 stream.listen(null).cancel(); 397 stream.listen(null).cancel();
398 expect(stream.fork().toList(), completion(isEmpty)); 398 expect(stream.fork().toList(), completion(isEmpty));
399 }); 399 });
400 400
401 test("a cancelled stream is forked even when other forks are alive", () { 401 test("a cancelled stream is forked even when other forks are alive", () {
402 stream.fork().listen(null); 402 stream.fork().listen(null);
403 stream.listen(null).cancel(); 403 stream.listen(null).cancel();
404 404
405 expect(controller.hasListener, isTrue); 405 expect(controller.hasListener, isTrue);
406 expect(stream.fork().toList(), completion(isEmpty)); 406 expect(stream.fork().toList(), completion(isEmpty));
407 }); 407 });
408 408
409 test("a closed stream is forked", () async { 409 test("a closed stream is forked", () async {
410 controller.close(); 410 controller.close();
411 await stream.listen(null).asFuture(); 411 await stream.listen(null).asFuture();
412 expect(stream.fork().toList(), completion(isEmpty)); 412 expect(stream.fork().toList(), completion(isEmpty));
413 }); 413 });
414 }); 414 });
415 } 415 }
416 416
417 Future flushMicrotasks() => new Future.delayed(Duration.ZERO); 417 Future flushMicrotasks() => new Future.delayed(Duration.ZERO);
OLDNEW
« no previous file with comments | « test/runner/signal_test.dart ('k') | test/util/one_off_handler_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698