| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 test.resolver.package; | 5 library test.resolver.package; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/package_uri_resolver.dart'; | 7 import 'package:analysis_server/src/package_uri_resolver.dart'; |
| 8 import 'package:analysis_server/src/resource.dart'; | 8 import 'package:analysis_server/src/resource.dart'; |
| 9 import 'package:analyzer/src/generated/source.dart'; | 9 import 'package:analyzer/src/generated/source.dart'; |
| 10 import 'package:unittest/unittest.dart'; | 10 import 'package:unittest/unittest.dart'; |
| 11 | 11 |
| 12 import 'reflective_tests.dart'; | 12 import 'reflective_tests.dart'; |
| 13 | 13 |
| 14 main() { | 14 main() { |
| 15 groupSep = ' | '; | 15 groupSep = ' | '; |
| 16 | 16 |
| 17 group('PackageMapUriResolver', () { | 17 group('PackageMapUriResolver', () { |
| 18 runReflectiveTests(_PackageMapUriResolverTest); | 18 runReflectiveTests(_PackageMapUriResolverTest); |
| 19 }); | 19 }); |
| 20 } | 20 } |
| 21 | 21 |
| 22 | 22 |
| 23 @ReflectiveTestCase() | 23 @ReflectiveTestCase() |
| 24 class _PackageMapUriResolverTest { | 24 class _PackageMapUriResolverTest { |
| 25 static const EMPTY_MAP = const <String, Folder>{}; | 25 static const EMPTY_MAP = const <String, List<Folder>>{}; |
| 26 MemoryResourceProvider provider = new MemoryResourceProvider(); | 26 MemoryResourceProvider provider = new MemoryResourceProvider(); |
| 27 | 27 |
| 28 setUp() { | 28 setUp() { |
| 29 } | 29 } |
| 30 | 30 |
| 31 tearDown() { | 31 tearDown() { |
| 32 } | 32 } |
| 33 | 33 |
| 34 void test_isPackageUri() { | 34 void test_isPackageUri() { |
| 35 Uri uri = Uri.parse('package:test/test.dart'); | 35 Uri uri = Uri.parse('package:test/test.dart'); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 63 expect(uri.scheme, 'memfs'); | 63 expect(uri.scheme, 'memfs'); |
| 64 expect(PackageMapUriResolver.isPackageUri(uri), isFalse); | 64 expect(PackageMapUriResolver.isPackageUri(uri), isFalse); |
| 65 } | 65 } |
| 66 | 66 |
| 67 void test_resolve_OK() { | 67 void test_resolve_OK() { |
| 68 const pkgFileA = '/pkgA/lib/libA.dart'; | 68 const pkgFileA = '/pkgA/lib/libA.dart'; |
| 69 const pkgFileB = '/pkgB/lib/libB.dart'; | 69 const pkgFileB = '/pkgB/lib/libB.dart'; |
| 70 provider.newFile(pkgFileA, 'library lib_a;'); | 70 provider.newFile(pkgFileA, 'library lib_a;'); |
| 71 provider.newFile(pkgFileB, 'library lib_b;'); | 71 provider.newFile(pkgFileB, 'library lib_b;'); |
| 72 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, | 72 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, |
| 73 <String, Folder>{ | 73 <String, List<Folder>>{ |
| 74 'pkgA': provider.getResource('/pkgA/lib/'), | 74 'pkgA': [provider.getResource('/pkgA/lib/')], |
| 75 'pkgB': provider.getResource('/pkgB/lib/') | 75 'pkgB': [provider.getResource('/pkgB/lib/')] |
| 76 }); | 76 }); |
| 77 { | 77 { |
| 78 Uri uri = Uri.parse('package:pkgA/libA.dart'); | 78 Uri uri = Uri.parse('package:pkgA/libA.dart'); |
| 79 Source result = resolver.resolveAbsolute(uri); | 79 Source result = resolver.resolveAbsolute(uri); |
| 80 expect(result, isNotNull); | 80 expect(result, isNotNull); |
| 81 expect(result.exists(), isTrue); | 81 expect(result.exists(), isTrue); |
| 82 expect(result.uriKind, UriKind.PACKAGE_URI); | 82 expect(result.uriKind, UriKind.PACKAGE_URI); |
| 83 expect(result.fullName, pkgFileA); | 83 expect(result.fullName, pkgFileA); |
| 84 } | 84 } |
| 85 { | 85 { |
| 86 Uri uri = Uri.parse('package:pkgB/libB.dart'); | 86 Uri uri = Uri.parse('package:pkgB/libB.dart'); |
| 87 Source result = resolver.resolveAbsolute(uri); | 87 Source result = resolver.resolveAbsolute(uri); |
| 88 expect(result, isNotNull); | 88 expect(result, isNotNull); |
| 89 expect(result.exists(), isTrue); | 89 expect(result.exists(), isTrue); |
| 90 expect(result.uriKind, UriKind.PACKAGE_URI); | 90 expect(result.uriKind, UriKind.PACKAGE_URI); |
| 91 expect(result.fullName, pkgFileB); | 91 expect(result.fullName, pkgFileB); |
| 92 } | 92 } |
| 93 } | 93 } |
| 94 | 94 |
| 95 void test_resolve_multiple_folders() { |
| 96 const pkgFileA = '/part1/lib/libA.dart'; |
| 97 const pkgFileB = '/part2/lib/libB.dart'; |
| 98 provider.newFile(pkgFileA, 'library lib_a'); |
| 99 provider.newFile(pkgFileB, 'library lib_b'); |
| 100 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, |
| 101 <String, List<Folder>>{ |
| 102 'pkg': [provider.getResource('/part1/lib/'), |
| 103 provider.getResource('/part2/lib/')] |
| 104 }); |
| 105 { |
| 106 Uri uri = Uri.parse('package:pkg/libA.dart'); |
| 107 Source result = resolver.resolveAbsolute(uri); |
| 108 expect(result, isNotNull); |
| 109 expect(result.exists(), isTrue); |
| 110 expect(result.uriKind, UriKind.PACKAGE_URI); |
| 111 expect(result.fullName, pkgFileA); |
| 112 } |
| 113 { |
| 114 Uri uri = Uri.parse('package:pkg/libB.dart'); |
| 115 Source result = resolver.resolveAbsolute(uri); |
| 116 expect(result, isNotNull); |
| 117 expect(result.exists(), isTrue); |
| 118 expect(result.uriKind, UriKind.PACKAGE_URI); |
| 119 expect(result.fullName, pkgFileB); |
| 120 } |
| 121 } |
| 122 |
| 95 void test_resolve_nonPackage() { | 123 void test_resolve_nonPackage() { |
| 96 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); | 124 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); |
| 97 Uri uri = Uri.parse('dart:core'); | 125 Uri uri = Uri.parse('dart:core'); |
| 98 Source result = resolver.resolveAbsolute(uri); | 126 Source result = resolver.resolveAbsolute(uri); |
| 99 expect(result, isNull); | 127 expect(result, isNull); |
| 100 } | 128 } |
| 101 | 129 |
| 102 void test_resolve_package_invalid_leadingSlash() { | 130 void test_resolve_package_invalid_leadingSlash() { |
| 103 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); | 131 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); |
| 104 Uri uri = Uri.parse('package:/foo'); | 132 Uri uri = Uri.parse('package:/foo'); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 122 | 150 |
| 123 void test_resolve_package_notInMap() { | 151 void test_resolve_package_notInMap() { |
| 124 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); | 152 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); |
| 125 Uri uri = Uri.parse('package:analyzer/analyzer.dart'); | 153 Uri uri = Uri.parse('package:analyzer/analyzer.dart'); |
| 126 Source result = resolver.resolveAbsolute(uri); | 154 Source result = resolver.resolveAbsolute(uri); |
| 127 expect(result, isNotNull); | 155 expect(result, isNotNull); |
| 128 expect(result.exists(), isFalse); | 156 expect(result.exists(), isFalse); |
| 129 expect(result.fullName, 'package:analyzer/analyzer.dart'); | 157 expect(result.fullName, 'package:analyzer/analyzer.dart'); |
| 130 } | 158 } |
| 131 } | 159 } |
| OLD | NEW |