Files
sdk/tests/lib/async/stream_state_nonzero_timer_test.dart
T
Jacob Richman 2dcd56ef43 Format all tests.
There are far too many files here to review everyone carefully.
Spot checking most of the diffs look good as test code is generally written
with less care than application code so lots of ugly formatting get through.
If people notice files where the automated formatting bothers them feel free
to comment indicating file names and I'll move spaces within comments to make
the formatting cleaner and use comments to force block formatting as I have
done for other case where formatting looked bad.

BUG=
R=efortuna@google.com

Review-Url: https://codereview.chromium.org/2771453003 .
2017-04-17 14:53:02 -07:00

126 lines
3.0 KiB
Dart

// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// Test the event/callback protocol of the stream implementations.
// Uses a non-zero timer so it fails on d8.
library stream_state_nonzero_timer_test;
import "dart:async";
import "package:unittest/unittest.dart";
import "stream_state_helper.dart";
const ms5 = const Duration(milliseconds: 5);
// Testing pause/resume, some with non-zero duration. This only makes sense for
// non-broadcast streams, since broadcast stream subscriptions handle their
// own pauses.
main() {
var p = "StreamController";
test("$p-sub-data/pause/resume/pause/resume-done", () {
var t = new StreamProtocolTest();
t
..expectListen()
..expectData(42, () {
t.pause();
})
..expectPause(() {
t.resume();
})
..expectResume(() {
t.pause();
})
..expectPause(() {
t.resume();
})
..expectResume(() {
t.close();
})
..expectCancel()
..expectDone(t.terminate);
t
..listen()
..add(42);
});
test("$p-sub-data/pause-done", () {
var t = new StreamProtocolTest();
t
..expectListen()
..expectData(42, () {
t.pause(new Future.delayed(ms5, () => null));
})
..expectPause()
..expectCancel()
..expectDone(t.terminate);
// We are calling "close" while the controller is actually paused,
// and it will stay paused until the pending events are sent.
t
..listen()
..add(42)
..close();
});
test("$p-sub-data/pause-resume/done", () {
var t = new StreamProtocolTest();
t
..expectListen()
..expectData(42, () {
t.pause(new Future.delayed(ms5, () => null));
})
..expectPause()
..expectResume(t.close)
..expectCancel()
..expectDone(t.terminate);
t
..listen()
..add(42);
});
test("$p-sub-data/data+pause-data-resume-done", () {
var t = new StreamProtocolTest();
t
..expectListen()
..expectData(42, () {
t.add(43);
t.pause(new Future.delayed(ms5, () => null));
// Should now be paused until the future finishes.
// After that, the controller stays paused until the pending queue
// is empty.
})
..expectPause()
..expectData(43)
..expectResume(t.close)
..expectCancel()
..expectDone(t.terminate);
t
..listen()
..add(42);
});
test("$p-pause-during-callback", () {
var t = new StreamProtocolTest();
t
..expectListen()
..expectData(42, () {
t.pause();
})
..expectPause(() {
t.resume();
})
..expectResume(() {
t.pause();
t.resume();
t.close();
})
..expectCancel()
..expectDone(t.terminate);
t
..listen()
..add(42);
});
}