// 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:async_helper/async_minitest.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. We use identical(1, 1.0) as an easy way to know if the test is // compiled by dart2js. int get safetyMargin => identical(1, 1.0) ? 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)); })); }); }