| 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 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"; |
| (...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 var path = request.uri.path; | 283 var path = request.uri.path; |
| 284 if (path.startsWith('/')) path = path.substring(1); | 284 if (path.startsWith('/')) path = path.substring(1); |
| 285 if (path.endsWith('/')) path = path.substring(0, path.length - 1); | 285 if (path.endsWith('/')) path = path.substring(0, path.length - 1); |
| 286 var parts = path.split('/'); | 286 var parts = path.split('/'); |
| 287 var fileOrDir = description; | 287 var fileOrDir = description; |
| 288 for (int i = 0; i < parts.length; i++) { | 288 for (int i = 0; i < parts.length; i++) { |
| 289 fileOrDir = fileOrDir[parts[i]]; | 289 fileOrDir = fileOrDir[parts[i]]; |
| 290 if (fileOrDir == null) { | 290 if (fileOrDir == null) { |
| 291 request.response.statusCode = 404; | 291 request.response.statusCode = 404; |
| 292 request.response.close(); | 292 request.response.close(); |
| 293 return; |
| 293 } | 294 } |
| 294 } | 295 } |
| 295 request.response.write(fileOrDir); | 296 request.response.write(fileOrDir); |
| 296 request.response.close(); | 297 request.response.close(); |
| 297 }); | 298 }); |
| 298 }); | 299 }); |
| 299 }); | 300 }); |
| 300 tearDown(() => serverSub.cancel()); | 301 tearDown(() => serverSub.cancel()); |
| 301 test(name, () => httpTest(uri)); | 302 test(name, () => httpTest(uri)); |
| 302 }); | 303 }); |
| 303 } | 304 } |
| 304 | 305 |
| 305 void generalTest(String name, Map description, Future action(Uri location)) { | 306 void generalTest(String name, Map description, Future action(Uri location)) { |
| 306 fileTest(name, description, action); | 307 fileTest(name, description, action); |
| 307 httpTest(name, description, action); | 308 httpTest(name, description, action); |
| 308 } | 309 } |
| 309 | 310 |
| 310 void _createFiles(Directory target, Map description) { | 311 void _createFiles(Directory target, Map description) { |
| 311 description.forEach((name, content) { | 312 description.forEach((name, content) { |
| 312 if (content is Map) { | 313 if (content is Map) { |
| 313 Directory subDir = new Directory(path.join(target.path, name)); | 314 Directory subDir = new Directory(path.join(target.path, name)); |
| 314 subDir.createSync(); | 315 subDir.createSync(); |
| 315 _createFiles(subDir, content); | 316 _createFiles(subDir, content); |
| 316 } else { | 317 } else { |
| 317 File file = new File(path.join(target.path, name)); | 318 File file = new File(path.join(target.path, name)); |
| 318 file.writeAsStringSync(content, flush: true); | 319 file.writeAsStringSync(content, flush: true); |
| 319 } | 320 } |
| 320 }); | 321 }); |
| 321 } | 322 } |
| OLD | NEW |