| 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 | 6 |
| 7 import 'package:test/src/backend/group.dart'; | 7 import 'package:test/src/backend/group.dart'; |
| 8 import 'package:test/src/backend/invoker.dart'; | 8 import 'package:test/src/backend/invoker.dart'; |
| 9 import 'package:test/src/backend/suite.dart'; | 9 import 'package:test/src/backend/suite.dart'; |
| 10 import 'package:test/src/backend/test.dart'; | 10 import 'package:test/src/backend/test.dart'; |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 expect(tests[2].name, equals("description 3")); | 58 expect(tests[2].name, equals("description 3")); |
| 59 }); | 59 }); |
| 60 }); | 60 }); |
| 61 | 61 |
| 62 group(".setUp()", () { | 62 group(".setUp()", () { |
| 63 test("is run before all tests", () async { | 63 test("is run before all tests", () async { |
| 64 var setUpRun = false; | 64 var setUpRun = false; |
| 65 var tests = declare(() { | 65 var tests = declare(() { |
| 66 setUp(() => setUpRun = true); | 66 setUp(() => setUpRun = true); |
| 67 | 67 |
| 68 test("description 1", expectAsync(() { | 68 test("description 1", expectAsync0(() { |
| 69 expect(setUpRun, isTrue); | 69 expect(setUpRun, isTrue); |
| 70 setUpRun = false; | 70 setUpRun = false; |
| 71 }, max: 1)); | 71 }, max: 1)); |
| 72 | 72 |
| 73 test("description 2", expectAsync(() { | 73 test("description 2", expectAsync0(() { |
| 74 expect(setUpRun, isTrue); | 74 expect(setUpRun, isTrue); |
| 75 setUpRun = false; | 75 setUpRun = false; |
| 76 }, max: 1)); | 76 }, max: 1)); |
| 77 }); | 77 }); |
| 78 | 78 |
| 79 await _runTest(tests[0]); | 79 await _runTest(tests[0]); |
| 80 await _runTest(tests[1]); | 80 await _runTest(tests[1]); |
| 81 }); | 81 }); |
| 82 | 82 |
| 83 test("can return a Future", () { | 83 test("can return a Future", () { |
| 84 var setUpRun = false; | 84 var setUpRun = false; |
| 85 var tests = declare(() { | 85 var tests = declare(() { |
| 86 setUp(() { | 86 setUp(() { |
| 87 return new Future(() => setUpRun = true); | 87 return new Future(() => setUpRun = true); |
| 88 }); | 88 }); |
| 89 | 89 |
| 90 test("description", expectAsync(() { | 90 test("description", expectAsync0(() { |
| 91 expect(setUpRun, isTrue); | 91 expect(setUpRun, isTrue); |
| 92 }, max: 1)); | 92 }, max: 1)); |
| 93 }); | 93 }); |
| 94 | 94 |
| 95 return _runTest(tests.single); | 95 return _runTest(tests.single); |
| 96 }); | 96 }); |
| 97 | 97 |
| 98 test("runs in call order within a group", () async { | 98 test("runs in call order within a group", () async { |
| 99 var firstSetUpRun = false; | 99 var firstSetUpRun = false; |
| 100 var secondSetUpRun = false; | 100 var secondSetUpRun = false; |
| 101 var thirdSetUpRun = false; | 101 var thirdSetUpRun = false; |
| 102 var tests = declare(() { | 102 var tests = declare(() { |
| 103 setUp(expectAsync(() async { | 103 setUp(expectAsync0(() async { |
| 104 expect(secondSetUpRun, isFalse); | 104 expect(secondSetUpRun, isFalse); |
| 105 expect(thirdSetUpRun, isFalse); | 105 expect(thirdSetUpRun, isFalse); |
| 106 firstSetUpRun = true; | 106 firstSetUpRun = true; |
| 107 })); | 107 })); |
| 108 | 108 |
| 109 setUp(expectAsync(() async { | 109 setUp(expectAsync0(() async { |
| 110 expect(firstSetUpRun, isTrue); | 110 expect(firstSetUpRun, isTrue); |
| 111 expect(thirdSetUpRun, isFalse); | 111 expect(thirdSetUpRun, isFalse); |
| 112 secondSetUpRun = true; | 112 secondSetUpRun = true; |
| 113 })); | 113 })); |
| 114 | 114 |
| 115 setUp(expectAsync(() async { | 115 setUp(expectAsync0(() async { |
| 116 expect(firstSetUpRun, isTrue); | 116 expect(firstSetUpRun, isTrue); |
| 117 expect(secondSetUpRun, isTrue); | 117 expect(secondSetUpRun, isTrue); |
| 118 thirdSetUpRun = true; | 118 thirdSetUpRun = true; |
| 119 })); | 119 })); |
| 120 | 120 |
| 121 test("description", expectAsync(() { | 121 test("description", expectAsync0(() { |
| 122 expect(firstSetUpRun, isTrue); | 122 expect(firstSetUpRun, isTrue); |
| 123 expect(secondSetUpRun, isTrue); | 123 expect(secondSetUpRun, isTrue); |
| 124 expect(thirdSetUpRun, isTrue); | 124 expect(thirdSetUpRun, isTrue); |
| 125 })); | 125 })); |
| 126 }); | 126 }); |
| 127 | 127 |
| 128 await _runTest(tests.single); | 128 await _runTest(tests.single); |
| 129 }); | 129 }); |
| 130 }); | 130 }); |
| 131 | 131 |
| 132 group(".tearDown()", () { | 132 group(".tearDown()", () { |
| 133 test("is run after all tests", () async { | 133 test("is run after all tests", () async { |
| 134 var tearDownRun; | 134 var tearDownRun; |
| 135 var tests = declare(() { | 135 var tests = declare(() { |
| 136 setUp(() => tearDownRun = false); | 136 setUp(() => tearDownRun = false); |
| 137 tearDown(() => tearDownRun = true); | 137 tearDown(() => tearDownRun = true); |
| 138 | 138 |
| 139 test("description 1", expectAsync(() { | 139 test("description 1", expectAsync0(() { |
| 140 expect(tearDownRun, isFalse); | 140 expect(tearDownRun, isFalse); |
| 141 }, max: 1)); | 141 }, max: 1)); |
| 142 | 142 |
| 143 test("description 2", expectAsync(() { | 143 test("description 2", expectAsync0(() { |
| 144 expect(tearDownRun, isFalse); | 144 expect(tearDownRun, isFalse); |
| 145 }, max: 1)); | 145 }, max: 1)); |
| 146 }); | 146 }); |
| 147 | 147 |
| 148 await _runTest(tests[0]); | 148 await _runTest(tests[0]); |
| 149 expect(tearDownRun, isTrue); | 149 expect(tearDownRun, isTrue); |
| 150 await _runTest(tests[1]); | 150 await _runTest(tests[1]); |
| 151 expect(tearDownRun, isTrue); | 151 expect(tearDownRun, isTrue); |
| 152 }); | 152 }); |
| 153 | 153 |
| 154 test("is run after an out-of-band failure", () async { | 154 test("is run after an out-of-band failure", () async { |
| 155 var tearDownRun; | 155 var tearDownRun; |
| 156 var tests = declare(() { | 156 var tests = declare(() { |
| 157 setUp(() => tearDownRun = false); | 157 setUp(() => tearDownRun = false); |
| 158 tearDown(() => tearDownRun = true); | 158 tearDown(() => tearDownRun = true); |
| 159 | 159 |
| 160 test("description 1", expectAsync(() { | 160 test("description 1", expectAsync0(() { |
| 161 Invoker.current.addOutstandingCallback(); | 161 Invoker.current.addOutstandingCallback(); |
| 162 new Future(() => throw new TestFailure("oh no")); | 162 new Future(() => throw new TestFailure("oh no")); |
| 163 }, max: 1)); | 163 }, max: 1)); |
| 164 }); | 164 }); |
| 165 | 165 |
| 166 await _runTest(tests.single, shouldFail: true); | 166 await _runTest(tests.single, shouldFail: true); |
| 167 expect(tearDownRun, isTrue); | 167 expect(tearDownRun, isTrue); |
| 168 }); | 168 }); |
| 169 | 169 |
| 170 test("can return a Future", () async { | 170 test("can return a Future", () async { |
| 171 var tearDownRun = false; | 171 var tearDownRun = false; |
| 172 var tests = declare(() { | 172 var tests = declare(() { |
| 173 tearDown(() { | 173 tearDown(() { |
| 174 return new Future(() => tearDownRun = true); | 174 return new Future(() => tearDownRun = true); |
| 175 }); | 175 }); |
| 176 | 176 |
| 177 test("description", expectAsync(() { | 177 test("description", expectAsync0(() { |
| 178 expect(tearDownRun, isFalse); | 178 expect(tearDownRun, isFalse); |
| 179 }, max: 1)); | 179 }, max: 1)); |
| 180 }); | 180 }); |
| 181 | 181 |
| 182 await _runTest(tests.single); | 182 await _runTest(tests.single); |
| 183 expect(tearDownRun, isTrue); | 183 expect(tearDownRun, isTrue); |
| 184 }); | 184 }); |
| 185 | 185 |
| 186 test("isn't run until there are no outstanding callbacks", () async { | 186 test("isn't run until there are no outstanding callbacks", () async { |
| 187 var outstandingCallbackRemoved = false; | 187 var outstandingCallbackRemoved = false; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 | 220 |
| 221 await _runTest(tests.single); | 221 await _runTest(tests.single); |
| 222 expect(outstandingCallbackRemoved, isTrue); | 222 expect(outstandingCallbackRemoved, isTrue); |
| 223 }); | 223 }); |
| 224 | 224 |
| 225 test("runs in reverse call order within a group", () async { | 225 test("runs in reverse call order within a group", () async { |
| 226 var firstTearDownRun = false; | 226 var firstTearDownRun = false; |
| 227 var secondTearDownRun = false; | 227 var secondTearDownRun = false; |
| 228 var thirdTearDownRun = false; | 228 var thirdTearDownRun = false; |
| 229 var tests = declare(() { | 229 var tests = declare(() { |
| 230 tearDown(expectAsync(() async { | 230 tearDown(expectAsync0(() async { |
| 231 expect(secondTearDownRun, isTrue); | 231 expect(secondTearDownRun, isTrue); |
| 232 expect(thirdTearDownRun, isTrue); | 232 expect(thirdTearDownRun, isTrue); |
| 233 firstTearDownRun = true; | 233 firstTearDownRun = true; |
| 234 })); | 234 })); |
| 235 | 235 |
| 236 tearDown(expectAsync(() async { | 236 tearDown(expectAsync0(() async { |
| 237 expect(firstTearDownRun, isFalse); | 237 expect(firstTearDownRun, isFalse); |
| 238 expect(thirdTearDownRun, isTrue); | 238 expect(thirdTearDownRun, isTrue); |
| 239 secondTearDownRun = true; | 239 secondTearDownRun = true; |
| 240 })); | 240 })); |
| 241 | 241 |
| 242 tearDown(expectAsync(() async { | 242 tearDown(expectAsync0(() async { |
| 243 expect(firstTearDownRun, isFalse); | 243 expect(firstTearDownRun, isFalse); |
| 244 expect(secondTearDownRun, isFalse); | 244 expect(secondTearDownRun, isFalse); |
| 245 thirdTearDownRun = true; | 245 thirdTearDownRun = true; |
| 246 })); | 246 })); |
| 247 | 247 |
| 248 test("description", expectAsync(() { | 248 test("description", expectAsync0(() { |
| 249 expect(firstTearDownRun, isFalse); | 249 expect(firstTearDownRun, isFalse); |
| 250 expect(secondTearDownRun, isFalse); | 250 expect(secondTearDownRun, isFalse); |
| 251 expect(thirdTearDownRun, isFalse); | 251 expect(thirdTearDownRun, isFalse); |
| 252 }, max: 1)); | 252 }, max: 1)); |
| 253 }); | 253 }); |
| 254 | 254 |
| 255 await _runTest(tests.single); | 255 await _runTest(tests.single); |
| 256 }); | 256 }); |
| 257 | 257 |
| 258 test("runs further tearDowns in a group even if one fails", () async { | 258 test("runs further tearDowns in a group even if one fails", () async { |
| 259 var tests = declare(() { | 259 var tests = declare(() { |
| 260 tearDown(expectAsync(() {})); | 260 tearDown(expectAsync0(() {})); |
| 261 | 261 |
| 262 tearDown(() async { | 262 tearDown(() async { |
| 263 throw 'error'; | 263 throw 'error'; |
| 264 }); | 264 }); |
| 265 | 265 |
| 266 test("description", expectAsync(() {})); | 266 test("description", expectAsync0(() {})); |
| 267 }); | 267 }); |
| 268 | 268 |
| 269 await _runTest(tests.single, shouldFail: true); | 269 await _runTest(tests.single, shouldFail: true); |
| 270 }); | 270 }); |
| 271 }); | 271 }); |
| 272 | 272 |
| 273 group("in a group,", () { | 273 group("in a group,", () { |
| 274 test("tests inherit the group's description", () { | 274 test("tests inherit the group's description", () { |
| 275 var entries = declare(() { | 275 var entries = declare(() { |
| 276 group("group", () { | 276 group("group", () { |
| (...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 360 }); | 360 }); |
| 361 }); | 361 }); |
| 362 | 362 |
| 363 group(".setUp()", () { | 363 group(".setUp()", () { |
| 364 test("is scoped to the group", () async { | 364 test("is scoped to the group", () async { |
| 365 var setUpRun = false; | 365 var setUpRun = false; |
| 366 var entries = declare(() { | 366 var entries = declare(() { |
| 367 group("group", () { | 367 group("group", () { |
| 368 setUp(() => setUpRun = true); | 368 setUp(() => setUpRun = true); |
| 369 | 369 |
| 370 test("description 1", expectAsync(() { | 370 test("description 1", expectAsync0(() { |
| 371 expect(setUpRun, isTrue); | 371 expect(setUpRun, isTrue); |
| 372 setUpRun = false; | 372 setUpRun = false; |
| 373 }, max: 1)); | 373 }, max: 1)); |
| 374 }); | 374 }); |
| 375 | 375 |
| 376 test("description 2", expectAsync(() { | 376 test("description 2", expectAsync0(() { |
| 377 expect(setUpRun, isFalse); | 377 expect(setUpRun, isFalse); |
| 378 setUpRun = false; | 378 setUpRun = false; |
| 379 }, max: 1)); | 379 }, max: 1)); |
| 380 }); | 380 }); |
| 381 | 381 |
| 382 await _runTest((entries[0] as Group).entries.single); | 382 await _runTest((entries[0] as Group).entries.single); |
| 383 await _runTest(entries[1]); | 383 await _runTest(entries[1]); |
| 384 }); | 384 }); |
| 385 | 385 |
| 386 test("runs from the outside in", () { | 386 test("runs from the outside in", () { |
| 387 var outerSetUpRun = false; | 387 var outerSetUpRun = false; |
| 388 var middleSetUpRun = false; | 388 var middleSetUpRun = false; |
| 389 var innerSetUpRun = false; | 389 var innerSetUpRun = false; |
| 390 var entries = declare(() { | 390 var entries = declare(() { |
| 391 setUp(expectAsync(() { | 391 setUp(expectAsync0(() { |
| 392 expect(middleSetUpRun, isFalse); | 392 expect(middleSetUpRun, isFalse); |
| 393 expect(innerSetUpRun, isFalse); | 393 expect(innerSetUpRun, isFalse); |
| 394 outerSetUpRun = true; | 394 outerSetUpRun = true; |
| 395 }, max: 1)); | 395 }, max: 1)); |
| 396 | 396 |
| 397 group("middle", () { | 397 group("middle", () { |
| 398 setUp(expectAsync(() { | 398 setUp(expectAsync0(() { |
| 399 expect(outerSetUpRun, isTrue); | 399 expect(outerSetUpRun, isTrue); |
| 400 expect(innerSetUpRun, isFalse); | 400 expect(innerSetUpRun, isFalse); |
| 401 middleSetUpRun = true; | 401 middleSetUpRun = true; |
| 402 }, max: 1)); | 402 }, max: 1)); |
| 403 | 403 |
| 404 group("inner", () { | 404 group("inner", () { |
| 405 setUp(expectAsync(() { | 405 setUp(expectAsync0(() { |
| 406 expect(outerSetUpRun, isTrue); | 406 expect(outerSetUpRun, isTrue); |
| 407 expect(middleSetUpRun, isTrue); | 407 expect(middleSetUpRun, isTrue); |
| 408 innerSetUpRun = true; | 408 innerSetUpRun = true; |
| 409 }, max: 1)); | 409 }, max: 1)); |
| 410 | 410 |
| 411 test("description", expectAsync(() { | 411 test("description", expectAsync0(() { |
| 412 expect(outerSetUpRun, isTrue); | 412 expect(outerSetUpRun, isTrue); |
| 413 expect(middleSetUpRun, isTrue); | 413 expect(middleSetUpRun, isTrue); |
| 414 expect(innerSetUpRun, isTrue); | 414 expect(innerSetUpRun, isTrue); |
| 415 }, max: 1)); | 415 }, max: 1)); |
| 416 }); | 416 }); |
| 417 }); | 417 }); |
| 418 }); | 418 }); |
| 419 | 419 |
| 420 var middleGroup = entries.single as Group; | 420 var middleGroup = entries.single as Group; |
| 421 var innerGroup = middleGroup.entries.single as Group; | 421 var innerGroup = middleGroup.entries.single as Group; |
| 422 return _runTest(innerGroup.entries.single); | 422 return _runTest(innerGroup.entries.single); |
| 423 }); | 423 }); |
| 424 | 424 |
| 425 test("handles Futures when chained", () { | 425 test("handles Futures when chained", () { |
| 426 var outerSetUpRun = false; | 426 var outerSetUpRun = false; |
| 427 var innerSetUpRun = false; | 427 var innerSetUpRun = false; |
| 428 var entries = declare(() { | 428 var entries = declare(() { |
| 429 setUp(expectAsync(() { | 429 setUp(expectAsync0(() { |
| 430 expect(innerSetUpRun, isFalse); | 430 expect(innerSetUpRun, isFalse); |
| 431 return new Future(() => outerSetUpRun = true); | 431 return new Future(() => outerSetUpRun = true); |
| 432 }, max: 1)); | 432 }, max: 1)); |
| 433 | 433 |
| 434 group("inner", () { | 434 group("inner", () { |
| 435 setUp(expectAsync(() { | 435 setUp(expectAsync0(() { |
| 436 expect(outerSetUpRun, isTrue); | 436 expect(outerSetUpRun, isTrue); |
| 437 return new Future(() => innerSetUpRun = true); | 437 return new Future(() => innerSetUpRun = true); |
| 438 }, max: 1)); | 438 }, max: 1)); |
| 439 | 439 |
| 440 test("description", expectAsync(() { | 440 test("description", expectAsync0(() { |
| 441 expect(outerSetUpRun, isTrue); | 441 expect(outerSetUpRun, isTrue); |
| 442 expect(innerSetUpRun, isTrue); | 442 expect(innerSetUpRun, isTrue); |
| 443 }, max: 1)); | 443 }, max: 1)); |
| 444 }); | 444 }); |
| 445 }); | 445 }); |
| 446 | 446 |
| 447 var innerGroup = entries.single as Group; | 447 var innerGroup = entries.single as Group; |
| 448 return _runTest(innerGroup.entries.single); | 448 return _runTest(innerGroup.entries.single); |
| 449 }); | 449 }); |
| 450 | 450 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 477 | 477 |
| 478 group(".tearDown()", () { | 478 group(".tearDown()", () { |
| 479 test("is scoped to the group", () async { | 479 test("is scoped to the group", () async { |
| 480 var tearDownRun; | 480 var tearDownRun; |
| 481 var entries = declare(() { | 481 var entries = declare(() { |
| 482 setUp(() => tearDownRun = false); | 482 setUp(() => tearDownRun = false); |
| 483 | 483 |
| 484 group("group", () { | 484 group("group", () { |
| 485 tearDown(() => tearDownRun = true); | 485 tearDown(() => tearDownRun = true); |
| 486 | 486 |
| 487 test("description 1", expectAsync(() { | 487 test("description 1", expectAsync0(() { |
| 488 expect(tearDownRun, isFalse); | 488 expect(tearDownRun, isFalse); |
| 489 }, max: 1)); | 489 }, max: 1)); |
| 490 }); | 490 }); |
| 491 | 491 |
| 492 test("description 2", expectAsync(() { | 492 test("description 2", expectAsync0(() { |
| 493 expect(tearDownRun, isFalse); | 493 expect(tearDownRun, isFalse); |
| 494 }, max: 1)); | 494 }, max: 1)); |
| 495 }); | 495 }); |
| 496 | 496 |
| 497 var testGroup = entries[0] as Group; | 497 var testGroup = entries[0] as Group; |
| 498 await _runTest(testGroup.entries.single); | 498 await _runTest(testGroup.entries.single); |
| 499 expect(tearDownRun, isTrue); | 499 expect(tearDownRun, isTrue); |
| 500 await _runTest(entries[1]); | 500 await _runTest(entries[1]); |
| 501 expect(tearDownRun, isFalse); | 501 expect(tearDownRun, isFalse); |
| 502 }); | 502 }); |
| 503 | 503 |
| 504 test("runs from the inside out", () async { | 504 test("runs from the inside out", () async { |
| 505 var innerTearDownRun = false; | 505 var innerTearDownRun = false; |
| 506 var middleTearDownRun = false; | 506 var middleTearDownRun = false; |
| 507 var outerTearDownRun = false; | 507 var outerTearDownRun = false; |
| 508 var entries = declare(() { | 508 var entries = declare(() { |
| 509 tearDown(expectAsync(() { | 509 tearDown(expectAsync0(() { |
| 510 expect(innerTearDownRun, isTrue); | 510 expect(innerTearDownRun, isTrue); |
| 511 expect(middleTearDownRun, isTrue); | 511 expect(middleTearDownRun, isTrue); |
| 512 outerTearDownRun = true; | 512 outerTearDownRun = true; |
| 513 }, max: 1)); | 513 }, max: 1)); |
| 514 | 514 |
| 515 group("middle", () { | 515 group("middle", () { |
| 516 tearDown(expectAsync(() { | 516 tearDown(expectAsync0(() { |
| 517 expect(innerTearDownRun, isTrue); | 517 expect(innerTearDownRun, isTrue); |
| 518 expect(outerTearDownRun, isFalse); | 518 expect(outerTearDownRun, isFalse); |
| 519 middleTearDownRun = true; | 519 middleTearDownRun = true; |
| 520 }, max: 1)); | 520 }, max: 1)); |
| 521 | 521 |
| 522 group("inner", () { | 522 group("inner", () { |
| 523 tearDown(expectAsync(() { | 523 tearDown(expectAsync0(() { |
| 524 expect(outerTearDownRun, isFalse); | 524 expect(outerTearDownRun, isFalse); |
| 525 expect(middleTearDownRun, isFalse); | 525 expect(middleTearDownRun, isFalse); |
| 526 innerTearDownRun = true; | 526 innerTearDownRun = true; |
| 527 }, max: 1)); | 527 }, max: 1)); |
| 528 | 528 |
| 529 test("description", expectAsync(() { | 529 test("description", expectAsync0(() { |
| 530 expect(outerTearDownRun, isFalse); | 530 expect(outerTearDownRun, isFalse); |
| 531 expect(middleTearDownRun, isFalse); | 531 expect(middleTearDownRun, isFalse); |
| 532 expect(innerTearDownRun, isFalse); | 532 expect(innerTearDownRun, isFalse); |
| 533 }, max: 1)); | 533 }, max: 1)); |
| 534 }); | 534 }); |
| 535 }); | 535 }); |
| 536 }); | 536 }); |
| 537 | 537 |
| 538 var middleGroup = entries.single as Group; | 538 var middleGroup = entries.single as Group; |
| 539 var innerGroup = middleGroup.entries.single as Group; | 539 var innerGroup = middleGroup.entries.single as Group; |
| 540 await _runTest(innerGroup.entries.single); | 540 await _runTest(innerGroup.entries.single); |
| 541 expect(innerTearDownRun, isTrue); | 541 expect(innerTearDownRun, isTrue); |
| 542 expect(middleTearDownRun, isTrue); | 542 expect(middleTearDownRun, isTrue); |
| 543 expect(outerTearDownRun, isTrue); | 543 expect(outerTearDownRun, isTrue); |
| 544 }); | 544 }); |
| 545 | 545 |
| 546 test("handles Futures when chained", () async { | 546 test("handles Futures when chained", () async { |
| 547 var outerTearDownRun = false; | 547 var outerTearDownRun = false; |
| 548 var innerTearDownRun = false; | 548 var innerTearDownRun = false; |
| 549 var entries = declare(() { | 549 var entries = declare(() { |
| 550 tearDown(expectAsync(() { | 550 tearDown(expectAsync0(() { |
| 551 expect(innerTearDownRun, isTrue); | 551 expect(innerTearDownRun, isTrue); |
| 552 return new Future(() => outerTearDownRun = true); | 552 return new Future(() => outerTearDownRun = true); |
| 553 }, max: 1)); | 553 }, max: 1)); |
| 554 | 554 |
| 555 group("inner", () { | 555 group("inner", () { |
| 556 tearDown(expectAsync(() { | 556 tearDown(expectAsync0(() { |
| 557 expect(outerTearDownRun, isFalse); | 557 expect(outerTearDownRun, isFalse); |
| 558 return new Future(() => innerTearDownRun = true); | 558 return new Future(() => innerTearDownRun = true); |
| 559 }, max: 1)); | 559 }, max: 1)); |
| 560 | 560 |
| 561 test("description", expectAsync(() { | 561 test("description", expectAsync0(() { |
| 562 expect(outerTearDownRun, isFalse); | 562 expect(outerTearDownRun, isFalse); |
| 563 expect(innerTearDownRun, isFalse); | 563 expect(innerTearDownRun, isFalse); |
| 564 }, max: 1)); | 564 }, max: 1)); |
| 565 }); | 565 }); |
| 566 }); | 566 }); |
| 567 | 567 |
| 568 var innerGroup = entries.single as Group; | 568 var innerGroup = entries.single as Group; |
| 569 await _runTest(innerGroup.entries.single); | 569 await _runTest(innerGroup.entries.single); |
| 570 expect(innerTearDownRun, isTrue); | 570 expect(innerTearDownRun, isTrue); |
| 571 expect(outerTearDownRun, isTrue); | 571 expect(outerTearDownRun, isTrue); |
| 572 }); | 572 }); |
| 573 | 573 |
| 574 test("runs outer callbacks even when inner ones fail", () async { | 574 test("runs outer callbacks even when inner ones fail", () async { |
| 575 var outerTearDownRun = false; | 575 var outerTearDownRun = false; |
| 576 var entries = declare(() { | 576 var entries = declare(() { |
| 577 tearDown(() { | 577 tearDown(() { |
| 578 return new Future(() => outerTearDownRun = true); | 578 return new Future(() => outerTearDownRun = true); |
| 579 }); | 579 }); |
| 580 | 580 |
| 581 group("inner", () { | 581 group("inner", () { |
| 582 tearDown(() { | 582 tearDown(() { |
| 583 throw 'inner error'; | 583 throw 'inner error'; |
| 584 }); | 584 }); |
| 585 | 585 |
| 586 test("description", expectAsync(() { | 586 test("description", expectAsync0(() { |
| 587 expect(outerTearDownRun, isFalse); | 587 expect(outerTearDownRun, isFalse); |
| 588 }, max: 1)); | 588 }, max: 1)); |
| 589 }); | 589 }); |
| 590 }); | 590 }); |
| 591 | 591 |
| 592 var innerGroup = entries.single as Group; | 592 var innerGroup = entries.single as Group; |
| 593 await _runTest(innerGroup.entries.single, shouldFail: true); | 593 await _runTest(innerGroup.entries.single, shouldFail: true); |
| 594 expect(outerTearDownRun, isTrue); | 594 expect(outerTearDownRun, isTrue); |
| 595 }); | 595 }); |
| 596 }); | 596 }); |
| 597 }); | 597 }); |
| 598 } | 598 } |
| 599 | 599 |
| 600 /// Runs [test]. | 600 /// Runs [test]. |
| 601 /// | 601 /// |
| 602 /// This automatically sets up an `onError` listener to ensure that the test | 602 /// This automatically sets up an `onError` listener to ensure that the test |
| 603 /// doesn't throw any invisible exceptions. | 603 /// doesn't throw any invisible exceptions. |
| 604 Future _runTest(Test test, {bool shouldFail: false}) { | 604 Future _runTest(Test test, {bool shouldFail: false}) { |
| 605 var liveTest = test.load(_suite); | 605 var liveTest = test.load(_suite); |
| 606 | 606 |
| 607 liveTest.onError.listen(shouldFail | 607 liveTest.onError.listen(shouldFail |
| 608 ? expectAsync((_) {}) | 608 ? expectAsync1((_) {}) |
| 609 : (error) => registerException(error.error, error.stackTrace)); | 609 : (error) => registerException(error.error, error.stackTrace)); |
| 610 | 610 |
| 611 return liveTest.run(); | 611 return liveTest.run(); |
| 612 } | 612 } |
| OLD | NEW |