| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library unittest.test.utils; | 5 library unittest.test.utils; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 | 9 |
| 10 import 'package:unittest/src/backend/invoker.dart'; | 10 import 'package:unittest/src/backend/invoker.dart'; |
| 11 import 'package:unittest/src/backend/live_test.dart'; | 11 import 'package:unittest/src/backend/live_test.dart'; |
| 12 import 'package:unittest/src/backend/metadata.dart'; |
| 12 import 'package:unittest/src/backend/state.dart'; | 13 import 'package:unittest/src/backend/state.dart'; |
| 13 import 'package:unittest/src/backend/suite.dart'; | 14 import 'package:unittest/src/backend/suite.dart'; |
| 14 import 'package:unittest/src/runner/load_exception.dart'; | 15 import 'package:unittest/src/runner/load_exception.dart'; |
| 15 import 'package:unittest/src/util/remote_exception.dart'; | 16 import 'package:unittest/src/util/remote_exception.dart'; |
| 16 import 'package:unittest/unittest.dart'; | 17 import 'package:unittest/unittest.dart'; |
| 17 | 18 |
| 18 // The last state change detected via [expectStates]. | 19 // The last state change detected via [expectStates]. |
| 19 State lastState; | 20 State lastState; |
| 20 | 21 |
| 21 /// Asserts that exactly [states] will be emitted via [liveTest.onStateChange]. | 22 /// Asserts that exactly [states] will be emitted via [liveTest.onStateChange]. |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 if (times == 0) return new Future.value(); | 172 if (times == 0) return new Future.value(); |
| 172 // Use [new Future] future to allow microtask events to finish. The [new | 173 // Use [new Future] future to allow microtask events to finish. The [new |
| 173 // Future.value] constructor uses scheduleMicrotask itself and would therefore | 174 // Future.value] constructor uses scheduleMicrotask itself and would therefore |
| 174 // not wait for microtask callbacks that are scheduled after invoking this | 175 // not wait for microtask callbacks that are scheduled after invoking this |
| 175 // method. | 176 // method. |
| 176 return new Future(() => pumpEventQueue(times - 1)); | 177 return new Future(() => pumpEventQueue(times - 1)); |
| 177 } | 178 } |
| 178 | 179 |
| 179 /// Returns a local [LiveTest] that runs [body]. | 180 /// Returns a local [LiveTest] that runs [body]. |
| 180 LiveTest createTest(body()) { | 181 LiveTest createTest(body()) { |
| 181 var test = new LocalTest("test", body); | 182 var test = new LocalTest("test", new Metadata(), body); |
| 182 var suite = new Suite([test]); | 183 var suite = new Suite([test]); |
| 183 return test.load(suite); | 184 return test.load(suite); |
| 184 } | 185 } |
| 185 | 186 |
| 186 /// Runs [body] as a test. | 187 /// Runs [body] as a test. |
| 187 /// | 188 /// |
| 188 /// Once it completes, returns the [LiveTest] used to run it. | 189 /// Once it completes, returns the [LiveTest] used to run it. |
| 189 Future<LiveTest> runTest(body()) { | 190 Future<LiveTest> runTest(body()) { |
| 190 var liveTest = createTest(body); | 191 var liveTest = createTest(body); |
| 191 return liveTest.run().then((_) => liveTest); | 192 return liveTest.run().then((_) => liveTest); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 }); | 233 }); |
| 233 }); | 234 }); |
| 234 | 235 |
| 235 return liveTest.run().then((_) { | 236 return liveTest.run().then((_) { |
| 236 expectTestPassed(liveTest); | 237 expectTestPassed(liveTest); |
| 237 // Ensure that the outer test doesn't complete until the inner future | 238 // Ensure that the outer test doesn't complete until the inner future |
| 238 // completes. | 239 // completes. |
| 239 return future; | 240 return future; |
| 240 }); | 241 }); |
| 241 } | 242 } |
| OLD | NEW |