OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 @TestOn("vm") | 5 @TestOn("vm") |
6 | 6 |
7 import 'package:boolean_selector/boolean_selector.dart'; | 7 import 'package:boolean_selector/boolean_selector.dart'; |
8 import 'package:path/path.dart' as p; | 8 import 'package:path/path.dart' as p; |
9 import 'package:test/test.dart'; | 9 import 'package:test/test.dart'; |
10 | 10 |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 var older = new Configuration( | 176 var older = new Configuration( |
177 testOn: new PlatformSelector.parse("vm")); | 177 testOn: new PlatformSelector.parse("vm")); |
178 var newer = new Configuration( | 178 var newer = new Configuration( |
179 testOn: new PlatformSelector.parse("linux")); | 179 testOn: new PlatformSelector.parse("linux")); |
180 var merged = older.merge(newer); | 180 var merged = older.merge(newer); |
181 expect(merged.testOn, | 181 expect(merged.testOn, |
182 equals(new PlatformSelector.parse("vm && linux"))); | 182 equals(new PlatformSelector.parse("vm && linux"))); |
183 }); | 183 }); |
184 }); | 184 }); |
185 | 185 |
186 group("for tags", () { | 186 group("for include and excludeTags", () { |
187 test("if neither is defined, preserves the default", () { | 187 test("if neither is defined, preserves the default", () { |
188 var merged = new Configuration().merge(new Configuration()); | 188 var merged = new Configuration().merge(new Configuration()); |
189 expect(merged.includeTags, equals(BooleanSelector.all)); | 189 expect(merged.includeTags, equals(BooleanSelector.all)); |
190 expect(merged.excludeTags, equals(BooleanSelector.none)); | 190 expect(merged.excludeTags, equals(BooleanSelector.none)); |
191 }); | 191 }); |
192 | 192 |
193 test("if only the old configuration's is defined, uses it", () { | 193 test("if only the old configuration's is defined, uses it", () { |
194 var merged = new Configuration( | 194 var merged = new Configuration( |
195 includeTags: new BooleanSelector.parse("foo || bar"), | 195 includeTags: new BooleanSelector.parse("foo || bar"), |
196 excludeTags: new BooleanSelector.parse("baz || bang")) | 196 excludeTags: new BooleanSelector.parse("baz || bang")) |
(...skipping 25 matching lines...) Expand all Loading... |
222 excludeTags: new BooleanSelector.parse("qux")); | 222 excludeTags: new BooleanSelector.parse("qux")); |
223 var merged = older.merge(newer); | 223 var merged = older.merge(newer); |
224 | 224 |
225 expect(merged.includeTags, | 225 expect(merged.includeTags, |
226 equals(new BooleanSelector.parse("(foo || bar) && blip"))); | 226 equals(new BooleanSelector.parse("(foo || bar) && blip"))); |
227 expect(merged.excludeTags, | 227 expect(merged.excludeTags, |
228 equals(new BooleanSelector.parse("(baz || bang) || qux"))); | 228 equals(new BooleanSelector.parse("(baz || bang) || qux"))); |
229 }); | 229 }); |
230 }); | 230 }); |
231 | 231 |
| 232 group("for tags", () { |
| 233 test("merges each nested configuration", () { |
| 234 var merged = new Configuration( |
| 235 tags: { |
| 236 new BooleanSelector.parse("foo"): |
| 237 new Configuration(verboseTrace: true), |
| 238 new BooleanSelector.parse("bar"): new Configuration(jsTrace: true) |
| 239 } |
| 240 ).merge(new Configuration( |
| 241 tags: { |
| 242 new BooleanSelector.parse("bar"): new Configuration(jsTrace: false), |
| 243 new BooleanSelector.parse("baz"): new Configuration(skip: true) |
| 244 } |
| 245 )); |
| 246 |
| 247 expect(merged.tags[new BooleanSelector.parse("foo")].verboseTrace, |
| 248 isTrue); |
| 249 expect(merged.tags[new BooleanSelector.parse("bar")].jsTrace, isFalse); |
| 250 expect(merged.tags[new BooleanSelector.parse("baz")].skip, isTrue); |
| 251 }); |
| 252 }); |
| 253 |
232 group("for timeout", () { | 254 group("for timeout", () { |
233 test("if neither is defined, preserves the default", () { | 255 test("if neither is defined, preserves the default", () { |
234 var merged = new Configuration().merge(new Configuration()); | 256 var merged = new Configuration().merge(new Configuration()); |
235 expect(merged.timeout, equals(new Timeout.factor(1))); | 257 expect(merged.timeout, equals(new Timeout.factor(1))); |
236 }); | 258 }); |
237 | 259 |
238 test("if only the old configuration's is defined, uses it", () { | 260 test("if only the old configuration's is defined, uses it", () { |
239 var merged = new Configuration(timeout: new Timeout.factor(2)) | 261 var merged = new Configuration(timeout: new Timeout.factor(2)) |
240 .merge(new Configuration()); | 262 .merge(new Configuration()); |
241 expect(merged.timeout, equals(new Timeout.factor(2))); | 263 expect(merged.timeout, equals(new Timeout.factor(2))); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 expect(merged.onPlatform[new PlatformSelector.parse("vm")].verboseTrace, | 303 expect(merged.onPlatform[new PlatformSelector.parse("vm")].verboseTrace, |
282 isTrue); | 304 isTrue); |
283 expect(merged.onPlatform[new PlatformSelector.parse("chrome")].jsTrace, | 305 expect(merged.onPlatform[new PlatformSelector.parse("chrome")].jsTrace, |
284 isFalse); | 306 isFalse); |
285 expect(merged.onPlatform[new PlatformSelector.parse("firefox")].skip, | 307 expect(merged.onPlatform[new PlatformSelector.parse("firefox")].skip, |
286 isTrue); | 308 isTrue); |
287 }); | 309 }); |
288 }); | 310 }); |
289 }); | 311 }); |
290 } | 312 } |
OLD | NEW |