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

Side by Side Diff: tests/lib/async/stream_controller_async_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, 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 | Annotate | Revision Log
« no previous file with comments | « sdk/lib/async/stream_pipe.dart ('k') | tests/lib/async/stream_state_nonzero_timer_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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 basic StreamController and StreamController.singleSubscription. 5 // Test the basic StreamController and StreamController.singleSubscription.
6 library stream_controller_async_test; 6 library stream_controller_async_test;
7 7
8 import 'dart:async'; 8 import 'dart:async';
9 import 'dart:isolate'; 9 import 'dart:isolate';
10 import "package:expect/expect.dart"; 10 import "package:expect/expect.dart";
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 StreamProtocolTest test = new StreamProtocolTest(); 273 StreamProtocolTest test = new StreamProtocolTest();
274 Completer completer = new Completer(); 274 Completer completer = new Completer();
275 test..expectListen() 275 test..expectListen()
276 ..expectData(42, () { test.pause(completer.future); }) 276 ..expectData(42, () { test.pause(completer.future); })
277 ..expectPause(() { 277 ..expectPause(() {
278 completer.complete(null); 278 completer.complete(null);
279 }) 279 })
280 ..expectData(43) 280 ..expectData(43)
281 ..expectData(44) 281 ..expectData(44)
282 ..expectDone() 282 ..expectCancel()
283 ..expectCancel(test.terminate); 283 ..expectDone(test.terminate);
284 test.listen(); 284 test.listen();
285 test.add(42); 285 test.add(42);
286 test.add(43); 286 test.add(43);
287 test.add(44); 287 test.add(44);
288 test.close(); 288 test.close();
289 }); 289 });
290 290
291 test("pause twice event-unpause", () { 291 test("pause twice event-unpause", () {
292 StreamProtocolTest test = new StreamProtocolTest(); 292 StreamProtocolTest test = new StreamProtocolTest();
293 Completer completer = new Completer(); 293 Completer completer = new Completer();
294 Completer completer2 = new Completer(); 294 Completer completer2 = new Completer();
295 test..expectListen() 295 test..expectListen()
296 ..expectData(42, () { 296 ..expectData(42, () {
297 test.pause(completer.future); 297 test.pause(completer.future);
298 test.pause(completer2.future); 298 test.pause(completer2.future);
299 }) 299 })
300 ..expectPause(() { 300 ..expectPause(() {
301 completer.future.then(completer2.complete); 301 completer.future.then(completer2.complete);
302 completer.complete(null); 302 completer.complete(null);
303 }) 303 })
304 ..expectData(43) 304 ..expectData(43)
305 ..expectData(44) 305 ..expectData(44)
306 ..expectDone() 306 ..expectCancel()
307 ..expectCancel(test.terminate); 307 ..expectDone(test.terminate);
308 test..listen() 308 test..listen()
309 ..add(42) 309 ..add(42)
310 ..add(43) 310 ..add(43)
311 ..add(44) 311 ..add(44)
312 ..close(); 312 ..close();
313 }); 313 });
314 314
315 test("pause twice direct-unpause", () { 315 test("pause twice direct-unpause", () {
316 StreamProtocolTest test = new StreamProtocolTest(); 316 StreamProtocolTest test = new StreamProtocolTest();
317 test..expectListen() 317 test..expectListen()
318 ..expectData(42, () { 318 ..expectData(42, () {
319 test.pause(); 319 test.pause();
320 test.pause(); 320 test.pause();
321 }) 321 })
322 ..expectPause(() { 322 ..expectPause(() {
323 test.resume(); 323 test.resume();
324 test.resume(); 324 test.resume();
325 }) 325 })
326 ..expectData(43) 326 ..expectData(43)
327 ..expectData(44) 327 ..expectData(44)
328 ..expectDone() 328 ..expectCancel()
329 ..expectCancel(test.terminate); 329 ..expectDone(test.terminate);
330 test..listen() 330 test..listen()
331 ..add(42) 331 ..add(42)
332 ..add(43) 332 ..add(43)
333 ..add(44) 333 ..add(44)
334 ..close(); 334 ..close();
335 }); 335 });
336 336
337 test("pause twice direct-event-unpause", () { 337 test("pause twice direct-event-unpause", () {
338 StreamProtocolTest test = new StreamProtocolTest(); 338 StreamProtocolTest test = new StreamProtocolTest();
339 Completer completer = new Completer(); 339 Completer completer = new Completer();
340 test..expectListen() 340 test..expectListen()
341 ..expectData(42, () { 341 ..expectData(42, () {
342 test.pause(); 342 test.pause();
343 test.pause(completer.future); 343 test.pause(completer.future);
344 test.add(43); 344 test.add(43);
345 test.add(44); 345 test.add(44);
346 test.close(); 346 test.close();
347 }) 347 })
348 ..expectPause(() { 348 ..expectPause(() {
349 completer.future.then((v) => test.resume()); 349 completer.future.then((v) => test.resume());
350 completer.complete(null); 350 completer.complete(null);
351 }) 351 })
352 ..expectData(43) 352 ..expectData(43)
353 ..expectData(44) 353 ..expectData(44)
354 ..expectDone() 354 ..expectCancel()
355 ..expectCancel(test.terminate); 355 ..expectDone(test.terminate);
356 test..listen() 356 test..listen()
357 ..add(42); 357 ..add(42);
358 }); 358 });
359 } 359 }
360 360
361 class TestError { const TestError(); } 361 class TestError { const TestError(); }
362 362
363 testRethrow() { 363 testRethrow() {
364 TestError error = const TestError(); 364 TestError error = const TestError();
365 365
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 testFuture("reduce", (s, act) => s.reduce((a,b) => act(b))); 410 testFuture("reduce", (s, act) => s.reduce((a,b) => act(b)));
411 testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b))); 411 testFuture("fold", (s, act) => s.fold(0, (a,b) => act(b)));
412 testFuture("drain", (s, act) => s.drain().then(act)); 412 testFuture("drain", (s, act) => s.drain().then(act));
413 } 413 }
414 414
415 void testBroadcastController() { 415 void testBroadcastController() {
416 test("broadcast-controller-basic", () { 416 test("broadcast-controller-basic", () {
417 StreamProtocolTest test = new StreamProtocolTest.broadcast(); 417 StreamProtocolTest test = new StreamProtocolTest.broadcast();
418 test..expectListen() 418 test..expectListen()
419 ..expectData(42) 419 ..expectData(42)
420 ..expectDone() 420 ..expectCancel()
421 ..expectCancel(test.terminate); 421 ..expectDone(test.terminate);
422 test..listen() 422 test..listen()
423 ..add(42) 423 ..add(42)
424 ..close(); 424 ..close();
425 }); 425 });
426 426
427 test("broadcast-controller-listen-twice", () { 427 test("broadcast-controller-listen-twice", () {
428 StreamProtocolTest test = new StreamProtocolTest.broadcast(); 428 StreamProtocolTest test = new StreamProtocolTest.broadcast();
429 test..expectListen() 429 test..expectListen()
430 ..expectData(42, () { 430 ..expectData(42, () {
431 test.listen(); 431 test.listen();
432 test.add(37); 432 test.add(37);
433 test.close(); 433 test.close();
434 }) 434 })
435 // Order is not guaranteed between subscriptions if not sync. 435 // Order is not guaranteed between subscriptions if not sync.
436 ..expectData(37) 436 ..expectData(37)
437 ..expectData(37) 437 ..expectData(37)
438 ..expectDone() 438 ..expectDone()
439 ..expectDone() 439 ..expectCancel()
440 ..expectCancel(test.terminate); 440 ..expectDone(test.terminate);
441 test.listen(); 441 test.listen();
442 test.add(42); 442 test.add(42);
443 }); 443 });
444 444
445 test("broadcast-controller-listen-twice-non-overlap", () { 445 test("broadcast-controller-listen-twice-non-overlap", () {
446 StreamProtocolTest test = new StreamProtocolTest.broadcast(); 446 StreamProtocolTest test = new StreamProtocolTest.broadcast();
447 test 447 test
448 ..expectListen(() { 448 ..expectListen(() {
449 test.add(42); 449 test.add(42);
450 }) 450 })
451 ..expectData(42, () { 451 ..expectData(42, () {
452 test.cancel(); 452 test.cancel();
453 }) 453 })
454 ..expectCancel(() { 454 ..expectCancel(() {
455 test.listen(); 455 test.listen();
456 })..expectListen(() { 456 })..expectListen(() {
457 test.add(37); 457 test.add(37);
458 }) 458 })
459 ..expectData(37, () { 459 ..expectData(37, () {
460 test.close(); 460 test.close();
461 }) 461 })
462 ..expectDone() 462 ..expectCancel()
463 ..expectCancel(test.terminate); 463 ..expectDone(test.terminate);
464 test.listen(); 464 test.listen();
465 }); 465 });
466 466
467 test("broadcast-controller-individual-pause", () { 467 test("broadcast-controller-individual-pause", () {
468 StreamProtocolTest test = new StreamProtocolTest.broadcast(); 468 StreamProtocolTest test = new StreamProtocolTest.broadcast();
469 var sub1; 469 var sub1;
470 test..expectListen() 470 test..expectListen()
471 ..expectData(42) 471 ..expectData(42)
472 ..expectData(42, () { sub1.pause(); }) 472 ..expectData(42, () { sub1.pause(); })
473 ..expectData(43, () { 473 ..expectData(43, () {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 ..expectPause(() { 553 ..expectPause(() {
554 sub = test.listen(); 554 sub = test.listen();
555 }) 555 })
556 ..expectBroadcastListen((originalSub) { 556 ..expectBroadcastListen((originalSub) {
557 originalSub.resume(); 557 originalSub.resume();
558 }) 558 })
559 ..expectData(43) 559 ..expectData(43)
560 ..expectResume(() { 560 ..expectResume(() {
561 test.close(); 561 test.close();
562 }) 562 })
563 ..expectCancel()
563 ..expectDone() 564 ..expectDone()
564 ..expectBroadcastCancel() 565 ..expectBroadcastCancel((_) => test.terminate());
565 ..expectCancel(test.terminate);
566 sub = test.listen(); 566 sub = test.listen();
567 }); 567 });
568 } 568 }
569 569
570 void testSink({bool sync, bool broadcast, bool asBroadcast}) { 570 void testSink({bool sync, bool broadcast, bool asBroadcast}) {
571 String type = "${sync?"S":"A"}${broadcast?"B":"S"}${asBroadcast?"aB":""}"; 571 String type = "${sync?"S":"A"}${broadcast?"B":"S"}${asBroadcast?"aB":""}";
572 test("$type-controller-sink", () { 572 test("$type-controller-sink", () {
573 var done = expectAsync0((){}); 573 var done = expectAsync0((){});
574 var c = broadcast ? new StreamController.broadcast(sync: sync) 574 var c = broadcast ? new StreamController.broadcast(sync: sync)
575 : new StreamController(sync: sync); 575 : new StreamController(sync: sync);
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
685 testRethrow(); 685 testRethrow();
686 testBroadcastController(); 686 testBroadcastController();
687 testAsBroadcast(); 687 testAsBroadcast();
688 testSink(sync: true, broadcast: false, asBroadcast: false); 688 testSink(sync: true, broadcast: false, asBroadcast: false);
689 testSink(sync: true, broadcast: false, asBroadcast: true); 689 testSink(sync: true, broadcast: false, asBroadcast: true);
690 testSink(sync: true, broadcast: true, asBroadcast: false); 690 testSink(sync: true, broadcast: true, asBroadcast: false);
691 testSink(sync: false, broadcast: false, asBroadcast: false); 691 testSink(sync: false, broadcast: false, asBroadcast: false);
692 testSink(sync: false, broadcast: false, asBroadcast: true); 692 testSink(sync: false, broadcast: false, asBroadcast: true);
693 testSink(sync: false, broadcast: true, asBroadcast: false); 693 testSink(sync: false, broadcast: true, asBroadcast: false);
694 } 694 }
OLDNEW
« no previous file with comments | « sdk/lib/async/stream_pipe.dart ('k') | tests/lib/async/stream_state_nonzero_timer_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698