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

Side by Side Diff: packages/package_config/test/discovery_test.dart

Issue 2989763002: Update charted to 0.4.8 and roll (Closed)
Patch Set: Removed Cutch from list of reviewers Created 3 years, 4 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 library package_config.discovery_test; 5 library package_config.discovery_test;
6 6
7 import "dart:async"; 7 import "dart:async";
8 import "dart:io"; 8 import "dart:io";
9 import "package:test/test.dart"; 9 import "package:test/test.dart";
10 import "package:package_config/packages.dart"; 10 import "package:package_config/packages.dart";
11 import "package:package_config/discovery.dart"; 11 import "package:package_config/discovery.dart";
12 import "package:path/path.dart" as path; 12 import "package:path/path.dart" as path;
13 13
14 const packagesFile = """ 14 const packagesFile = """
15 # A comment 15 # A comment
16 foo:file:///dart/packages/foo/ 16 foo:file:///dart/packages/foo/
17 bar:http://example.com/dart/packages/bar/ 17 bar:http://example.com/dart/packages/bar/
18 baz:packages/baz/ 18 baz:packages/baz/
19 """; 19 """;
20 20
21 void validatePackagesFile(Packages resolver, Uri location) { 21 void validatePackagesFile(Packages resolver, Uri location) {
22 expect(resolver, isNotNull); 22 expect(resolver, isNotNull);
23 expect(resolver.resolve(pkg("foo", "bar/baz")), 23 expect(resolver.resolve(pkg("foo", "bar/baz")),
24 equals(Uri.parse("file:///dart/packages/foo/bar/baz"))); 24 equals(Uri.parse("file:///dart/packages/foo/bar/baz")));
25 expect(resolver.resolve(pkg("bar", "baz/qux")), 25 expect(resolver.resolve(pkg("bar", "baz/qux")),
26 equals(Uri.parse("http://example.com/dart/packages/bar/baz/qux"))); 26 equals(Uri.parse("http://example.com/dart/packages/bar/baz/qux")));
27 expect(resolver.resolve(pkg("baz", "qux/foo")), 27 expect(resolver.resolve(pkg("baz", "qux/foo")),
28 equals(location.resolve("packages/baz/qux/foo"))); 28 equals(location.resolve("packages/baz/qux/foo")));
29 expect(resolver.packages, unorderedEquals(["foo", "bar", "baz"])); 29 expect(resolver.packages, unorderedEquals(["foo", "bar", "baz"]));
30 } 30 }
31 31
32 void validatePackagesDir(Packages resolver, Uri location) { 32 void validatePackagesDir(Packages resolver, Uri location) {
33 // Expect three packages: foo, bar and baz 33 // Expect three packages: foo, bar and baz
34 expect(resolver, isNotNull); 34 expect(resolver, isNotNull);
35 expect(resolver.resolve(pkg("foo", "bar/baz")), 35 expect(resolver.resolve(pkg("foo", "bar/baz")),
36 equals(location.resolve("packages/foo/bar/baz"))); 36 equals(location.resolve("packages/foo/bar/baz")));
37 expect(resolver.resolve(pkg("bar", "baz/qux")), 37 expect(resolver.resolve(pkg("bar", "baz/qux")),
38 equals(location.resolve("packages/bar/baz/qux"))); 38 equals(location.resolve("packages/bar/baz/qux")));
39 expect(resolver.resolve(pkg("baz", "qux/foo")), 39 expect(resolver.resolve(pkg("baz", "qux/foo")),
40 equals(location.resolve("packages/baz/qux/foo"))); 40 equals(location.resolve("packages/baz/qux/foo")));
41 if (location.scheme == "file") { 41 if (location.scheme == "file") {
42 expect(resolver.packages, unorderedEquals(["foo", "bar", "baz"])); 42 expect(resolver.packages, unorderedEquals(["foo", "bar", "baz"]));
43 } else { 43 } else {
44 expect(() => resolver.packages, throws); 44 expect(() => resolver.packages, throws);
45 } 45 }
46 } 46 }
47 47
48
49 Uri pkg(String packageName, String packagePath) { 48 Uri pkg(String packageName, String packagePath) {
50 var path; 49 var path;
51 if (packagePath.startsWith('/')) { 50 if (packagePath.startsWith('/')) {
52 path = "$packageName$packagePath"; 51 path = "$packageName$packagePath";
53 } else { 52 } else {
54 path = "$packageName/$packagePath"; 53 path = "$packageName/$packagePath";
55 } 54 }
56 return new Uri(scheme: "package", path: path); 55 return new Uri(scheme: "package", path: path);
57 } 56 }
58 57
59 main() { 58 main() {
60 generalTest(".packages", 59 generalTest(".packages", {
61 {".packages": packagesFile, 60 ".packages": packagesFile,
62 "script.dart": "main(){}", 61 "script.dart": "main(){}",
63 "packages": {"shouldNotBeFound": {}}}, 62 "packages": {"shouldNotBeFound": {}}
64 (Uri location) async { 63 }, (Uri location) async {
65 Packages resolver; 64 Packages resolver;
66 resolver = await findPackages(location); 65 resolver = await findPackages(location);
67 validatePackagesFile(resolver, location); 66 validatePackagesFile(resolver, location);
68 resolver = await findPackages(location.resolve("script.dart")); 67 resolver = await findPackages(location.resolve("script.dart"));
69 validatePackagesFile(resolver, location); 68 validatePackagesFile(resolver, location);
70 var specificDiscovery = (location.scheme == "file") 69 var specificDiscovery = (location.scheme == "file")
71 ? findPackagesFromFile 70 ? findPackagesFromFile
72 : findPackagesFromNonFile; 71 : findPackagesFromNonFile;
73 resolver = await specificDiscovery(location); 72 resolver = await specificDiscovery(location);
74 validatePackagesFile(resolver, location); 73 validatePackagesFile(resolver, location);
75 resolver = await specificDiscovery(location.resolve("script.dart")); 74 resolver = await specificDiscovery(location.resolve("script.dart"));
76 validatePackagesFile(resolver, location); 75 validatePackagesFile(resolver, location);
77 }); 76 });
78 77
79 generalTest("packages/", 78 generalTest("packages/", {
80 {"packages": { "foo": {}, "bar": {}, "baz": {}}, 79 "packages": {"foo": {}, "bar": {}, "baz": {}},
81 "script.dart": "main(){}"}, 80 "script.dart": "main(){}"
82 (Uri location) async { 81 }, (Uri location) async {
83 Packages resolver; 82 Packages resolver;
84 bool isFile = (location.scheme == "file"); 83 bool isFile = (location.scheme == "file");
85 resolver = await findPackages(location); 84 resolver = await findPackages(location);
86 validatePackagesDir(resolver, location); 85 validatePackagesDir(resolver, location);
87 resolver = await findPackages(location.resolve("script.dart")); 86 resolver = await findPackages(location.resolve("script.dart"));
88 validatePackagesDir(resolver, location); 87 validatePackagesDir(resolver, location);
89 var specificDiscovery = isFile 88 var specificDiscovery =
90 ? findPackagesFromFile 89 isFile ? findPackagesFromFile : findPackagesFromNonFile;
91 : findPackagesFromNonFile;
92 resolver = await specificDiscovery(location); 90 resolver = await specificDiscovery(location);
93 validatePackagesDir(resolver, location); 91 validatePackagesDir(resolver, location);
94 resolver = await specificDiscovery(location.resolve("script.dart")); 92 resolver = await specificDiscovery(location.resolve("script.dart"));
95 validatePackagesDir(resolver, location); 93 validatePackagesDir(resolver, location);
96 }); 94 });
97 95
98 generalTest("underscore packages", 96 generalTest("underscore packages", {
99 {"packages": {"_foo": {}}}, 97 "packages": {"_foo": {}}
100 (Uri location) async { 98 }, (Uri location) async {
101 Packages resolver = await findPackages(location); 99 Packages resolver = await findPackages(location);
102 expect(resolver.resolve(pkg("_foo", "foo.dart")), 100 expect(resolver.resolve(pkg("_foo", "foo.dart")),
103 equals(location.resolve("packages/_foo/foo.dart"))); 101 equals(location.resolve("packages/_foo/foo.dart")));
104 }); 102 });
105 103
106 fileTest(".packages recursive", 104 fileTest(".packages recursive", {
107 {".packages": packagesFile, "subdir": {"script.dart": "main(){}"}}, 105 ".packages": packagesFile,
108 (Uri location) async { 106 "subdir": {"script.dart": "main(){}"}
107 }, (Uri location) async {
109 Packages resolver; 108 Packages resolver;
110 resolver = await findPackages(location.resolve("subdir/")); 109 resolver = await findPackages(location.resolve("subdir/"));
111 validatePackagesFile(resolver, location); 110 validatePackagesFile(resolver, location);
112 resolver = await findPackages(location.resolve("subdir/script.dart")); 111 resolver = await findPackages(location.resolve("subdir/script.dart"));
113 validatePackagesFile(resolver, location); 112 validatePackagesFile(resolver, location);
114 resolver = await findPackagesFromFile(location.resolve("subdir/")); 113 resolver = await findPackagesFromFile(location.resolve("subdir/"));
115 validatePackagesFile(resolver, location); 114 validatePackagesFile(resolver, location);
116 resolver = 115 resolver =
117 await findPackagesFromFile(location.resolve("subdir/script.dart")); 116 await findPackagesFromFile(location.resolve("subdir/script.dart"));
118 validatePackagesFile(resolver, location); 117 validatePackagesFile(resolver, location);
119 }); 118 });
120 119
121 httpTest(".packages not recursive", 120 httpTest(".packages not recursive", {
122 {".packages": packagesFile, "subdir": {"script.dart": "main(){}"}}, 121 ".packages": packagesFile,
123 (Uri location) async { 122 "subdir": {"script.dart": "main(){}"}
123 }, (Uri location) async {
124 Packages resolver; 124 Packages resolver;
125 var subdir = location.resolve("subdir/"); 125 var subdir = location.resolve("subdir/");
126 resolver = await findPackages(subdir); 126 resolver = await findPackages(subdir);
127 validatePackagesDir(resolver, subdir); 127 validatePackagesDir(resolver, subdir);
128 resolver = await findPackages(subdir.resolve("script.dart")); 128 resolver = await findPackages(subdir.resolve("script.dart"));
129 validatePackagesDir(resolver, subdir); 129 validatePackagesDir(resolver, subdir);
130 resolver = await findPackagesFromNonFile(subdir); 130 resolver = await findPackagesFromNonFile(subdir);
131 validatePackagesDir(resolver, subdir); 131 validatePackagesDir(resolver, subdir);
132 resolver = await findPackagesFromNonFile(subdir.resolve("script.dart")); 132 resolver = await findPackagesFromNonFile(subdir.resolve("script.dart"));
133 validatePackagesDir(resolver, subdir); 133 validatePackagesDir(resolver, subdir);
134 }); 134 });
135 135
136 fileTest("no packages", 136 fileTest("no packages", {"script.dart": "main(){}"}, (Uri location) async {
137 {"script.dart": "main(){}"},
138 (Uri location) async {
139 // A file: location with no .packages or packages returns 137 // A file: location with no .packages or packages returns
140 // Packages.noPackages. 138 // Packages.noPackages.
141 Packages resolver; 139 Packages resolver;
142 resolver = await findPackages(location); 140 resolver = await findPackages(location);
143 expect(resolver, same(Packages.noPackages)); 141 expect(resolver, same(Packages.noPackages));
144 resolver = await findPackages(location.resolve("script.dart")); 142 resolver = await findPackages(location.resolve("script.dart"));
145 expect(resolver, same(Packages.noPackages)); 143 expect(resolver, same(Packages.noPackages));
146 resolver = findPackagesFromFile(location); 144 resolver = findPackagesFromFile(location);
147 expect(resolver, same(Packages.noPackages)); 145 expect(resolver, same(Packages.noPackages));
148 resolver = findPackagesFromFile(location.resolve("script.dart")); 146 resolver = findPackagesFromFile(location.resolve("script.dart"));
149 expect(resolver, same(Packages.noPackages)); 147 expect(resolver, same(Packages.noPackages));
150 }); 148 });
151 149
152 httpTest("no packages", 150 httpTest("no packages", {"script.dart": "main(){}"}, (Uri location) async {
153 {"script.dart": "main(){}"},
154 (Uri location) async {
155 // A non-file: location with no .packages or packages/: 151 // A non-file: location with no .packages or packages/:
156 // Assumes a packages dir exists, and resolves relative to that. 152 // Assumes a packages dir exists, and resolves relative to that.
157 Packages resolver; 153 Packages resolver;
158 resolver = await findPackages(location); 154 resolver = await findPackages(location);
159 validatePackagesDir(resolver, location); 155 validatePackagesDir(resolver, location);
160 resolver = await findPackages(location.resolve("script.dart")); 156 resolver = await findPackages(location.resolve("script.dart"));
161 validatePackagesDir(resolver, location); 157 validatePackagesDir(resolver, location);
162 resolver = await findPackagesFromNonFile(location); 158 resolver = await findPackagesFromNonFile(location);
163 validatePackagesDir(resolver, location); 159 validatePackagesDir(resolver, location);
164 resolver = await findPackagesFromNonFile(location.resolve("script.dart")); 160 resolver = await findPackagesFromNonFile(location.resolve("script.dart"));
165 validatePackagesDir(resolver, location); 161 validatePackagesDir(resolver, location);
166 }); 162 });
167 163
168 test(".packages w/ loader", () async { 164 test(".packages w/ loader", () async {
169 Uri location = Uri.parse("krutch://example.com/path/"); 165 Uri location = Uri.parse("krutch://example.com/path/");
170 Future loader(Uri file) async { 166 Future<List<int>> loader(Uri file) async {
171 if (file.path.endsWith(".packages")) { 167 if (file.path.endsWith(".packages")) {
172 return packagesFile.codeUnits; 168 return packagesFile.codeUnits;
173 } 169 }
174 throw "not found"; 170 throw "not found";
175 } 171 }
176 // A non-file: location with no .packages or packages/: 172 // A non-file: location with no .packages or packages/:
177 // Assumes a packages dir exists, and resolves relative to that. 173 // Assumes a packages dir exists, and resolves relative to that.
178 Packages resolver; 174 Packages resolver;
179 resolver = await findPackages(location, loader: loader); 175 resolver = await findPackages(location, loader: loader);
180 validatePackagesFile(resolver, location); 176 validatePackagesFile(resolver, location);
181 resolver = await findPackages(location.resolve("script.dart"), 177 resolver =
182 loader: loader); 178 await findPackages(location.resolve("script.dart"), loader: loader);
183 validatePackagesFile(resolver, location); 179 validatePackagesFile(resolver, location);
184 resolver = await findPackagesFromNonFile(location, loader: loader); 180 resolver = await findPackagesFromNonFile(location, loader: loader);
185 validatePackagesFile(resolver, location); 181 validatePackagesFile(resolver, location);
186 resolver = await findPackagesFromNonFile(location.resolve("script.dart"), 182 resolver = await findPackagesFromNonFile(location.resolve("script.dart"),
187 loader: loader); 183 loader: loader);
188 validatePackagesFile(resolver, location); 184 validatePackagesFile(resolver, location);
189 }); 185 });
190 186
191 test("no packages w/ loader", () async { 187 test("no packages w/ loader", () async {
192 Uri location = Uri.parse("krutch://example.com/path/"); 188 Uri location = Uri.parse("krutch://example.com/path/");
193 Future loader(Uri file) async { 189 Future<List<int>> loader(Uri file) async {
194 throw "not found"; 190 throw "not found";
195 } 191 }
196 // A non-file: location with no .packages or packages/: 192 // A non-file: location with no .packages or packages/:
197 // Assumes a packages dir exists, and resolves relative to that. 193 // Assumes a packages dir exists, and resolves relative to that.
198 Packages resolver; 194 Packages resolver;
199 resolver = await findPackages(location, loader: loader); 195 resolver = await findPackages(location, loader: loader);
200 validatePackagesDir(resolver, location); 196 validatePackagesDir(resolver, location);
201 resolver = await findPackages(location.resolve("script.dart"), 197 resolver =
202 loader: loader); 198 await findPackages(location.resolve("script.dart"), loader: loader);
203 validatePackagesDir(resolver, location); 199 validatePackagesDir(resolver, location);
204 resolver = await findPackagesFromNonFile(location, loader: loader); 200 resolver = await findPackagesFromNonFile(location, loader: loader);
205 validatePackagesDir(resolver, location); 201 validatePackagesDir(resolver, location);
206 resolver = await findPackagesFromNonFile(location.resolve("script.dart"), 202 resolver = await findPackagesFromNonFile(location.resolve("script.dart"),
207 loader:loader); 203 loader: loader);
208 validatePackagesDir(resolver, location); 204 validatePackagesDir(resolver, location);
209 }); 205 });
210 206
211 generalTest("loadPackagesFile", 207 generalTest("loadPackagesFile", {".packages": packagesFile},
212 {".packages": packagesFile}, 208 (Uri directory) async {
213 (Uri directory) async {
214 Uri file = directory.resolve(".packages"); 209 Uri file = directory.resolve(".packages");
215 Packages resolver = await loadPackagesFile(file); 210 Packages resolver = await loadPackagesFile(file);
216 validatePackagesFile(resolver, file); 211 validatePackagesFile(resolver, file);
217 }); 212 });
218 213
219 generalTest("loadPackagesFile non-default name", 214 generalTest(
220 {"pheldagriff": packagesFile}, 215 "loadPackagesFile non-default name", {"pheldagriff": packagesFile},
221 (Uri directory) async { 216 (Uri directory) async {
222 Uri file = directory.resolve("pheldagriff"); 217 Uri file = directory.resolve("pheldagriff");
223 Packages resolver = await loadPackagesFile(file); 218 Packages resolver = await loadPackagesFile(file);
224 validatePackagesFile(resolver, file); 219 validatePackagesFile(resolver, file);
225 }); 220 });
226 221
227 test("loadPackagesFile w/ loader", () async { 222 test("loadPackagesFile w/ loader", () async {
228 loader(Uri uri) async => packagesFile.codeUnits; 223 Future<List<int>> loader(Uri uri) async => packagesFile.codeUnits;
229 Uri file = Uri.parse("krutz://example.com/.packages"); 224 Uri file = Uri.parse("krutz://example.com/.packages");
230 Packages resolver = await loadPackagesFile(file, loader: loader); 225 Packages resolver = await loadPackagesFile(file, loader: loader);
231 validatePackagesFile(resolver, file); 226 validatePackagesFile(resolver, file);
232 }); 227 });
233 228
234 generalTest("loadPackagesFile not found", 229 generalTest("loadPackagesFile not found", {}, (Uri directory) async {
235 {},
236 (Uri directory) async {
237 Uri file = directory.resolve(".packages"); 230 Uri file = directory.resolve(".packages");
238 expect(loadPackagesFile(file), throws); 231 expect(loadPackagesFile(file), throws);
239 }); 232 });
240 233
241 generalTest("loadPackagesFile syntax error", 234 generalTest("loadPackagesFile syntax error", {".packages": "syntax error"},
242 {".packages": "syntax error"}, 235 (Uri directory) async {
243 (Uri directory) async {
244 Uri file = directory.resolve(".packages"); 236 Uri file = directory.resolve(".packages");
245 expect(loadPackagesFile(file), throws); 237 expect(loadPackagesFile(file), throws);
246 }); 238 });
247 239
248 generalTest("getPackagesDir", 240 generalTest("getPackagesDir", {
249 {"packages": {"foo": {}, "bar": {}, "baz": {}}}, 241 "packages": {"foo": {}, "bar": {}, "baz": {}}
250 (Uri directory) async { 242 }, (Uri directory) async {
251 Uri packages = directory.resolve("packages/"); 243 Uri packages = directory.resolve("packages/");
252 Packages resolver = getPackagesDirectory(packages); 244 Packages resolver = getPackagesDirectory(packages);
253 Uri resolved = resolver.resolve(pkg("foo","flip/flop")); 245 Uri resolved = resolver.resolve(pkg("foo", "flip/flop"));
254 expect(resolved, packages.resolve("foo/flip/flop")); 246 expect(resolved, packages.resolve("foo/flip/flop"));
255 }); 247 });
256 } 248 }
257 249
258 /// Create a directory structure from [description] and run [fileTest]. 250 /// Create a directory structure from [description] and run [fileTest].
259 /// 251 ///
260 /// Description is a map, each key is a file entry. If the value is a map, 252 /// Description is a map, each key is a file entry. If the value is a map,
261 /// it's a sub-dir, otherwise it's a file and the value is the content 253 /// it's a sub-dir, otherwise it's a file and the value is the content
262 /// as a string. 254 /// as a string.
263 void fileTest(String name, 255 void fileTest(String name, Map description, Future fileTest(Uri directory)) {
264 Map description,
265 Future fileTest(Uri directory)) {
266 group("file-test", () { 256 group("file-test", () {
267 Directory tempDir = Directory.systemTemp.createTempSync("file-test"); 257 Directory tempDir = Directory.systemTemp.createTempSync("file-test");
268 setUp(() { 258 setUp(() {
269 _createFiles(tempDir, description); 259 _createFiles(tempDir, description);
270 }); 260 });
271 tearDown(() { 261 tearDown(() {
272 tempDir.deleteSync(recursive: true); 262 tempDir.deleteSync(recursive: true);
273 }); 263 });
274 test(name, () => fileTest(new Uri.file(path.join(tempDir.path, ".")))); 264 test(name, () => fileTest(new Uri.file(path.join(tempDir.path, "."))));
275 }); 265 });
276 } 266 }
277 267
278 /// HTTP-server the directory structure from [description] and run [htpTest]. 268 /// HTTP-server the directory structure from [description] and run [htpTest].
279 /// 269 ///
280 /// Description is a map, each key is a file entry. If the value is a map, 270 /// Description is a map, each key is a file entry. If the value is a map,
281 /// it's a sub-dir, otherwise it's a file and the value is the content 271 /// it's a sub-dir, otherwise it's a file and the value is the content
282 /// as a string. 272 /// as a string.
283 void httpTest(String name, Map description, Future httpTest(Uri directory)) { 273 void httpTest(String name, Map description, Future httpTest(Uri directory)) {
284 group("http-test", () { 274 group("http-test", () {
285 var serverSub; 275 var serverSub;
286 var uri; 276 var uri;
287 setUp(() { 277 setUp(() {
288 return HttpServer 278 return HttpServer.bind(InternetAddress.LOOPBACK_IP_V4, 0).then((server) {
289 .bind(InternetAddress.LOOPBACK_IP_V4, 0) 279 uri = new Uri(
290 .then((server) { 280 scheme: "http", host: "127.0.0.1", port: server.port, path: "/");
291 uri = new Uri(scheme: "http", 281 serverSub = server.listen((HttpRequest request) {
292 host: "127.0.0.1", 282 // No error handling.
293 port: server.port, 283 var path = request.uri.path;
294 path: "/"); 284 if (path.startsWith('/')) path = path.substring(1);
295 serverSub = server.listen((HttpRequest request) { 285 if (path.endsWith('/')) path = path.substring(0, path.length - 1);
296 // No error handling. 286 var parts = path.split('/');
297 var path = request.uri.path; 287 var fileOrDir = description;
298 if (path.startsWith('/')) path = path.substring(1); 288 for (int i = 0; i < parts.length; i++) {
299 if (path.endsWith('/')) path = path.substring(0, path.length - 1); 289 fileOrDir = fileOrDir[parts[i]];
300 var parts = path.split('/'); 290 if (fileOrDir == null) {
301 var fileOrDir = description; 291 request.response.statusCode = 404;
302 for (int i = 0; i < parts.length; i++) { 292 request.response.close();
303 fileOrDir = fileOrDir[parts[i]];
304 if (fileOrDir == null) {
305 request.response.statusCode = 404;
306 request.response.close();
307 }
308 } 293 }
309 request.response.write(fileOrDir); 294 }
310 request.response.close(); 295 request.response.write(fileOrDir);
311 }); 296 request.response.close();
312 }); 297 });
298 });
313 }); 299 });
314 tearDown(() => serverSub.cancel()); 300 tearDown(() => serverSub.cancel());
315 test(name, () => httpTest(uri)); 301 test(name, () => httpTest(uri));
316 }); 302 });
317 } 303 }
318 304
319 void generalTest(String name, Map description, Future action(Uri location)) { 305 void generalTest(String name, Map description, Future action(Uri location)) {
320 fileTest(name, description, action); 306 fileTest(name, description, action);
321 httpTest(name, description, action); 307 httpTest(name, description, action);
322 } 308 }
323 309
324 void _createFiles(Directory target, Map description) { 310 void _createFiles(Directory target, Map description) {
325 description.forEach((name, content) { 311 description.forEach((name, content) {
326 if (content is Map) { 312 if (content is Map) {
327 Directory subDir = new Directory(path.join(target.path, name)); 313 Directory subDir = new Directory(path.join(target.path, name));
328 subDir.createSync(); 314 subDir.createSync();
329 _createFiles(subDir, content); 315 _createFiles(subDir, content);
330 } else { 316 } else {
331 File file = new File(path.join(target.path, name)); 317 File file = new File(path.join(target.path, name));
332 file.writeAsStringSync(content, flush: true); 318 file.writeAsStringSync(content, flush: true);
333 } 319 }
334 }); 320 });
335 } 321 }
OLDNEW
« no previous file with comments | « packages/package_config/test/discovery_analysis_test.dart ('k') | packages/package_config/test/parse_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698