Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/backend/metadata_test.dart

Issue 1715583003: Use boolean selector syntax for tags. (Closed) Base URL: git@github.com:dart-lang/test@master
Patch Set: Code review changes Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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:boolean_selector/boolean_selector.dart';
6
5 import 'package:test/src/backend/metadata.dart'; 7 import 'package:test/src/backend/metadata.dart';
6 import 'package:test/src/backend/test_platform.dart'; 8 import 'package:test/src/backend/test_platform.dart';
7 import 'package:test/src/frontend/skip.dart'; 9 import 'package:test/src/frontend/skip.dart';
8 import 'package:test/src/frontend/timeout.dart'; 10 import 'package:test/src/frontend/timeout.dart';
9 import 'package:test/test.dart'; 11 import 'package:test/test.dart';
10 12
11 void main() { 13 void main() {
12 group("tags", () { 14 group("tags", () {
13 test("parses an Iterable", () { 15 test("parses an Iterable", () {
14 expect(new Metadata.parse(tags: ["a", "b"]).tags, 16 expect(new Metadata.parse(tags: ["a", "b"]).tags,
(...skipping 30 matching lines...) Expand all
45 }); 47 });
46 48
47 group("constructor", () { 49 group("constructor", () {
48 test("returns the normal metadata if there's no forTag", () { 50 test("returns the normal metadata if there's no forTag", () {
49 var metadata = new Metadata(verboseTrace: true, tags: ['foo', 'bar']); 51 var metadata = new Metadata(verboseTrace: true, tags: ['foo', 'bar']);
50 expect(metadata.verboseTrace, isTrue); 52 expect(metadata.verboseTrace, isTrue);
51 expect(metadata.tags, equals(['foo', 'bar'])); 53 expect(metadata.tags, equals(['foo', 'bar']));
52 }); 54 });
53 55
54 test("returns the normal metadata if there's no tags", () { 56 test("returns the normal metadata if there's no tags", () {
55 var metadata = new Metadata(verboseTrace: true, 57 var metadata = new Metadata(verboseTrace: true, forTag: {
56 forTag: {'foo': new Metadata(skip: true)}); 58 new BooleanSelector.parse('foo'): new Metadata(skip: true)
59 });
57 expect(metadata.verboseTrace, isTrue); 60 expect(metadata.verboseTrace, isTrue);
58 expect(metadata.skip, isFalse); 61 expect(metadata.skip, isFalse);
59 expect(metadata.forTag, contains('foo')); 62 expect(metadata.forTag, contains(new BooleanSelector.parse('foo')));
60 expect(metadata.forTag['foo'].skip, isTrue); 63 expect(metadata.forTag[new BooleanSelector.parse('foo')].skip, isTrue);
61 }); 64 });
62 65
63 test("returns the normal metadata if forTag doesn't match tags", () { 66 test("returns the normal metadata if forTag doesn't match tags", () {
64 var metadata = new Metadata( 67 var metadata = new Metadata(
65 verboseTrace: true, 68 verboseTrace: true,
66 tags: ['bar', 'baz'], 69 tags: ['bar', 'baz'],
67 forTag: {'foo': new Metadata(skip: true)}); 70 forTag: {new BooleanSelector.parse('foo'): new Metadata(skip: true)});
68 71
69 expect(metadata.verboseTrace, isTrue); 72 expect(metadata.verboseTrace, isTrue);
70 expect(metadata.skip, isFalse); 73 expect(metadata.skip, isFalse);
71 expect(metadata.tags, unorderedEquals(['bar', 'baz'])); 74 expect(metadata.tags, unorderedEquals(['bar', 'baz']));
72 expect(metadata.forTag, contains('foo')); 75 expect(metadata.forTag, contains(new BooleanSelector.parse('foo')));
73 expect(metadata.forTag['foo'].skip, isTrue); 76 expect(metadata.forTag[new BooleanSelector.parse('foo')].skip, isTrue);
74 }); 77 });
75 78
76 test("resolves forTags that match tags", () { 79 test("resolves forTags that match tags", () {
77 var metadata = new Metadata( 80 var metadata = new Metadata(
78 verboseTrace: true, 81 verboseTrace: true,
79 tags: ['foo', 'bar', 'baz'], 82 tags: ['foo', 'bar', 'baz'],
80 forTag: { 83 forTag: {
81 'foo': new Metadata(skip: true), 84 new BooleanSelector.parse('foo'): new Metadata(skip: true),
82 'baz': new Metadata(timeout: Timeout.none), 85 new BooleanSelector.parse('baz'):
83 'qux': new Metadata(skipReason: "blah") 86 new Metadata(timeout: Timeout.none),
87 new BooleanSelector.parse('qux'): new Metadata(skipReason: "blah")
84 }); 88 });
85 89
86 expect(metadata.verboseTrace, isTrue); 90 expect(metadata.verboseTrace, isTrue);
87 expect(metadata.skip, isTrue); 91 expect(metadata.skip, isTrue);
88 expect(metadata.skipReason, isNull); 92 expect(metadata.skipReason, isNull);
89 expect(metadata.timeout, equals(Timeout.none)); 93 expect(metadata.timeout, equals(Timeout.none));
90 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); 94 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz']));
91 expect(metadata.forTag.keys, equals(['qux'])); 95 expect(metadata.forTag.keys, equals([new BooleanSelector.parse('qux')]));
92 }); 96 });
93 97
94 test("resolves forTags that adds a behavioral tag", () { 98 test("resolves forTags that adds a behavioral tag", () {
95 var metadata = new Metadata( 99 var metadata = new Metadata(
96 tags: ['foo'], 100 tags: ['foo'],
97 forTag: { 101 forTag: {
98 'baz': new Metadata(skip: true), 102 new BooleanSelector.parse('baz'): new Metadata(skip: true),
99 'bar': new Metadata(verboseTrace: true, tags: ['baz']), 103 new BooleanSelector.parse('bar'):
100 'foo': new Metadata(tags: ['bar']) 104 new Metadata(verboseTrace: true, tags: ['baz']),
105 new BooleanSelector.parse('foo'): new Metadata(tags: ['bar'])
101 }); 106 });
102 107
103 expect(metadata.verboseTrace, isTrue); 108 expect(metadata.verboseTrace, isTrue);
104 expect(metadata.skip, isTrue); 109 expect(metadata.skip, isTrue);
105 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); 110 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz']));
106 expect(metadata.forTag, isEmpty); 111 expect(metadata.forTag, isEmpty);
107 }); 112 });
108 113
109 test("resolves forTags that adds circular tags", () { 114 test("resolves forTags that adds circular tags", () {
110 var metadata = new Metadata( 115 var metadata = new Metadata(
111 tags: ['foo'], 116 tags: ['foo'],
112 forTag: { 117 forTag: {
113 'foo': new Metadata(tags: ['bar']), 118 new BooleanSelector.parse('foo'): new Metadata(tags: ['bar']),
114 'bar': new Metadata(tags: ['baz']), 119 new BooleanSelector.parse('bar'): new Metadata(tags: ['baz']),
115 'baz': new Metadata(tags: ['foo']) 120 new BooleanSelector.parse('baz'): new Metadata(tags: ['foo'])
116 }); 121 });
117 122
118 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz'])); 123 expect(metadata.tags, unorderedEquals(['foo', 'bar', 'baz']));
119 expect(metadata.forTag, isEmpty); 124 expect(metadata.forTag, isEmpty);
120 }); 125 });
121 126
122 test("base metadata takes precedence over forTags", () { 127 test("base metadata takes precedence over forTags", () {
123 var metadata = new Metadata( 128 var metadata = new Metadata(verboseTrace: true, tags: ['foo'], forTag: {
124 verboseTrace: true, 129 new BooleanSelector.parse('foo'): new Metadata(verboseTrace: false)
125 tags: ['foo'], 130 });
126 forTag: {'foo': new Metadata(verboseTrace: false)});
127 131
128 expect(metadata.verboseTrace, isTrue); 132 expect(metadata.verboseTrace, isTrue);
129 }); 133 });
130 }); 134 });
131 135
132 group("onPlatform", () { 136 group("onPlatform", () {
133 test("parses a valid map", () { 137 test("parses a valid map", () {
134 var metadata = new Metadata.parse(onPlatform: { 138 var metadata = new Metadata.parse(onPlatform: {
135 "chrome": new Timeout.factor(2), 139 "chrome": new Timeout.factor(2),
136 "vm": [new Skip(), new Timeout.factor(3)] 140 "vm": [new Skip(), new Timeout.factor(3)]
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 }, throwsArgumentError); 180 }, throwsArgumentError);
177 }); 181 });
178 182
179 test("refuses multiple Skips", () { 183 test("refuses multiple Skips", () {
180 expect(() { 184 expect(() {
181 new Metadata.parse(onPlatform: {"chrome": [new Skip(), new Skip()]}); 185 new Metadata.parse(onPlatform: {"chrome": [new Skip(), new Skip()]});
182 }, throwsArgumentError); 186 }, throwsArgumentError);
183 }); 187 });
184 }); 188 });
185 } 189 }
OLDNEW
« no previous file with comments | « lib/src/runner/configuration/load.dart ('k') | test/runner/configuration/configuration_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698