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

Side by Side Diff: pkg/analyzer/test/generated/bazel_test.dart

Issue 2403723002: Add more tests for BazelPackageUriResolver.resolveAbsolute(). (Closed)
Patch Set: Created 4 years, 2 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
« no previous file with comments | « pkg/analyzer/lib/src/generated/bazel.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) 2016, the Dart project authors. Please see the AUTHORS file 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 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 analyzer.test.generated.bazel_test; 5 library analyzer.test.generated.bazel_test;
6 6
7 import 'package:analyzer/file_system/memory_file_system.dart'; 7 import 'package:analyzer/file_system/memory_file_system.dart';
8 import 'package:analyzer/src/generated/bazel.dart'; 8 import 'package:analyzer/src/generated/bazel.dart';
9 import 'package:analyzer/src/generated/source.dart'; 9 import 'package:analyzer/src/generated/source.dart';
10 import 'package:test/test.dart'; 10 import 'package:test/test.dart';
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 Uri uri = provider.pathContext.toUri(absolutePath); 96 Uri uri = provider.pathContext.toUri(absolutePath);
97 return resolver.resolveAbsolute(uri); 97 return resolver.resolveAbsolute(uri);
98 } 98 }
99 } 99 }
100 100
101 @reflectiveTest 101 @reflectiveTest
102 class BazelPackageUriResolverTest extends _BaseTest { 102 class BazelPackageUriResolverTest extends _BaseTest {
103 BazelWorkspace workspace; 103 BazelWorkspace workspace;
104 BazelPackageUriResolver resolver; 104 BazelPackageUriResolver resolver;
105 105
106 void setUp() { 106 void test_resolveAbsolute_bin() {
107 provider.newFile(_p('/workspace/WORKSPACE'), ''); 107 _addResources([
108 provider.newFolder(_p('/workspace/bazel-genfiles')); 108 '/workspace/WORKSPACE',
109 workspace = BazelWorkspace.find(provider, _p('/workspace')); 109 '/workspace/bazel-genfiles/',
110 resolver = new BazelPackageUriResolver(workspace); 110 '/workspace/my/foo/lib/foo1.dart',
111 provider.newFile(_p('/workspace/my/foo/lib/foo1.dart'), ''); 111 '/workspace/bazel-bin/my/foo/lib/foo1.dart'
112 provider.newFile(_p('/workspace/my/foo/lib/gen1.dart'), ''); 112 ]);
113 provider.newFile(_p('/workspace/my/foo/lib/gen2.dart'), '');
114 provider.newFile(_p('/workspace/my/foo/lib/src/foo4.dart'), '');
115 provider.newFile(_p('/workspace/third_party/dart/bar/lib/bar1.dart'), '');
116 provider.newFile(
117 _p('/workspace/third_party/dart/bar/lib/src/bar2.dart'), '');
118 provider.newFile(_p('/workspace/bazel-bin/my/foo/lib/gen1.dart'), '');
119 provider.newFile(_p('/workspace/bazel-genfiles/my/foo/lib/gen2.dart'), '');
120 provider.newFile(_p('/workspace/bazel-genfiles/my/foo/lib/gen3.dart'), '');
121 }
122
123 void test_resolveAbsolute_inBazelBin() {
124 _assertResolve( 113 _assertResolve(
125 'package:my.foo/gen1.dart', '/workspace/bazel-bin/my/foo/lib/gen1.dart', 114 'package:my.foo/foo1.dart', '/workspace/bazel-bin/my/foo/lib/foo1.dart',
126 exists: true); 115 exists: true);
127 } 116 }
128 117
129 void test_resolveAbsolute_inBazelGenfiles() { 118 void test_resolveAbsolute_bin_notInWorkspace() {
130 _assertResolve('package:my.foo/gen2.dart', 119 _addResources([
131 '/workspace/bazel-genfiles/my/foo/lib/gen2.dart', 120 '/workspace/WORKSPACE',
132 exists: true); 121 '/workspace/bazel-genfiles/',
133 } 122 '/workspace/bazel-bin/my/foo/lib/foo1.dart'
134 123 ]);
135 void test_resolveAbsolute_inBazelGenfiles_notInWorkspace() { 124 _assertResolve(
136 _assertResolve('package:my.foo/gen3.dart', 125 'package:my.foo/foo1.dart', '/workspace/bazel-bin/my/foo/lib/foo1.dart',
137 '/workspace/bazel-genfiles/my/foo/lib/gen3.dart', 126 exists: true);
138 exists: true); 127 }
139 } 128
140 129 void test_resolveAbsolute_genfiles() {
141 void test_resolveAbsolute_inWorkspace_doesNotExist() { 130 _addResources([
131 '/workspace/WORKSPACE',
132 '/workspace/bazel-genfiles/',
133 '/workspace/my/foo/lib/foo1.dart',
134 '/workspace/bazel-genfiles/my/foo/lib/foo1.dart'
135 ]);
136 _assertResolve('package:my.foo/foo1.dart',
137 '/workspace/bazel-genfiles/my/foo/lib/foo1.dart',
138 exists: true);
139 }
140
141 void test_resolveAbsolute_genfiles_notInWorkspace() {
142 _addResources([
143 '/workspace/WORKSPACE',
144 '/workspace/bazel-genfiles/',
145 '/workspace/bazel-genfiles/my/foo/lib/foo1.dart'
146 ]);
147 _assertResolve('package:my.foo/foo1.dart',
148 '/workspace/bazel-genfiles/my/foo/lib/foo1.dart',
149 exists: true);
150 }
151
152 void test_resolveAbsolute_null_noSlash() {
153 _addResources([
154 '/workspace/WORKSPACE',
155 '/workspace/bazel-genfiles/',
156 ]);
157 Source source = resolver.resolveAbsolute(Uri.parse('package:foo'));
158 expect(source, isNull);
159 }
160
161 void test_resolveAbsolute_null_notPackage() {
162 _addResources([
163 '/workspace/WORKSPACE',
164 '/workspace/bazel-genfiles/',
165 ]);
166 Source source = resolver.resolveAbsolute(Uri.parse('dart:async'));
167 expect(source, isNull);
168 }
169
170 void test_resolveAbsolute_null_startsWithSlash() {
171 _addResources([
172 '/workspace/WORKSPACE',
173 '/workspace/bazel-genfiles/',
174 '/workspace/my/foo/lib/bar.dart',
175 ]);
176 Source source =
177 resolver.resolveAbsolute(Uri.parse('package:/foo/bar.dart'));
178 expect(source, isNull);
179 }
180
181 void test_resolveAbsolute_readonly_bin() {
182 _addResources([
183 '/Users/user/test/READONLY/prime/',
184 '/Users/user/test/READONLY/prime/my/foo/lib/foo1.dart',
185 '/Users/user/test/prime/bazel-genfiles/',
186 '/Users/user/test/prime/my/module/',
187 '/Users/user/test/prime/bazel-bin/my/foo/lib/foo1.dart',
188 ], workspacePath: '/Users/user/test/prime/my/module');
189 _assertResolve('package:my.foo/foo1.dart',
190 '/Users/user/test/prime/bazel-bin/my/foo/lib/foo1.dart',
191 exists: true);
192 }
193
194 void test_resolveAbsolute_readonly_bin_notInWorkspace() {
195 _addResources([
196 '/Users/user/test/READONLY/prime/',
197 '/Users/user/test/prime/bazel-genfiles/',
198 '/Users/user/test/prime/my/module/',
199 '/Users/user/test/prime/bazel-bin/my/foo/lib/foo1.dart',
200 ], workspacePath: '/Users/user/test/prime/my/module');
201 _assertResolve('package:my.foo/foo1.dart',
202 '/Users/user/test/prime/bazel-bin/my/foo/lib/foo1.dart',
203 exists: true);
204 }
205
206 void test_resolveAbsolute_readonly_genfiles() {
207 _addResources([
208 '/Users/user/test/READONLY/prime/',
209 '/Users/user/test/READONLY/prime/my/foo/lib/foo1.dart',
210 '/Users/user/test/prime/bazel-genfiles/',
211 '/Users/user/test/prime/my/module/',
212 '/Users/user/test/prime/bazel-genfiles/my/foo/lib/foo1.dart',
213 ], workspacePath: '/Users/user/test/prime/my/module');
214 _assertResolve('package:my.foo/foo1.dart',
215 '/Users/user/test/prime/bazel-genfiles/my/foo/lib/foo1.dart',
216 exists: true);
217 }
218
219 void test_resolveAbsolute_readonly_genfiles_notInWorkspace() {
220 _addResources([
221 '/Users/user/test/READONLY/prime/',
222 '/Users/user/test/prime/bazel-genfiles/',
223 '/Users/user/test/prime/my/module/',
224 '/Users/user/test/prime/bazel-genfiles/my/foo/lib/foo1.dart',
225 ], workspacePath: '/Users/user/test/prime/my/module');
226 _assertResolve('package:my.foo/foo1.dart',
227 '/Users/user/test/prime/bazel-genfiles/my/foo/lib/foo1.dart',
228 exists: true);
229 }
230
231 void test_resolveAbsolute_readonly_thirdParty_bin() {
232 _addResources([
233 '/Users/user/test/READONLY/prime/',
234 '/Users/user/test/READONLY/prime/third_party/dart/foo/lib/foo1.dart',
235 '/Users/user/test/prime/bazel-genfiles/',
236 '/Users/user/test/prime/my/module/',
237 '/Users/user/test/prime/bazel-bin/third_party/dart/foo/lib/foo1.dart',
238 ], workspacePath: '/Users/user/test/prime/my/module');
239 _assertResolve('package:foo/foo1.dart',
240 '/Users/user/test/prime/bazel-bin/third_party/dart/foo/lib/foo1.dart',
241 exists: true);
242 }
243
244 void test_resolveAbsolute_readonly_thirdParty_genfiles() {
245 _addResources([
246 '/Users/user/test/READONLY/prime/',
247 '/Users/user/test/READONLY/prime/third_party/dart/foo/lib/foo1.dart',
248 '/Users/user/test/prime/bazel-genfiles/',
249 '/Users/user/test/prime/my/module/',
250 '/Users/user/test/prime/bazel-genfiles/third_party/dart/foo/lib/foo1.dart' ,
251 ], workspacePath: '/Users/user/test/prime/my/module');
252 _assertResolve('package:foo/foo1.dart',
253 '/Users/user/test/prime/bazel-genfiles/third_party/dart/foo/lib/foo1.dar t',
254 exists: true);
255 }
256
257 void test_resolveAbsolute_readonly_thirdParty_workspace_doesNotExist() {
258 _addResources([
259 '/Users/user/test/READONLY/prime/',
260 '/Users/user/test/READONLY/prime/third_party/dart/foo/lib/foo1.dart',
261 '/Users/user/test/prime/bazel-genfiles/',
262 '/Users/user/test/prime/my/module/',
263 ], workspacePath: '/Users/user/test/prime/my/module');
264 _assertResolve('package:foo/foo2.dart',
265 '/Users/user/test/prime/third_party/dart/foo/lib/foo2.dart',
266 exists: false);
267 }
268
269 void test_resolveAbsolute_readonly_thirdParty_workspace_exists() {
270 _addResources([
271 '/Users/user/test/READONLY/prime/',
272 '/Users/user/test/READONLY/prime/third_party/dart/foo/lib/foo1.dart',
273 '/Users/user/test/prime/bazel-genfiles/',
274 '/Users/user/test/prime/my/module/',
275 ], workspacePath: '/Users/user/test/prime/my/module');
276 _assertResolve('package:foo/foo1.dart',
277 '/Users/user/test/READONLY/prime/third_party/dart/foo/lib/foo1.dart',
278 exists: true);
279 }
280
281 void test_resolveAbsolute_readonly_workspace_doesNotExist() {
282 _addResources([
283 '/Users/user/test/READONLY/prime/',
284 '/Users/user/test/prime/bazel-genfiles/',
285 '/Users/user/test/prime/my/module/',
286 ], workspacePath: '/Users/user/test/prime/my/module');
287 _assertResolve('package:my.foo/foo1.dart',
288 '/Users/user/test/prime/my/foo/lib/foo1.dart',
289 exists: false);
290 }
291
292 void test_resolveAbsolute_readonly_workspace_exists() {
293 _addResources([
294 '/Users/user/test/READONLY/prime/',
295 '/Users/user/test/READONLY/prime/my/foo/lib/foo1.dart',
296 '/Users/user/test/prime/bazel-genfiles/',
297 '/Users/user/test/prime/my/module/',
298 ], workspacePath: '/Users/user/test/prime/my/module');
299 _assertResolve('package:my.foo/foo1.dart',
300 '/Users/user/test/READONLY/prime/my/foo/lib/foo1.dart',
301 exists: true);
302 }
303
304 void test_resolveAbsolute_thirdParty_bin() {
305 _addResources([
306 '/workspace/WORKSPACE',
307 '/workspace/bazel-genfiles/',
308 '/workspace/third_party/dart/foo/lib/foo1.dart',
309 '/workspace/bazel-bin/third_party/dart/foo/lib/foo1.dart',
310 ]);
311 _assertResolve('package:foo/foo1.dart',
312 '/workspace/bazel-bin/third_party/dart/foo/lib/foo1.dart',
313 exists: true);
314 }
315
316 void test_resolveAbsolute_thirdParty_bin_notInWorkspace() {
317 _addResources([
318 '/workspace/WORKSPACE',
319 '/workspace/bazel-genfiles/',
320 '/workspace/bazel-bin/third_party/dart/foo/lib/foo1.dart',
321 ]);
322 _assertResolve('package:foo/foo1.dart',
323 '/workspace/bazel-bin/third_party/dart/foo/lib/foo1.dart',
324 exists: true);
325 }
326
327 void test_resolveAbsolute_thirdParty_doesNotExist() {
328 _addResources([
329 '/workspace/WORKSPACE',
330 '/workspace/bazel-genfiles/',
331 '/workspace/third_party/dart/foo/lib/foo1.dart',
332 ]);
333 _assertResolve('package:foo/foo2.dart',
334 '/workspace/third_party/dart/foo/lib/foo2.dart',
335 exists: false);
336 }
337
338 void test_resolveAbsolute_thirdParty_exists() {
339 _addResources([
340 '/workspace/WORKSPACE',
341 '/workspace/bazel-genfiles/',
342 '/workspace/third_party/dart/foo/lib/foo1.dart',
343 ]);
344 _assertResolve('package:foo/foo1.dart',
345 '/workspace/third_party/dart/foo/lib/foo1.dart',
346 exists: true);
347 }
348
349 void test_resolveAbsolute_thirdParty_genfiles() {
350 _addResources([
351 '/workspace/WORKSPACE',
352 '/workspace/bazel-genfiles/',
353 '/workspace/third_party/dart/foo/lib/foo1.dart',
354 '/workspace/bazel-genfiles/third_party/dart/foo/lib/foo1.dart',
355 ]);
356 _assertResolve('package:foo/foo1.dart',
357 '/workspace/bazel-genfiles/third_party/dart/foo/lib/foo1.dart',
358 exists: true);
359 }
360
361 void test_resolveAbsolute_thirdParty_genfiles_notInWorkspace() {
362 _addResources([
363 '/workspace/WORKSPACE',
364 '/workspace/bazel-genfiles/',
365 '/workspace/bazel-genfiles/third_party/dart/foo/lib/foo1.dart',
366 ]);
367 _assertResolve('package:foo/foo1.dart',
368 '/workspace/bazel-genfiles/third_party/dart/foo/lib/foo1.dart',
369 exists: true);
370 }
371
372 void test_resolveAbsolute_workspace_doesNotExist() {
373 _addResources([
374 '/workspace/WORKSPACE',
375 '/workspace/bazel-genfiles/',
376 ]);
142 _assertResolve('package:my.foo/doesNotExist.dart', 377 _assertResolve('package:my.foo/doesNotExist.dart',
143 '/workspace/my/foo/lib/doesNotExist.dart', 378 '/workspace/my/foo/lib/doesNotExist.dart',
144 exists: false); 379 exists: false);
145 } 380 }
146 381
147 void test_resolveAbsolute_inWorkspace_exists() { 382 void test_resolveAbsolute_workspace_exists() {
383 _addResources([
384 '/workspace/WORKSPACE',
385 '/workspace/bazel-genfiles/',
386 '/workspace/my/foo/lib/foo1.dart',
387 ]);
148 _assertResolve( 388 _assertResolve(
149 'package:my.foo/foo1.dart', '/workspace/my/foo/lib/foo1.dart', 389 'package:my.foo/foo1.dart', '/workspace/my/foo/lib/foo1.dart',
150 exists: true); 390 exists: true);
151 } 391 }
152 392
153 void test_resolveAbsolute_null_noSlash() { 393 void _addResources(List<String> paths, {String workspacePath: '/workspace'}) {
154 Source source = resolver.resolveAbsolute(Uri.parse('package:foo')); 394 for (String path in paths) {
155 expect(source, isNull); 395 if (path.endsWith('/')) {
156 } 396 provider.newFolder(_p(path.substring(0, path.length - 1)));
157 397 } else {
158 void test_resolveAbsolute_null_notPackage() { 398 provider.newFile(_p(path), '');
Brian Wilkerson 2016/10/09 21:35:36 If "_p" is only invoked twice, then perhaps we sho
159 Source source = resolver.resolveAbsolute(Uri.parse('dart:async')); 399 }
160 expect(source, isNull); 400 }
161 } 401 workspace = BazelWorkspace.find(provider, _p(workspacePath));
162 402 resolver = new BazelPackageUriResolver(workspace);
163 void test_resolveAbsolute_null_startsWithSlash() {
164 Source source =
165 resolver.resolveAbsolute(Uri.parse('package:/foo/bar.dart'));
166 expect(source, isNull);
167 }
168
169 void test_resolveAbsolute_thirdParty_doesNotExist() {
170 _assertResolve('package:baz/baz1.dart',
171 '/workspace/third_party/dart/baz/lib/baz1.dart',
172 exists: false);
173 }
174
175 void test_resolveAbsolute_thirdParty_exists() {
176 _assertResolve('package:bar/bar1.dart',
177 '/workspace/third_party/dart/bar/lib/bar1.dart',
178 exists: true);
179 _assertResolve('package:bar/src/bar2.dart',
180 '/workspace/third_party/dart/bar/lib/src/bar2.dart',
181 exists: true);
182 } 403 }
183 404
184 void _assertResolve(String uriStr, String posixPath, {bool exists: true}) { 405 void _assertResolve(String uriStr, String posixPath, {bool exists: true}) {
185 Uri uri = Uri.parse(uriStr); 406 Uri uri = Uri.parse(uriStr);
186 Source source = resolver.resolveAbsolute(uri); 407 Source source = resolver.resolveAbsolute(uri);
187 expect(source, isNotNull); 408 expect(source, isNotNull);
188 expect(source.fullName, _p(posixPath)); 409 expect(source.fullName, _p(posixPath));
189 expect(source.uri, uri); 410 expect(source.uri, uri);
190 expect(source.exists(), exists); 411 expect(source.exists(), exists);
191 } 412 }
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 } 570 }
350 571
351 class _BaseTest { 572 class _BaseTest {
352 final MemoryResourceProvider provider = new MemoryResourceProvider(); 573 final MemoryResourceProvider provider = new MemoryResourceProvider();
353 574
354 /** 575 /**
355 * Return the [provider] specific path for the given Posix [path]. 576 * Return the [provider] specific path for the given Posix [path].
356 */ 577 */
357 String _p(String path) => provider.convertPath(path); 578 String _p(String path) => provider.convertPath(path);
358 } 579 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/bazel.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698