| // 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 merging streams. |
| library dart.test.stream_from_iterable; |
| |
| import 'dart:async'; |
| |
| import 'package:expect/legacy/async_minitest.dart'; // ignore: deprecated_member_use |
| import 'package:expect/config.dart'; |
| |
| // The Stopwatch is more precise than the Timer. |
| // Some browsers (Firefox and IE so far) can trigger too early. So we add more |
| // margin. |
| int get safetyMargin => isWebConfiguration ? 5 : 0; |
| |
| main() { |
| test("stream-periodic3", () { |
| Stopwatch watch = new Stopwatch()..start(); |
| Stream stream = new Stream.periodic( |
| const Duration(milliseconds: 1), |
| (x) => x, |
| ); |
| stream |
| .take(10) |
| .listen( |
| (_) {}, |
| onDone: expectAsync(() { |
| int millis = watch.elapsedMilliseconds + safetyMargin; |
| expect(millis, greaterThanOrEqualTo(10)); |
| }), |
| ); |
| }); |
| } |