| 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 |