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 'package:test/src/backend/metadata.dart'; | 5 import 'package:test/src/backend/metadata.dart'; |
6 import 'package:test/src/backend/test_platform.dart'; | 6 import 'package:test/src/backend/test_platform.dart'; |
7 import 'package:test/src/frontend/timeout.dart'; | 7 import 'package:test/src/frontend/timeout.dart'; |
8 import 'package:test/src/frontend/skip.dart'; | 8 import 'package:test/src/frontend/skip.dart'; |
9 import 'package:test/test.dart'; | 9 import 'package:test/test.dart'; |
10 | 10 |
(...skipping 26 matching lines...) Expand all Loading... |
37 expect(merged.tags, unorderedEquals(["a", "b", "c"])); | 37 expect(merged.tags, unorderedEquals(["a", "b", "c"])); |
38 }); | 38 }); |
39 | 39 |
40 test("serializes and deserializes tags", () { | 40 test("serializes and deserializes tags", () { |
41 var metadata = new Metadata(tags: ["a", "b"]).serialize(); | 41 var metadata = new Metadata(tags: ["a", "b"]).serialize(); |
42 expect(new Metadata.deserialize(metadata).tags, | 42 expect(new Metadata.deserialize(metadata).tags, |
43 unorderedEquals(['a', 'b'])); | 43 unorderedEquals(['a', 'b'])); |
44 }); | 44 }); |
45 }); | 45 }); |
46 | 46 |
| 47 group("constructor", () { |
| 48 test("returns the normal metadata if there's no forTag", () { |
| 49 var metadata = new Metadata(verboseTrace: true, tags: ['foo', 'bar']); |
| 50 expect(metadata.verboseTrace, isTrue); |
| 51 expect(metadata.tags, equals(['foo', 'bar'])); |
| 52 }); |
| 53 |
| 54 test("returns the normal metadata if there's no tags", () { |
| 55 var metadata = new Metadata(verboseTrace: true, |
| 56 forTag: {'foo': new Metadata(skip: true)}); |
| 57 expect(metadata.verboseTrace, isTrue); |
| 58 expect(metadata.skip, isFalse); |
| 59 expect(metadata.forTag, contains('foo')); |
| 60 expect(metadata.forTag['foo'].skip, isTrue); |
| 61 }); |
| 62 |
| 63 test("returns the normal metadata if forTag doesn't match tags", () { |
| 64 var metadata = new Metadata( |
| 65 verboseTrace: true, |
| 66 tags: ['bar', 'baz'], |
| 67 forTag: {'foo': new Metadata(skip: true)}); |
| 68 |
| 69 expect(metadata.verboseTrace, isTrue); |
| 70 expect(metadata.skip, isFalse); |
| 71 expect(metadata.tags, ['bar', 'baz']); |
| 72 expect(metadata.forTag, contains('foo')); |
| 73 expect(metadata.forTag['foo'].skip, isTrue); |
| 74 }); |
| 75 |
| 76 test("resolves forTags that match tags", () { |
| 77 var metadata = new Metadata( |
| 78 verboseTrace: true, |
| 79 tags: ['foo', 'bar', 'baz'], |
| 80 forTag: { |
| 81 'foo': new Metadata(skip: true), |
| 82 'baz': new Metadata(timeout: Timeout.none), |
| 83 'qux': new Metadata(skipReason: "blah") |
| 84 }); |
| 85 |
| 86 expect(metadata.verboseTrace, isTrue); |
| 87 expect(metadata.skip, isTrue); |
| 88 expect(metadata.skipReason, isNull); |
| 89 expect(metadata.timeout, equals(Timeout.none)); |
| 90 expect(metadata.tags, equals(['foo', 'bar', 'baz'])); |
| 91 expect(metadata.forTag.keys, equals(['qux'])); |
| 92 }); |
| 93 |
| 94 test("base metadata takes precedence over forTags", () { |
| 95 var metadata = new Metadata( |
| 96 verboseTrace: true, |
| 97 tags: ['foo'], |
| 98 forTag: {'foo': new Metadata(verboseTrace: false)}); |
| 99 |
| 100 expect(metadata.verboseTrace, isTrue); |
| 101 }); |
| 102 }); |
| 103 |
47 group("onPlatform", () { | 104 group("onPlatform", () { |
48 test("parses a valid map", () { | 105 test("parses a valid map", () { |
49 var metadata = new Metadata.parse(onPlatform: { | 106 var metadata = new Metadata.parse(onPlatform: { |
50 "chrome": new Timeout.factor(2), | 107 "chrome": new Timeout.factor(2), |
51 "vm": [new Skip(), new Timeout.factor(3)] | 108 "vm": [new Skip(), new Timeout.factor(3)] |
52 }); | 109 }); |
53 | 110 |
54 var key = metadata.onPlatform.keys.first; | 111 var key = metadata.onPlatform.keys.first; |
55 expect(key.evaluate(TestPlatform.chrome), isTrue); | 112 expect(key.evaluate(TestPlatform.chrome), isTrue); |
56 expect(key.evaluate(TestPlatform.vm), isFalse); | 113 expect(key.evaluate(TestPlatform.vm), isFalse); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 }, throwsArgumentError); | 148 }, throwsArgumentError); |
92 }); | 149 }); |
93 | 150 |
94 test("refuses multiple Skips", () { | 151 test("refuses multiple Skips", () { |
95 expect(() { | 152 expect(() { |
96 new Metadata.parse(onPlatform: {"chrome": [new Skip(), new Skip()]}); | 153 new Metadata.parse(onPlatform: {"chrome": [new Skip(), new Skip()]}); |
97 }, throwsArgumentError); | 154 }, throwsArgumentError); |
98 }); | 155 }); |
99 }); | 156 }); |
100 } | 157 } |
OLD | NEW |