| Index: tests/corelib/src/FutureTest.dart
|
| diff --git a/tests/corelib/src/FutureTest.dart b/tests/corelib/src/FutureTest.dart
|
| deleted file mode 100644
|
| index 967abbbf6618f814ab744b748b976a85a8b8c205..0000000000000000000000000000000000000000
|
| --- a/tests/corelib/src/FutureTest.dart
|
| +++ /dev/null
|
| @@ -1,299 +0,0 @@
|
| -// 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.
|
| -
|
| -// Tests for Future.immediate
|
| -
|
| -testImmediate() {
|
| - final future = new Future<String>.immediate("42");
|
| - Expect.isTrue(future.isComplete);
|
| - Expect.isTrue(future.hasValue);
|
| - var value = null;
|
| - future.then((x) => value = x);
|
| - Expect.equals("42", value);
|
| -}
|
| -
|
| -// Tests for getters (value, exception, isComplete, isValue)
|
| -
|
| -testNeverComplete() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - Expect.isFalse(future.isComplete);
|
| - Expect.isFalse(future.hasValue);
|
| - Expect.throws(() { future.value; });
|
| - Expect.throws(() { future.exception; });
|
| -}
|
| -
|
| -testComplete() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| -
|
| - completer.complete(3);
|
| -
|
| - Expect.isTrue(future.isComplete);
|
| - Expect.isTrue(future.hasValue);
|
| - Expect.equals(3, future.value);
|
| - Expect.isNull(future.exception);
|
| -}
|
| -
|
| -// Tests for [then]
|
| -
|
| -testCompleteWithHandlerBeforeComplete() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| -
|
| - int before;
|
| - future.then((int v) { before = v; });
|
| - Expect.throws(() { future.value; });
|
| - Expect.isNull(before);
|
| - completer.complete(3);
|
| -
|
| - Expect.equals(3, future.value);
|
| - Expect.equals(3, before);
|
| -}
|
| -
|
| -testCompleteWithHandlerAfterComplete() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| -
|
| - int after;
|
| - completer.complete(3);
|
| - Expect.equals(3, future.value);
|
| - Expect.isNull(after);
|
| -
|
| - future.then((int v) { after = v; });
|
| -
|
| - Expect.equals(3, future.value);
|
| - Expect.equals(3, after);
|
| -}
|
| -
|
| -testCompleteManyHandlers() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - int after1;
|
| - int after2;
|
| - int after3;
|
| -
|
| - future.then((int v) { after1 = v; });
|
| - completer.complete(3);
|
| - future.then((int v) { after2 = v; });
|
| - future.then((int v) { after3 = v; });
|
| -
|
| - Expect.equals(3, future.value);
|
| - Expect.equals(3, after1);
|
| - Expect.equals(3, after2);
|
| - Expect.equals(3, after3);
|
| -}
|
| -
|
| -// Tests for [handleException]
|
| -
|
| -testException() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| - future.then((_) {}); // exception is thrown if we plan to use the value
|
| - Expect.throws(
|
| - () { completer.completeException(ex); },
|
| - check: (e) => e == ex);
|
| -}
|
| -
|
| -testExceptionNoListeners() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| - completer.completeException(ex); // future.then is not called, so no exception
|
| -}
|
| -
|
| -testExceptionHandler() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - var ex2;
|
| - future.handleException((e) { ex2 = e; return true; });
|
| - completer.completeException(ex);
|
| - Expect.equals(ex, ex2);
|
| -}
|
| -
|
| -testExceptionHandlerReturnsTrue() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - bool reached = false;
|
| - future.handleException((e) { return true; });
|
| - future.handleException((e) { reached = true; return false; }); // overshadowed
|
| - completer.completeException(ex);
|
| - Expect.isFalse(reached);
|
| -}
|
| -
|
| -testExceptionHandlerReturnsTrue2() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - bool reached = false;
|
| - future.handleException((e) { return false; });
|
| - future.handleException((e) { reached = true; return true; });
|
| - completer.completeException(ex);
|
| - Expect.isTrue(reached);
|
| -}
|
| -
|
| -testExceptionHandlerReturnsFalse() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - bool reached = false;
|
| - future.then((_) {}); // ensure exception is thrown...
|
| - future.handleException((e) { return false; });
|
| - future.handleException((e) { reached = true; return false; }); // overshadowed
|
| - Expect.throws(
|
| - () { completer.completeException(ex); },
|
| - check: (e) => e == ex);
|
| - Expect.isTrue(reached);
|
| -}
|
| -
|
| -testExceptionHandlerReturnsFalse2() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - bool reached = false;
|
| - future.handleException((e) { return false; });
|
| - future.handleException((e) { reached = true; return false; }); // overshadowed
|
| - completer.completeException(ex); // future.then is not called, so no exception
|
| - Expect.isTrue(reached);
|
| -}
|
| -
|
| -testExceptionHandlerAfterCompleteThenNotCalled() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - var ex2;
|
| - completer.completeException(ex);
|
| - future.handleException((e) { ex2 = e; return true; });
|
| - future.then((e) { });
|
| - Expect.equals(ex, ex2);
|
| -}
|
| -
|
| -testExceptionHandlerAfterCompleteReturnsFalseThenThrows() {
|
| - final completer = new Completer<int>();
|
| - final future = completer.future;
|
| - final ex = new Exception();
|
| -
|
| - var ex2;
|
| - completer.completeException(ex);
|
| - future.handleException((e) { ex2 = e; return false; });
|
| - Expect.throws(() { future.then((e) { }); });
|
| - Expect.equals(ex, ex2);
|
| -}
|
| -
|
| -// Tests for Future.transform
|
| -
|
| -testTransformSuccess() {
|
| - final completer = new Completer<String>();
|
| - final transformedFuture = completer.future.transform((x) => "** $x **");
|
| - Expect.isFalse(transformedFuture.isComplete);
|
| - completer.complete("42");
|
| - Expect.equals("** 42 **", transformedFuture.value);
|
| -}
|
| -
|
| -testTransformFutureFails() {
|
| - final completer = new Completer<String>();
|
| - final error = new Exception("Oh no!");
|
| - final transformedFuture = completer.future.transform((x) {
|
| - Expect.fail("transformer shouldn't be called");
|
| - });
|
| - Expect.isFalse(transformedFuture.isComplete);
|
| - completer.completeException(error);
|
| - Expect.equals(error, transformedFuture.exception);
|
| -}
|
| -
|
| -testTransformTransformerFails() {
|
| - final completer = new Completer<String>();
|
| - final error = new Exception("Oh no!");
|
| - final transformedFuture = completer.future.transform((x) { throw error; });
|
| - Expect.isFalse(transformedFuture.isComplete);
|
| - completer.complete("42");
|
| - Expect.equals(error, transformedFuture.exception);
|
| -}
|
| -
|
| -// Tests for Future.chain
|
| -
|
| -testChainSuccess() {
|
| - final completerA = new Completer<String>();
|
| - final completerB = new Completer<String>();
|
| - final chainedFuture = completerA.future.chain((x) {
|
| - Expect.equals("42", x);
|
| - return completerB.future;
|
| - });
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerA.complete("42");
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerB.complete("43");
|
| - Expect.equals("43", chainedFuture.value);
|
| -}
|
| -
|
| -testChainFirstFutureFails() {
|
| - final completerA = new Completer<String>();
|
| - final error = new Exception("Oh no!");
|
| - final chainedFuture = completerA.future.chain((x) {
|
| - Expect.fail("transformer shouldn't be called");
|
| - });
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerA.completeException(error);
|
| - Expect.equals(error, chainedFuture.exception);
|
| -}
|
| -
|
| -testChainTransformerFails() {
|
| - final completerA = new Completer<String>();
|
| - final error = new Exception("Oh no!");
|
| - final chainedFuture = completerA.future.chain((x) {
|
| - Expect.equals("42", x);
|
| - throw error;
|
| - });
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerA.complete("42");
|
| - Expect.equals(error, chainedFuture.exception);
|
| -}
|
| -
|
| -testChainSecondFutureFails() {
|
| - final completerA = new Completer<String>();
|
| - final completerB = new Completer<String>();
|
| - final error = new Exception("Oh no!");
|
| - final chainedFuture = completerA.future.chain((x) {
|
| - Expect.equals("42", x);
|
| - return completerB.future;
|
| - });
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerA.complete("42");
|
| - Expect.isFalse(chainedFuture.isComplete);
|
| - completerB.completeException(error);
|
| - Expect.equals(error, chainedFuture.exception);
|
| -}
|
| -
|
| -main() {
|
| - testImmediate();
|
| - testNeverComplete();
|
| - testComplete();
|
| - testCompleteWithHandlerBeforeComplete();
|
| - testCompleteWithHandlerAfterComplete();
|
| - testCompleteManyHandlers();
|
| - testException();
|
| - testExceptionHandler();
|
| - testExceptionHandlerReturnsTrue();
|
| - testExceptionHandlerReturnsTrue2();
|
| - testExceptionHandlerReturnsFalse();
|
| - testExceptionHandlerReturnsFalse2();
|
| - testExceptionHandlerAfterCompleteThenNotCalled();
|
| - testExceptionHandlerAfterCompleteReturnsFalseThenThrows();
|
| - testTransformSuccess();
|
| - testTransformFutureFails();
|
| - testTransformTransformerFails();
|
| - testChainSuccess();
|
| - testChainFirstFutureFails();
|
| - testChainTransformerFails();
|
| - testChainSecondFutureFails();
|
| -}
|
|
|