Chromium Code Reviews| Index: tests/lib/async/futures_test.dart |
| diff --git a/tests/lib/async/futures_test.dart b/tests/lib/async/futures_test.dart |
| index 936c5187d1f613739073200c8d014165e8ca81c7..fa5792241bca38366f9400d246058bd23cf638a4 100644 |
| --- a/tests/lib/async/futures_test.dart |
| +++ b/tests/lib/async/futures_test.dart |
| @@ -53,8 +53,9 @@ Future testWaitWithSingleError() { |
| return Future.wait(futures).then((_) { |
| throw 'incorrect error'; |
| - }).catchError((error) { |
| + }).catchError((error, stackTrace) { |
| Expect.equals('correct error', error); |
| + Expect.isNull(stackTrace); |
| }); |
| } |
| @@ -69,8 +70,52 @@ Future testWaitWithMultipleErrors() { |
| return Future.wait(futures).then((_) { |
| throw 'incorrect error 2'; |
| - }).catchError((error) { |
| + }).catchError((error, stackTrace) { |
| + Expect.equals('correct error', error); |
| + Expect.isNull(stackTrace); |
| + }); |
| +} |
| + |
| +StackTrace get currentStackTrace { |
| + try { |
| + throw 0; |
| + } catch(e, st) { |
| + return st; |
| + } |
| + return null; |
| +} |
| + |
| +Future testWaitWithSingleErrorWithStackTrace() { |
| + List<Future> futures = new List<Future>(); |
| + Completer c1 = new Completer(); |
| + Completer c2 = new Completer(); |
| + futures.add(c1.future); |
| + futures.add(c2.future); |
| + c1.complete(); |
| + c2.completeError('correct error', currentStackTrace); |
| + |
| + return Future.wait(futures).then((_) { |
| + throw 'incorrect error'; |
| + }).catchError((error, stackTrace) { |
| + Expect.equals('correct error', error); |
| + Expect.isNull(stackTrace); |
|
Anders Johnsen
2013/11/05 10:21:21
isNotNull?
floitsch
2013/11/05 18:42:12
Done.
|
| + }); |
| +} |
| + |
| +Future testWaitWithMultipleErrorsWithStackTrace() { |
| + List<Future> futures = new List<Future>(); |
| + Completer c1 = new Completer(); |
| + Completer c2 = new Completer(); |
| + futures.add(c1.future); |
| + futures.add(c2.future); |
| + c1.completeError('correct error', currentStackTrace); |
| + c2.completeError('incorrect error 1'); |
| + |
| + return Future.wait(futures).then((_) { |
| + throw 'incorrect error 2'; |
| + }).catchError((error, stackTrace) { |
| Expect.equals('correct error', error); |
| + Expect.isNotNull(stackTrace); |
| }); |
| } |