Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Unified Diff: tests/corelib/future_test.dart

Issue 11783009: Big merge from experimental to bleeding edge. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/corelib/for_in_test.dart ('k') | tests/corelib/futures_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib/future_test.dart
diff --git a/tests/corelib/future_test.dart b/tests/corelib/future_test.dart
index f4e512c45d81339a310a6d11cfbaee48fd26a739..f1ae866c77efd12a9def8bd6d0add688996c2209 100644
--- a/tests/corelib/future_test.dart
+++ b/tests/corelib/future_test.dart
@@ -2,15 +2,16 @@
// 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.
+// TODO(ajohnsen): This test needs to be updated.
+// Can Dart2JS on V8 somehow run it?
+
// Tests for Future.immediate
+import 'dart:async';
+import 'dart:isolate';
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);
+ future.then((x) => Expect.equals("42", x));
}
// Tests for getters (value, exception, isComplete, isValue)
@@ -18,10 +19,8 @@ testImmediate() {
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; });
+ future.then((v) => Except.fails("Value not expected"));
+ future.catchError((e) => Except.fails("Value not expected"));
}
testComplete() {
@@ -30,123 +29,7 @@ testComplete() {
completer.complete(3);
- Expect.isTrue(future.isComplete);
- Expect.isTrue(future.hasValue);
- Expect.equals(3, future.value);
- Expect.isNull(future.exception);
-}
-
-// Tests for [onComplete]
-
-testCompleteWithCompleteHandlerBeforeComplete() {
- final completer = new Completer<int>();
- final future = completer.future;
-
- int before;
- future.onComplete((f) {
- Expect.equals(future, f);
- Expect.isTrue(f.isComplete);
- Expect.isTrue(f.hasValue);
- before = f.value;
- });
- Expect.throws(() => future.value);
- Expect.isNull(before);
- completer.complete(3);
-
- Expect.equals(3, future.value);
- Expect.equals(3, before);
-}
-
-testExceptionWithCompleteHandlerBeforeComplete() {
- final completer = new Completer<int>();
- final future = completer.future;
- final exception = new Exception();
-
- var err;
- future.onComplete((f) {
- Expect.equals(future, f);
- Expect.isTrue(f.isComplete);
- Expect.isFalse(f.hasValue);
- err = f.exception;
- });
- Expect.throws(() => future.exception);
- Expect.isNull(err);
- completer.completeException(exception);
- Expect.equals(exception, future.exception);
- Expect.equals(exception, err);
- Expect.throws(() => future.value, (e) => e.source == exception);
-}
-
-testCompleteWithCompleteHandlerAfterComplete() {
- final completer = new Completer<int>();
- final future = completer.future;
-
- int after;
- completer.complete(3);
- future.onComplete((f) {
- Expect.equals(future, f);
- Expect.isTrue(f.isComplete);
- Expect.isTrue(f.hasValue);
- after = f.value;
- });
- Expect.equals(3, future.value);
- Expect.equals(3, after);
-}
-
-testExceptionWithCompleteHandlerAfterComplete() {
- final completer = new Completer<int>();
- final future = completer.future;
- final exception = new Exception();
-
- var err;
- completer.completeException(exception);
- future.onComplete((f) {
- Expect.equals(future, f);
- Expect.isTrue(f.isComplete);
- Expect.isFalse(f.hasValue);
- err = f.exception;
- });
- Expect.equals(exception, future.exception);
- Expect.equals(exception, err);
- Expect.throws(() => future.value, (e) => e.source == exception);
-}
-
-testCompleteWithManyCompleteHandlers() {
- final completer = new Completer<int>();
- final future = completer.future;
- int before;
- int after1;
- int after2;
-
- future.onComplete((f) { before = f.value; });
- completer.complete(3);
- future.onComplete((f) { after1 = f.value; });
- future.onComplete((f) { after2 = f.value; });
-
- Expect.equals(3, future.value);
- Expect.equals(3, before);
- Expect.equals(3, after1);
- Expect.equals(3, after2);
-}
-
-testExceptionWithManyCompleteHandlers() {
- final completer = new Completer<int>();
- final future = completer.future;
- final exception = new Exception();
- var before;
- var after1;
- var after2;
-
- future.onComplete((f) { before = f.exception; });
- completer.completeException(exception);
- future.onComplete((f) { after1 = f.exception; });
- future.onComplete((f) { after2 = f.exception; });
-
- Expect.equals(exception, future.exception);
- Expect.equals(exception, before);
- Expect.equals(exception, after1);
- Expect.equals(exception, after2);
- Expect.throws(() => future.value, (e) => e.source == exception);
+ future.then((v) => Expect.equals(3, v));
}
// Tests for [then]
@@ -157,11 +40,9 @@ testCompleteWithSuccessHandlerBeforeComplete() {
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);
}
@@ -171,12 +52,10 @@ testCompleteWithSuccessHandlerAfterComplete() {
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);
}
@@ -192,7 +71,6 @@ testCompleteManySuccessHandlers() {
future.then((int v) { after1 = v; });
future.then((int v) { after2 = v; });
- Expect.equals(3, future.value);
Expect.equals(3, before);
Expect.equals(3, after1);
Expect.equals(3, after2);
@@ -204,10 +82,10 @@ 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); },
- (e) => e.source == ex);
+// future.catchError((e) => print("got error"));//Expect.equals(e, ex));
+ future.then((v) {print(v);})
+ .catchError((e) => Expect.equals(e.error, ex));
+ completer.completeError(ex);
}
testExceptionNoSuccessListeners() {
@@ -223,8 +101,8 @@ testExceptionHandler() {
final ex = new Exception();
var ex2;
- future.handleException((e) { ex2 = e; return true; });
- completer.completeException(ex);
+ future.catchError((e) { ex2 = e.error; });
+ completer.completeError(ex);
Expect.equals(ex, ex2);
}
@@ -234,9 +112,10 @@ testExceptionHandlerReturnsTrue() {
final ex = new Exception();
bool reached = false;
- future.handleException((e) { return true; });
- future.handleException((e) { reached = true; return false; }); // overshadowed
- completer.completeException(ex);
+ future.catchError((e) { });
+ future.catchError((e) { reached = true; }, test: (e) => false)
+ .catchError((e) {});
+ completer.completeError(ex);
Expect.isFalse(reached);
}
@@ -246,9 +125,9 @@ testExceptionHandlerReturnsTrue2() {
final ex = new Exception();
bool reached = false;
- future.handleException((e) { return false; });
- future.handleException((e) { reached = true; return true; });
- completer.completeException(ex);
+ future.catchError((e) { }, test: (e) => false)
+ .catchError((e) { reached = true; });
+ completer.completeError(ex);
Expect.isTrue(reached);
}
@@ -258,13 +137,15 @@ testExceptionHandlerReturnsFalse() {
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); },
- (e) => e.source == ex);
- Expect.isTrue(reached);
+
+ future.catchError((e) { });
+
+ future.catchError((e) { reached = true; }, test: (e) => false)
+ .catchError((e) { });
+
+ completer.completeError(ex);
+
+ Expect.isFalse(reached);
}
testExceptionHandlerReturnsFalse2() {
@@ -331,7 +212,7 @@ testCallStackReturnsCallstackPassedToCompleteException() {
testCallStackIsCapturedIfTransformCallbackThrows() {
final completer = new Completer();
- final transformed = completer.future.transform((_) {
+ final transformed = completer.future.then((_) {
throw 'whoops!';
});
@@ -428,7 +309,7 @@ testExceptionWithCompletionAndSuccessAndExceptionHandlers() {
testTransformSuccess() {
final completer = new Completer<String>();
- final transformedFuture = completer.future.transform((x) => "** $x **");
+ final transformedFuture = completer.future.then((x) => "** $x **");
Expect.isFalse(transformedFuture.isComplete);
completer.complete("42");
Expect.equals("** 42 **", transformedFuture.value);
@@ -437,7 +318,7 @@ testTransformSuccess() {
testTransformFutureFails() {
final completer = new Completer<String>();
final error = new Exception("Oh no!");
- final transformedFuture = completer.future.transform((x) {
+ final transformedFuture = completer.future.then((x) {
Expect.fail("transformer shouldn't be called");
});
Expect.isFalse(transformedFuture.isComplete);
@@ -448,7 +329,7 @@ testTransformFutureFails() {
testTransformTransformerFails() {
final completer = new Completer<String>();
final error = new Exception("Oh no!");
- final transformedFuture = completer.future.transform((x) { throw error; });
+ final transformedFuture = completer.future.then((x) { throw error; });
Expect.isFalse(transformedFuture.isComplete);
transformedFuture.then((v) => null);
Expect.throws(() => completer.complete("42"), (e) => e.source == error);
@@ -584,8 +465,8 @@ testExceptionTravelsAlongBothBranches() {
var results = <int>[];
var completer = new Completer();
- var branch1 = completer.future.transform((_) => null);
- var branch2 = completer.future.transform((_) => null);
+ var branch1 = completer.future.then((_) => null);
+ var branch2 = completer.future.then((_) => null);
branch1.handleException((e) {
results.add(1);
@@ -607,8 +488,8 @@ testExceptionTravelsAlongBothBranchesAfterComplete() {
var completer = new Completer();
completer.completeException("error");
- var branch1 = completer.future.transform((_) => null);
- var branch2 = completer.future.transform((_) => null);
+ var branch1 = completer.future.then((_) => null);
+ var branch2 = completer.future.then((_) => null);
branch1.handleException((e) {
results.add(1);
@@ -627,7 +508,7 @@ testExceptionIsHandledInBaseAndBranch() {
var results = <String>[];
var completer = new Completer();
- var branch = completer.future.transform((_) => null);
+ var branch = completer.future.then((_) => null);
completer.future.handleException((e) {
results.add("base");
@@ -649,7 +530,7 @@ testExceptionIsHandledInBaseAndBranchAfterComplete() {
var completer = new Completer();
completer.completeException("error");
- var branch = completer.future.transform((_) => null);
+ var branch = completer.future.then((_) => null);
completer.future.handleException((e) {
results.add("base");
@@ -665,15 +546,10 @@ testExceptionIsHandledInBaseAndBranchAfterComplete() {
}
main() {
+// /*
testImmediate();
testNeverComplete();
testComplete();
- testCompleteWithCompleteHandlerBeforeComplete();
- testExceptionWithCompleteHandlerBeforeComplete();
- testCompleteWithCompleteHandlerAfterComplete();
- testExceptionWithCompleteHandlerAfterComplete();
- testCompleteWithManyCompleteHandlers();
- testExceptionWithManyCompleteHandlers();
testCompleteWithSuccessHandlerBeforeComplete();
testCompleteWithSuccessHandlerAfterComplete();
testCompleteManySuccessHandlers();
@@ -682,6 +558,10 @@ main() {
testExceptionHandlerReturnsTrue();
testExceptionHandlerReturnsTrue2();
testExceptionHandlerReturnsFalse();
+// */
+ /*
+ */
+ /*
testExceptionHandlerReturnsFalse2();
testExceptionHandlerAfterCompleteThenNotCalled();
testExceptionHandlerAfterCompleteReturnsFalseThenThrows();
@@ -709,4 +589,5 @@ main() {
testExceptionTravelsAlongBothBranchesAfterComplete();
testExceptionIsHandledInBaseAndBranch();
testExceptionIsHandledInBaseAndBranchAfterComplete();
+ */
}
« no previous file with comments | « tests/corelib/for_in_test.dart ('k') | tests/corelib/futures_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698