// Copyright (c) 2012, 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. library future_test; import "package:expect/expect.dart"; import 'dart:async'; main() { compare(func) { // Compare the results of the following two futures. Future f1 = new Future(func); Future f2 = new Future.value().then((_) => func()); f2.catchError((_) {}); // I'll get the error later. f1.then( (v1) { f2.then((v2) { Expect.equals(v1, v2); }); }, onError: (e1) { f2.then( (_) { Expect.fail("Expected error"); }, onError: (e2) { Expect.equals(e1, e2); }, ); }, ); } Future val = new Future.value(42); Future err1 = new Future.error("Error")..catchError((_) {}); compare(() => 42); compare(() => val); compare(() { throw "Flif"; }); compare(() => err1); bool hasExecuted = false; compare(() { hasExecuted = true; return 499; }); Expect.isFalse(hasExecuted); }