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

Side by Side Diff: pkg/analyzer/test/source/package_map_resolver_test.dart

Issue 426793002: Test for the 'importing a package library' fix. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 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 | Annotate | Revision Log
« no previous file with comments | « pkg/analyzer/lib/source/package_map_resolver.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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.source.package_map_resolver; 5 library test.source.package_map_resolver;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/file_system/file_system.dart'; 9 import 'package:analyzer/file_system/file_system.dart';
10 import 'package:analyzer/file_system/memory_file_system.dart'; 10 import 'package:analyzer/file_system/memory_file_system.dart';
11 import 'package:analyzer/source/package_map_resolver.dart';
11 import 'package:analyzer/src/generated/source.dart'; 12 import 'package:analyzer/src/generated/source.dart';
12 import 'package:unittest/unittest.dart'; 13 import 'package:unittest/unittest.dart';
13 import 'package:analyzer/source/package_map_resolver.dart';
14 14
15 15
16 main() { 16 main() {
17 groupSep = ' | '; 17 groupSep = ' | ';
18 group('PackageMapUriResolverTest', () { 18 group('PackageMapUriResolverTest', () {
19 test('fromEncoding_nonPackage', () { 19 test('fromEncoding_nonPackage', () {
20 new _PackageMapUriResolverTest().test_fromEncoding_nonPackage(); 20 new _PackageMapUriResolverTest().test_fromEncoding_nonPackage();
21 }); 21 });
22 test('fromEncoding_package', () { 22 test('fromEncoding_package', () {
23 new _PackageMapUriResolverTest().test_fromEncoding_package(); 23 new _PackageMapUriResolverTest().test_fromEncoding_package();
(...skipping 10 matching lines...) Expand all
34 test('resolve_multiple_folders', () { 34 test('resolve_multiple_folders', () {
35 new _PackageMapUriResolverTest().test_resolve_multiple_folders(); 35 new _PackageMapUriResolverTest().test_resolve_multiple_folders();
36 }); 36 });
37 test('resolve_nonPackage', () { 37 test('resolve_nonPackage', () {
38 new _PackageMapUriResolverTest().test_resolve_nonPackage(); 38 new _PackageMapUriResolverTest().test_resolve_nonPackage();
39 }); 39 });
40 test('resolve_OK', () { 40 test('resolve_OK', () {
41 new _PackageMapUriResolverTest().test_resolve_OK(); 41 new _PackageMapUriResolverTest().test_resolve_OK();
42 }); 42 });
43 test('resolve_package_invalid_leadingSlash', () { 43 test('resolve_package_invalid_leadingSlash', () {
44 new _PackageMapUriResolverTest().test_resolve_package_invalid_leadingSlash (); 44 var inst = new _PackageMapUriResolverTest();
45 inst.test_resolve_package_invalid_leadingSlash();
45 }); 46 });
46 test('resolve_package_invalid_noSlash', () { 47 test('resolve_package_invalid_noSlash', () {
47 new _PackageMapUriResolverTest().test_resolve_package_invalid_noSlash(); 48 new _PackageMapUriResolverTest().test_resolve_package_invalid_noSlash();
48 }); 49 });
49 test('resolve_package_invalid_onlySlash', () { 50 test('resolve_package_invalid_onlySlash', () {
50 new _PackageMapUriResolverTest().test_resolve_package_invalid_onlySlash(); 51 new _PackageMapUriResolverTest().test_resolve_package_invalid_onlySlash();
51 }); 52 });
52 test('resolve_package_notInMap', () { 53 test('resolve_package_notInMap', () {
53 new _PackageMapUriResolverTest().test_resolve_package_notInMap(); 54 new _PackageMapUriResolverTest().test_resolve_package_notInMap();
54 }); 55 });
56 test('restoreAbsolute_OK', () {
57 new _PackageMapUriResolverTest().test_restoreAbsolute();
58 });
55 }); 59 });
56 } 60 }
57 61
58 62
59 class _PackageMapUriResolverTest { 63 class _PackageMapUriResolverTest {
60 static HashMap EMPTY_MAP = new HashMap<String, List<Folder>>(); 64 static HashMap EMPTY_MAP = new HashMap<String, List<Folder>>();
61 MemoryResourceProvider provider = new MemoryResourceProvider(); 65 MemoryResourceProvider provider = new MemoryResourceProvider();
62 66
63 void test_fromEncoding_nonPackage() { 67 void test_fromEncoding_nonPackage() {
64 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); 68 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP);
(...skipping 26 matching lines...) Expand all
91 Uri uri = Uri.parse('memfs:/foo.dart'); 95 Uri uri = Uri.parse('memfs:/foo.dart');
92 expect(uri.scheme, 'memfs'); 96 expect(uri.scheme, 'memfs');
93 expect(PackageMapUriResolver.isPackageUri(uri), isFalse); 97 expect(PackageMapUriResolver.isPackageUri(uri), isFalse);
94 } 98 }
95 99
96 void test_resolve_OK() { 100 void test_resolve_OK() {
97 const pkgFileA = '/pkgA/lib/libA.dart'; 101 const pkgFileA = '/pkgA/lib/libA.dart';
98 const pkgFileB = '/pkgB/lib/libB.dart'; 102 const pkgFileB = '/pkgB/lib/libB.dart';
99 provider.newFile(pkgFileA, 'library lib_a;'); 103 provider.newFile(pkgFileA, 'library lib_a;');
100 provider.newFile(pkgFileB, 'library lib_b;'); 104 provider.newFile(pkgFileB, 'library lib_b;');
101 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, 105 PackageMapUriResolver resolver =
102 <String, List<Folder>>{ 106 new PackageMapUriResolver(provider, <String, List<Folder>>{
103 'pkgA': [provider.getResource('/pkgA/lib/')], 107 'pkgA': [provider.getResource('/pkgA/lib/')],
104 'pkgB': [provider.getResource('/pkgB/lib/')] 108 'pkgB': [provider.getResource('/pkgB/lib/')]
105 }); 109 });
106 { 110 {
107 Uri uri = Uri.parse('package:pkgA/libA.dart'); 111 Uri uri = Uri.parse('package:pkgA/libA.dart');
108 Source result = resolver.resolveAbsolute(uri); 112 Source result = resolver.resolveAbsolute(uri);
109 expect(result, isNotNull); 113 expect(result, isNotNull);
110 expect(result.exists(), isTrue); 114 expect(result.exists(), isTrue);
111 expect(result.uriKind, UriKind.PACKAGE_URI); 115 expect(result.uriKind, UriKind.PACKAGE_URI);
112 expect(result.fullName, pkgFileA); 116 expect(result.fullName, pkgFileA);
113 } 117 }
114 { 118 {
115 Uri uri = Uri.parse('package:pkgB/libB.dart'); 119 Uri uri = Uri.parse('package:pkgB/libB.dart');
116 Source result = resolver.resolveAbsolute(uri); 120 Source result = resolver.resolveAbsolute(uri);
117 expect(result, isNotNull); 121 expect(result, isNotNull);
118 expect(result.exists(), isTrue); 122 expect(result.exists(), isTrue);
119 expect(result.uriKind, UriKind.PACKAGE_URI); 123 expect(result.uriKind, UriKind.PACKAGE_URI);
120 expect(result.fullName, pkgFileB); 124 expect(result.fullName, pkgFileB);
121 } 125 }
122 } 126 }
123 127
124 void test_resolve_multiple_folders() { 128 void test_resolve_multiple_folders() {
125 const pkgFileA = '/part1/lib/libA.dart'; 129 const pkgFileA = '/part1/lib/libA.dart';
126 const pkgFileB = '/part2/lib/libB.dart'; 130 const pkgFileB = '/part2/lib/libB.dart';
127 provider.newFile(pkgFileA, 'library lib_a'); 131 provider.newFile(pkgFileA, 'library lib_a');
128 provider.newFile(pkgFileB, 'library lib_b'); 132 provider.newFile(pkgFileB, 'library lib_b');
129 PackageMapUriResolver resolver = new PackageMapUriResolver(provider, 133 PackageMapUriResolver resolver =
130 <String, List<Folder>>{ 134 new PackageMapUriResolver(provider, <String, List<Folder>>{
131 'pkg': [provider.getResource('/part1/lib/'), 135 'pkg': [
132 provider.getResource('/part2/lib/')] 136 provider.getResource('/part1/lib/'),
137 provider.getResource('/part2/lib/')]
133 }); 138 });
134 { 139 {
135 Uri uri = Uri.parse('package:pkg/libA.dart'); 140 Uri uri = Uri.parse('package:pkg/libA.dart');
136 Source result = resolver.resolveAbsolute(uri); 141 Source result = resolver.resolveAbsolute(uri);
137 expect(result, isNotNull); 142 expect(result, isNotNull);
138 expect(result.exists(), isTrue); 143 expect(result.exists(), isTrue);
139 expect(result.uriKind, UriKind.PACKAGE_URI); 144 expect(result.uriKind, UriKind.PACKAGE_URI);
140 expect(result.fullName, pkgFileA); 145 expect(result.fullName, pkgFileA);
141 } 146 }
142 { 147 {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 } 183 }
179 184
180 void test_resolve_package_notInMap() { 185 void test_resolve_package_notInMap() {
181 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP); 186 UriResolver resolver = new PackageMapUriResolver(provider, EMPTY_MAP);
182 Uri uri = Uri.parse('package:analyzer/analyzer.dart'); 187 Uri uri = Uri.parse('package:analyzer/analyzer.dart');
183 Source result = resolver.resolveAbsolute(uri); 188 Source result = resolver.resolveAbsolute(uri);
184 expect(result, isNotNull); 189 expect(result, isNotNull);
185 expect(result.exists(), isFalse); 190 expect(result.exists(), isFalse);
186 expect(result.fullName, 'package:analyzer/analyzer.dart'); 191 expect(result.fullName, 'package:analyzer/analyzer.dart');
187 } 192 }
193
194 void test_restoreAbsolute() {
195 const pkgFileA = '/pkgA/lib/libA.dart';
196 const pkgFileB = '/pkgB/lib/src/libB.dart';
197 provider.newFile(pkgFileA, 'library lib_a;');
198 provider.newFile(pkgFileB, 'library lib_b;');
199 PackageMapUriResolver resolver =
200 new PackageMapUriResolver(provider, <String, List<Folder>>{
201 'pkgA': [provider.getResource('/pkgA/lib/')],
202 'pkgB': [provider.getResource('/pkgB/lib/')]
203 });
204 {
205 Source source = _createFileSource('/pkgA/lib/libA.dart');
206 Uri uri = resolver.restoreAbsolute(source);
207 expect(uri, isNotNull);
208 expect(uri.path, 'package:pkgA/libA.dart');
209 }
210 {
211 Source source = _createFileSource('/pkgB/lib/src/libB.dart');
212 Uri uri = resolver.restoreAbsolute(source);
213 expect(uri, isNotNull);
214 expect(uri.path, 'package:pkgB/src/libB.dart');
215 }
216 {
217 Source source = _createFileSource('/no/such/file');
218 Uri uri = resolver.restoreAbsolute(source);
219 expect(uri, isNull);
220 }
221 }
222
223 Source _createFileSource(String path) {
224 return new NonExistingSource(path, UriKind.FILE_URI);
225 }
188 } 226 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/source/package_map_resolver.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698