Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |