Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 | |
| 5 @TestOn("vm") | |
| 6 | |
| 7 import 'dart:io'; | |
|
kevmoo
2016/02/03 23:01:56
dart:io, dart:convert, scheduled_test/descriptor a
| |
| 8 import 'dart:convert'; | |
| 9 | |
| 10 import 'package:path/path.dart' as p; | |
| 11 import 'package:scheduled_test/descriptor.dart' as d; | |
| 12 import 'package:test/test.dart'; | |
| 13 | |
| 14 import 'package:test/src/backend/test_platform.dart'; | |
| 15 import 'package:test/src/runner/configuration.dart'; | |
| 16 import 'package:test/src/runner/configuration/values.dart'; | |
| 17 import 'package:test/src/util/io.dart'; | |
| 18 | |
| 19 void main() { | |
| 20 group("merge", () { | |
| 21 group("for most fields", () { | |
| 22 test("if neither is defined, preserves the default", () { | |
| 23 var merged = new Configuration().merge(new Configuration()); | |
| 24 expect(merged.help, isFalse); | |
| 25 expect(merged.version, isFalse); | |
| 26 expect(merged.verboseTrace, isFalse); | |
| 27 expect(merged.jsTrace, isFalse); | |
| 28 expect(merged.pauseAfterLoad, isFalse); | |
| 29 expect(merged.color, equals(canUseSpecialChars)); | |
| 30 expect(merged.packageRoot, equals(p.join(p.current, 'packages'))); | |
| 31 expect(merged.reporter, equals(defaultReporter)); | |
| 32 expect(merged.pubServeUrl, isNull); | |
| 33 expect(merged.pattern, isNull); | |
| 34 expect(merged.platforms, equals([TestPlatform.vm])); | |
| 35 expect(merged.paths, equals(["test"])); | |
| 36 }); | |
| 37 | |
| 38 test("if only the old configuration's is defined, uses it", () { | |
| 39 var merged = new Configuration( | |
| 40 help: true, | |
| 41 version: true, | |
| 42 verboseTrace: true, | |
| 43 jsTrace: true, | |
| 44 pauseAfterLoad: true, | |
| 45 color: true, | |
| 46 packageRoot: "root", | |
| 47 reporter: "json", | |
| 48 pubServePort: 1234, | |
| 49 pattern: "foo", | |
| 50 platforms: [TestPlatform.chrome], | |
| 51 paths: ["bar"]) | |
| 52 .merge(new Configuration()); | |
| 53 | |
| 54 expect(merged.help, isTrue); | |
| 55 expect(merged.version, isTrue); | |
| 56 expect(merged.verboseTrace, isTrue); | |
| 57 expect(merged.jsTrace, isTrue); | |
| 58 expect(merged.pauseAfterLoad, isTrue); | |
| 59 expect(merged.color, isTrue); | |
| 60 expect(merged.packageRoot, equals("root")); | |
| 61 expect(merged.reporter, equals("json")); | |
| 62 expect(merged.pubServeUrl.port, equals(1234)); | |
| 63 expect(merged.pattern, equals("foo")); | |
| 64 expect(merged.platforms, equals([TestPlatform.chrome])); | |
| 65 expect(merged.paths, equals(["bar"])); | |
| 66 }); | |
| 67 | |
| 68 test("if only the new configuration's is defined, uses it", () { | |
| 69 var merged = new Configuration().merge(new Configuration( | |
| 70 help: true, | |
| 71 version: true, | |
| 72 verboseTrace: true, | |
| 73 jsTrace: true, | |
| 74 pauseAfterLoad: true, | |
| 75 color: true, | |
| 76 packageRoot: "root", | |
| 77 reporter: "json", | |
| 78 pubServePort: 1234, | |
| 79 pattern: "foo", | |
| 80 platforms: [TestPlatform.chrome], | |
| 81 paths: ["bar"])); | |
| 82 | |
| 83 expect(merged.help, isTrue); | |
| 84 expect(merged.version, isTrue); | |
| 85 expect(merged.verboseTrace, isTrue); | |
| 86 expect(merged.jsTrace, isTrue); | |
| 87 expect(merged.pauseAfterLoad, isTrue); | |
| 88 expect(merged.color, isTrue); | |
| 89 expect(merged.packageRoot, equals("root")); | |
| 90 expect(merged.reporter, equals("json")); | |
| 91 expect(merged.pubServeUrl.port, equals(1234)); | |
| 92 expect(merged.pattern, equals("foo")); | |
| 93 expect(merged.platforms, equals([TestPlatform.chrome])); | |
| 94 expect(merged.paths, equals(["bar"])); | |
| 95 }); | |
| 96 | |
| 97 test("if the two configurations conflict, uses the new configuration's " | |
| 98 "values", () { | |
| 99 var older = new Configuration( | |
| 100 help: true, | |
| 101 version: false, | |
| 102 verboseTrace: true, | |
| 103 jsTrace: false, | |
| 104 pauseAfterLoad: true, | |
| 105 color: false, | |
| 106 packageRoot: "root", | |
| 107 reporter: "json", | |
| 108 pubServePort: 1234, | |
| 109 pattern: "foo", | |
| 110 platforms: [TestPlatform.chrome], | |
| 111 paths: ["bar"]); | |
| 112 var newer = new Configuration( | |
| 113 help: false, | |
| 114 version: true, | |
| 115 verboseTrace: false, | |
| 116 jsTrace: true, | |
| 117 pauseAfterLoad: false, | |
| 118 color: true, | |
| 119 packageRoot: "boot", | |
| 120 reporter: "compact", | |
| 121 pubServePort: 5678, | |
| 122 pattern: "gonk", | |
| 123 platforms: [TestPlatform.dartium], | |
| 124 paths: ["blech"]); | |
| 125 var merged = older.merge(newer); | |
| 126 | |
| 127 expect(merged.help, isFalse); | |
| 128 expect(merged.version, isTrue); | |
| 129 expect(merged.verboseTrace, isFalse); | |
| 130 expect(merged.jsTrace, isTrue); | |
| 131 expect(merged.pauseAfterLoad, isFalse); | |
| 132 expect(merged.color, isTrue); | |
| 133 expect(merged.packageRoot, equals("boot")); | |
| 134 expect(merged.reporter, equals("compact")); | |
| 135 expect(merged.pubServeUrl.port, equals(5678)); | |
| 136 expect(merged.pattern, equals("gonk")); | |
| 137 expect(merged.platforms, equals([TestPlatform.dartium])); | |
| 138 expect(merged.paths, equals(["blech"])); | |
| 139 }); | |
| 140 }); | |
| 141 | |
| 142 group("for tags", () { | |
| 143 test("if neither is defined, preserves the default", () { | |
| 144 var merged = new Configuration().merge(new Configuration()); | |
| 145 expect(merged.tags, isEmpty); | |
| 146 expect(merged.excludeTags, isEmpty); | |
| 147 }); | |
| 148 | |
| 149 test("if only the old configuration's is defined, uses it", () { | |
| 150 var merged = new Configuration( | |
| 151 tags: ["foo", "bar"], | |
| 152 excludeTags: ["baz", "bang"]) | |
| 153 .merge(new Configuration()); | |
| 154 | |
| 155 expect(merged.tags, unorderedEquals(["foo", "bar"])); | |
| 156 expect(merged.excludeTags, unorderedEquals(["baz", "bang"])); | |
| 157 }); | |
| 158 | |
| 159 test("if only the new configuration's is defined, uses it", () { | |
| 160 var merged = new Configuration().merge(new Configuration( | |
| 161 tags: ["foo", "bar"], | |
| 162 excludeTags: ["baz", "bang"])); | |
| 163 | |
| 164 expect(merged.tags, unorderedEquals(["foo", "bar"])); | |
| 165 expect(merged.excludeTags, unorderedEquals(["baz", "bang"])); | |
| 166 }); | |
| 167 | |
| 168 test("if both are defined, unions them", () { | |
| 169 var older = new Configuration( | |
| 170 tags: ["foo", "bar"], | |
| 171 excludeTags: ["baz", "bang"]); | |
| 172 var newer = new Configuration( | |
| 173 tags: ["bar", "blip"], | |
| 174 excludeTags: ["bang", "qux"]); | |
| 175 var merged = older.merge(newer); | |
| 176 | |
| 177 expect(merged.tags, unorderedEquals(["foo", "bar", "blip"])); | |
| 178 expect(merged.excludeTags, unorderedEquals(["baz", "bang", "qux"])); | |
| 179 }); | |
| 180 }); | |
| 181 | |
| 182 group("for timeout", () { | |
| 183 test("if neither is defined, preserves the default", () { | |
| 184 var merged = new Configuration().merge(new Configuration()); | |
| 185 expect(merged.timeout, equals(new Timeout.factor(1))); | |
| 186 }); | |
| 187 | |
| 188 test("if only the old configuration's is defined, uses it", () { | |
| 189 var merged = new Configuration(timeout: new Timeout.factor(2)) | |
| 190 .merge(new Configuration()); | |
| 191 expect(merged.timeout, equals(new Timeout.factor(2))); | |
| 192 }); | |
| 193 | |
| 194 test("if only the new configuration's is defined, uses it", () { | |
| 195 var merged = new Configuration() | |
| 196 .merge(new Configuration(timeout: new Timeout.factor(2))); | |
| 197 expect(merged.timeout, equals(new Timeout.factor(2))); | |
| 198 }); | |
| 199 | |
| 200 test("if both are defined, merges them", () { | |
| 201 var older = new Configuration(timeout: new Timeout.factor(2)); | |
| 202 var newer = new Configuration(timeout: new Timeout.factor(3)); | |
| 203 var merged = older.merge(newer); | |
| 204 expect(merged.timeout, equals(new Timeout.factor(6))); | |
| 205 }); | |
| 206 | |
| 207 test("if the merge conflicts, prefers the new value", () { | |
| 208 var older = new Configuration( | |
| 209 timeout: new Timeout(new Duration(seconds: 1))); | |
| 210 var newer = new Configuration( | |
| 211 timeout: new Timeout(new Duration(seconds: 2))); | |
| 212 var merged = older.merge(newer); | |
| 213 expect(merged.timeout, equals(new Timeout(new Duration(seconds: 2)))); | |
| 214 }); | |
| 215 }); | |
| 216 }); | |
| 217 } | |
| OLD | NEW |