| // Copyright (c) 2016, 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. |
| |
| // @dart = 2.9 |
| |
| /// @assertion Future<T> timeout(Duration timeLimit, {dynamic onTimeout()}) |
| /// Time-out the future computation after timeLimit has passed. |
| /// |
| /// Returns a new future that completes with the same value as this future, if |
| /// this future completes in time. |
| /// |
| /// @description Checks that returned future is completed with with the same |
| /// value as this future, if this future completes in time. |
| /// @author ngl@unipro.ru |
| |
| import "dart:async"; |
| import "../../../Utils/expect.dart"; |
| |
| check(var value) { |
| asyncStart(); |
| Future future = new Future.value(value); |
| future.timeout(new Duration(milliseconds:1)).then( |
| (v) { |
| Expect.identical(value, v); |
| asyncEnd(); |
| } |
| ); |
| } |
| |
| main() { |
| check(0); |
| check(1); |
| check(-5); |
| check(''); |
| check('string'); |
| check(null); |
| check(true); |
| check(const []); |
| check(const {'k1': 1, 'k2': 2}); |
| } |