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 30 matching lines...) Expand all Loading... |
41 test("description 1", () {}); | 41 test("description 1", () {}); |
42 test("description 2", () {}); | 42 test("description 2", () {}); |
43 test("description 3", () {}); | 43 test("description 3", () {}); |
44 }); | 44 }); |
45 | 45 |
46 expect(tests, hasLength(3)); | 46 expect(tests, hasLength(3)); |
47 expect(tests[0].name, equals("description 1")); | 47 expect(tests[0].name, equals("description 1")); |
48 expect(tests[1].name, equals("description 2")); | 48 expect(tests[1].name, equals("description 2")); |
49 expect(tests[2].name, equals("description 3")); | 49 expect(tests[2].name, equals("description 3")); |
50 }); | 50 }); |
| 51 |
| 52 test("declares a test with tags", () { |
| 53 var tests = declare(() { |
| 54 test("tags as String", () {}, tags: "a"); |
| 55 test("tags as List", () {}, tags: ["a", "b"]); |
| 56 test("tags as null", () {}, tags: null); |
| 57 }); |
| 58 |
| 59 expect(tests, hasLength(3)); |
| 60 expect(tests[0].metadata.tags, unorderedEquals(["a"])); |
| 61 expect(tests[1].metadata.tags, unorderedEquals(["a", "b"])); |
| 62 expect(tests[2].metadata.tags, isEmpty); |
| 63 }); |
| 64 |
| 65 test("throws on invalid tags", () { |
| 66 expect(() { |
| 67 declare(() { |
| 68 test("a", () {}, tags: 1); |
| 69 }); |
| 70 }, throwsArgumentError); |
| 71 }); |
51 }); | 72 }); |
52 | 73 |
53 group(".setUp()", () { | 74 group(".setUp()", () { |
54 test("is run before all tests", () async { | 75 test("is run before all tests", () async { |
55 var setUpRun = false; | 76 var setUpRun = false; |
56 var tests = declare(() { | 77 var tests = declare(() { |
57 setUp(() => setUpRun = true); | 78 setUp(() => setUpRun = true); |
58 | 79 |
59 test("description 1", expectAsync(() { | 80 test("description 1", expectAsync(() { |
60 expect(setUpRun, isTrue); | 81 expect(setUpRun, isTrue); |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 | 428 |
408 test("description", expectAsync(() { | 429 test("description", expectAsync(() { |
409 expect(outerSetUpRun, isTrue); | 430 expect(outerSetUpRun, isTrue); |
410 expect(innerSetUpRun, isTrue); | 431 expect(innerSetUpRun, isTrue); |
411 }, max: 1)); | 432 }, max: 1)); |
412 }); | 433 }); |
413 }); | 434 }); |
414 | 435 |
415 return _runTest(entries.single.entries.single); | 436 return _runTest(entries.single.entries.single); |
416 }); | 437 }); |
| 438 |
| 439 test("inherits group's tags", () { |
| 440 var tests = declare(() { |
| 441 group("outer", () { |
| 442 group("inner", () { |
| 443 test("with tags", () {}, tags: "d"); |
| 444 }, tags: ["b", "c"]); |
| 445 }, tags: "a"); |
| 446 }); |
| 447 |
| 448 var outerGroup = tests.single; |
| 449 var innerGroup = outerGroup.entries.single; |
| 450 var testWithTags = innerGroup.entries.single; |
| 451 expect(outerGroup.metadata.tags, unorderedEquals(["a"])); |
| 452 expect(innerGroup.metadata.tags, unorderedEquals(["a", "b", "c"])); |
| 453 expect(testWithTags.metadata.tags, |
| 454 unorderedEquals(["a", "b", "c", "d"])); |
| 455 }); |
| 456 |
| 457 test("throws on invalid tags", () { |
| 458 expect(() { |
| 459 declare(() { |
| 460 group("a", () {}, tags: 1); |
| 461 }); |
| 462 }, throwsArgumentError); |
| 463 }); |
417 }); | 464 }); |
418 | 465 |
419 group(".tearDown()", () { | 466 group(".tearDown()", () { |
420 test("is scoped to the group", () async { | 467 test("is scoped to the group", () async { |
421 var tearDownRun; | 468 var tearDownRun; |
422 var entries = declare(() { | 469 var entries = declare(() { |
423 setUp(() => tearDownRun = false); | 470 setUp(() => tearDownRun = false); |
424 | 471 |
425 group("group", () { | 472 group("group", () { |
426 tearDown(() => tearDownRun = true); | 473 tearDown(() => tearDownRun = true); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
539 /// doesn't throw any invisible exceptions. | 586 /// doesn't throw any invisible exceptions. |
540 Future _runTest(Test test, {bool shouldFail: false}) { | 587 Future _runTest(Test test, {bool shouldFail: false}) { |
541 var liveTest = test.load(_suite); | 588 var liveTest = test.load(_suite); |
542 | 589 |
543 liveTest.onError.listen(shouldFail | 590 liveTest.onError.listen(shouldFail |
544 ? expectAsync((_) {}) | 591 ? expectAsync((_) {}) |
545 : (error) => registerException(error.error, error.stackTrace)); | 592 : (error) => registerException(error.error, error.stackTrace)); |
546 | 593 |
547 return liveTest.run(); | 594 return liveTest.run(); |
548 } | 595 } |
OLD | NEW |