| 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'; |
| 11 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 11 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 12 | 12 |
| 13 main() { | 13 main() { |
| 14 defineReflectiveSuite(() { | 14 defineReflectiveSuite(() { |
| 15 defineReflectiveTests(BazelFileUriResolverTest); | 15 defineReflectiveTests(BazelFileUriResolverTest); |
| 16 defineReflectiveTests(BazelPackageUriResolverTest); | 16 defineReflectiveTests(BazelPackageUriResolverTest); |
| 17 defineReflectiveTests(BazelWorkspaceTest); | 17 defineReflectiveTests(BazelWorkspaceTest); |
| 18 }); | 18 }); |
| 19 } | 19 } |
| 20 | 20 |
| 21 @reflectiveTest | 21 @reflectiveTest |
| 22 class BazelFileUriResolverTest extends _BaseTest { | 22 class BazelFileUriResolverTest extends _BaseTest { |
| 23 BazelWorkspace workspace; | 23 BazelWorkspace workspace; |
| 24 BazelFileUriResolver resolver; | 24 BazelFileUriResolver resolver; |
| 25 | 25 |
| 26 void setUp() { | 26 void setUp() { |
| 27 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 27 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 28 provider.newFolder(_p('/workspace/bazel-genfiles')); |
| 28 workspace = BazelWorkspace.find(provider, _p('/workspace')); | 29 workspace = BazelWorkspace.find(provider, _p('/workspace')); |
| 29 resolver = new BazelFileUriResolver(workspace); | 30 resolver = new BazelFileUriResolver(workspace); |
| 30 provider.newFile(_p('/workspace/test.dart'), ''); | 31 provider.newFile(_p('/workspace/test.dart'), ''); |
| 31 provider.newFile(_p('/workspace/bazel-bin/gen1.dart'), ''); | 32 provider.newFile(_p('/workspace/bazel-bin/gen1.dart'), ''); |
| 32 provider.newFile(_p('/workspace/bazel-genfiles/gen2.dart'), ''); | 33 provider.newFile(_p('/workspace/bazel-genfiles/gen2.dart'), ''); |
| 33 } | 34 } |
| 34 | 35 |
| 35 void test_resolveAbsolute_doesNotExist() { | 36 void test_resolveAbsolute_doesNotExist() { |
| 36 Source source = _resolvePath('/workspace/foo.dart'); | 37 Source source = _resolvePath('/workspace/foo.dart'); |
| 37 expect(source, isNotNull); | 38 expect(source, isNotNull); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 } | 98 } |
| 98 } | 99 } |
| 99 | 100 |
| 100 @reflectiveTest | 101 @reflectiveTest |
| 101 class BazelPackageUriResolverTest extends _BaseTest { | 102 class BazelPackageUriResolverTest extends _BaseTest { |
| 102 BazelWorkspace workspace; | 103 BazelWorkspace workspace; |
| 103 BazelPackageUriResolver resolver; | 104 BazelPackageUriResolver resolver; |
| 104 | 105 |
| 105 void setUp() { | 106 void setUp() { |
| 106 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 107 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 108 provider.newFolder(_p('/workspace/bazel-genfiles')); |
| 107 workspace = BazelWorkspace.find(provider, _p('/workspace')); | 109 workspace = BazelWorkspace.find(provider, _p('/workspace')); |
| 108 resolver = new BazelPackageUriResolver(workspace); | 110 resolver = new BazelPackageUriResolver(workspace); |
| 109 provider.newFile(_p('/workspace/my/foo/lib/foo1.dart'), ''); | 111 provider.newFile(_p('/workspace/my/foo/lib/foo1.dart'), ''); |
| 110 provider.newFile(_p('/workspace/my/foo/lib/gen1.dart'), ''); | 112 provider.newFile(_p('/workspace/my/foo/lib/gen1.dart'), ''); |
| 111 provider.newFile(_p('/workspace/my/foo/lib/gen2.dart'), ''); | 113 provider.newFile(_p('/workspace/my/foo/lib/gen2.dart'), ''); |
| 112 provider.newFile(_p('/workspace/my/foo/lib/src/foo4.dart'), ''); | 114 provider.newFile(_p('/workspace/my/foo/lib/src/foo4.dart'), ''); |
| 113 provider.newFile(_p('/workspace/third_party/dart/bar/lib/bar1.dart'), ''); | 115 provider.newFile(_p('/workspace/third_party/dart/bar/lib/bar1.dart'), ''); |
| 114 provider.newFile( | 116 provider.newFile( |
| 115 _p('/workspace/third_party/dart/bar/lib/src/bar2.dart'), ''); | 117 _p('/workspace/third_party/dart/bar/lib/src/bar2.dart'), ''); |
| 116 provider.newFile(_p('/workspace/bazel-bin/my/foo/lib/gen1.dart'), ''); | 118 provider.newFile(_p('/workspace/bazel-bin/my/foo/lib/gen1.dart'), ''); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 Source source = resolver.resolveAbsolute(uri); | 186 Source source = resolver.resolveAbsolute(uri); |
| 185 expect(source, isNotNull); | 187 expect(source, isNotNull); |
| 186 expect(source.fullName, _p(posixPath)); | 188 expect(source.fullName, _p(posixPath)); |
| 187 expect(source.uri, uri); | 189 expect(source.uri, uri); |
| 188 expect(source.exists(), exists); | 190 expect(source.exists(), exists); |
| 189 } | 191 } |
| 190 } | 192 } |
| 191 | 193 |
| 192 @reflectiveTest | 194 @reflectiveTest |
| 193 class BazelWorkspaceTest extends _BaseTest { | 195 class BazelWorkspaceTest extends _BaseTest { |
| 196 void test_factory_null_noWorkspaceMarkers_inRoot() { |
| 197 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/')); |
| 198 expect(workspace, isNull); |
| 199 } |
| 200 |
| 201 void test_factory_null_noWorkspaceMarkers_inRoot_withReadonly() { |
| 202 BazelWorkspace workspace = |
| 203 BazelWorkspace.find(provider, _p('/'), readonlySuffix: 'READONLY'); |
| 204 expect(workspace, isNull); |
| 205 } |
| 206 |
| 194 void test_find_fail_notAbsolute() { | 207 void test_find_fail_notAbsolute() { |
| 195 expect(() => BazelWorkspace.find(provider, _p('not_absolute')), | 208 expect(() => BazelWorkspace.find(provider, _p('not_absolute')), |
| 196 throwsArgumentError); | 209 throwsArgumentError); |
| 197 } | 210 } |
| 198 | 211 |
| 199 void test_find_hasReadonlyFolder() { | 212 void test_find_hasReadonlyFolder() { |
| 200 provider.newFolder(_p('/Users/user/test/READONLY/prime')); | 213 provider.newFolder(_p('/Users/user/test/READONLY/prime')); |
| 201 provider.newFolder(_p('/Users/user/test/prime')); | 214 provider.newFolder(_p('/Users/user/test/prime')); |
| 215 provider.newFolder(_p('/Users/user/test/prime/bazel-genfiles')); |
| 202 BazelWorkspace workspace = BazelWorkspace.find( | 216 BazelWorkspace workspace = BazelWorkspace.find( |
| 203 provider, _p('/Users/user/test/prime/my/module'), | 217 provider, _p('/Users/user/test/prime/my/module'), |
| 204 readonlySuffix: 'prime'); | 218 readonlySuffix: 'prime'); |
| 205 expect(workspace.root, _p('/Users/user/test/prime')); | 219 expect(workspace.root, _p('/Users/user/test/prime')); |
| 206 expect(workspace.readonly, _p('/Users/user/test/READONLY/prime')); | 220 expect(workspace.readonly, _p('/Users/user/test/READONLY/prime')); |
| 207 expect(workspace.bin, _p('/Users/user/test/prime/bazel-bin')); | 221 expect(workspace.bin, _p('/Users/user/test/prime/bazel-bin')); |
| 208 expect(workspace.genfiles, _p('/Users/user/test/prime/bazel-genfiles')); | 222 expect(workspace.genfiles, _p('/Users/user/test/prime/bazel-genfiles')); |
| 209 } | 223 } |
| 210 | 224 |
| 225 void test_find_hasReadonlyFolder_blaze() { |
| 226 provider.newFolder(_p('/Users/user/test/READONLY/prime')); |
| 227 provider.newFolder(_p('/Users/user/test/prime')); |
| 228 provider.newFolder(_p('/Users/user/test/prime/blaze-genfiles')); |
| 229 BazelWorkspace workspace = BazelWorkspace.find( |
| 230 provider, _p('/Users/user/test/prime/my/module'), |
| 231 readonlySuffix: 'prime'); |
| 232 expect(workspace.root, _p('/Users/user/test/prime')); |
| 233 expect(workspace.readonly, _p('/Users/user/test/READONLY/prime')); |
| 234 expect(workspace.bin, _p('/Users/user/test/prime/blaze-bin')); |
| 235 expect(workspace.genfiles, _p('/Users/user/test/prime/blaze-genfiles')); |
| 236 } |
| 237 |
| 211 void test_find_hasWorkspaceFile() { | 238 void test_find_hasWorkspaceFile() { |
| 212 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 239 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 240 provider.newFolder(_p('/workspace/bazel-genfiles')); |
| 213 BazelWorkspace workspace = | 241 BazelWorkspace workspace = |
| 214 BazelWorkspace.find(provider, _p('/workspace/my/module')); | 242 BazelWorkspace.find(provider, _p('/workspace/my/module')); |
| 215 expect(workspace.root, _p('/workspace')); | 243 expect(workspace.root, _p('/workspace')); |
| 216 expect(workspace.readonly, isNull); | 244 expect(workspace.readonly, isNull); |
| 217 expect(workspace.bin, _p('/workspace/bazel-bin')); | 245 expect(workspace.bin, _p('/workspace/bazel-bin')); |
| 218 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); | 246 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); |
| 219 } | 247 } |
| 220 | 248 |
| 221 void test_find_hasWorkspaceFile_forModuleInWorkspace() { | 249 void test_find_hasWorkspaceFile_forModuleInWorkspace() { |
| 222 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 250 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 251 provider.newFolder(_p('/workspace/bazel-genfiles')); |
| 223 BazelWorkspace workspace = | 252 BazelWorkspace workspace = |
| 224 BazelWorkspace.find(provider, _p('/workspace/my/module')); | 253 BazelWorkspace.find(provider, _p('/workspace/my/module')); |
| 225 expect(workspace.root, _p('/workspace')); | 254 expect(workspace.root, _p('/workspace')); |
| 226 expect(workspace.readonly, isNull); | 255 expect(workspace.readonly, isNull); |
| 227 expect(workspace.bin, _p('/workspace/bazel-bin')); | 256 expect(workspace.bin, _p('/workspace/bazel-bin')); |
| 228 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); | 257 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); |
| 229 } | 258 } |
| 230 | 259 |
| 231 void test_find_hasWorkspaceFile_forWorkspace() { | 260 void test_find_hasWorkspaceFile_forWorkspace() { |
| 232 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 261 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 233 provider.newFolder(_p('/workspace/bazel-bin')); | 262 provider.newFolder(_p('/workspace/bazel-genfiles')); |
| 234 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/workspace')); | 263 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/workspace')); |
| 235 expect(workspace.root, _p('/workspace')); | 264 expect(workspace.root, _p('/workspace')); |
| 236 expect(workspace.readonly, isNull); | 265 expect(workspace.readonly, isNull); |
| 237 expect(workspace.bin, _p('/workspace/bazel-bin')); | 266 expect(workspace.bin, _p('/workspace/bazel-bin')); |
| 238 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); | 267 expect(workspace.genfiles, _p('/workspace/bazel-genfiles')); |
| 239 } | 268 } |
| 240 | 269 |
| 270 void test_find_hasWorkspaceFile_forWorkspace_blaze() { |
| 271 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 272 provider.newFolder(_p('/workspace/blaze-genfiles')); |
| 273 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/workspace')); |
| 274 expect(workspace.root, _p('/workspace')); |
| 275 expect(workspace.readonly, isNull); |
| 276 expect(workspace.bin, _p('/workspace/blaze-bin')); |
| 277 expect(workspace.genfiles, _p('/workspace/blaze-genfiles')); |
| 278 } |
| 279 |
| 241 void test_find_null_noWorkspaceMarkers() { | 280 void test_find_null_noWorkspaceMarkers() { |
| 242 BazelWorkspace workspace = | 281 BazelWorkspace workspace = |
| 243 BazelWorkspace.find(provider, _p('/workspace/my/module')); | 282 BazelWorkspace.find(provider, _p('/workspace/my/module')); |
| 244 expect(workspace, isNull); | 283 expect(workspace, isNull); |
| 245 } | 284 } |
| 246 | 285 |
| 247 void test_find_null_noWorkspaceMarkers_inRoot() { | 286 void test_find_null_noWorkspaceMarkers_inRoot() { |
| 248 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/')); | 287 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/')); |
| 249 expect(workspace, isNull); | 288 expect(workspace, isNull); |
| 250 } | 289 } |
| 251 | 290 |
| 252 void test_find_null_noWorkspaceMarkers_inRoot_withReadonly() { | 291 void test_find_null_noWorkspaceMarkers_inRoot_withReadonly() { |
| 253 BazelWorkspace workspace = | 292 BazelWorkspace workspace = |
| 254 BazelWorkspace.find(provider, _p('/'), readonlySuffix: 'READONLY'); | 293 BazelWorkspace.find(provider, _p('/'), readonlySuffix: 'READONLY'); |
| 255 expect(workspace, isNull); | 294 expect(workspace, isNull); |
| 256 } | 295 } |
| 257 | 296 |
| 258 void test_find_symlinkPrefix() { | 297 void test_find_null_symlinkPrefix() { |
| 259 provider.newFile(_p('/workspace/WORKSPACE'), ''); | 298 provider.newFile(_p('/workspace/WORKSPACE'), ''); |
| 260 BazelWorkspace workspace = BazelWorkspace.find(provider, _p('/workspace'), | 299 BazelWorkspace workspace = |
| 261 symlinkPrefix: 'foobar'); | 300 BazelWorkspace.find(provider, _p('/workspace/my/module')); |
| 262 expect(workspace.root, _p('/workspace')); | 301 expect(workspace, isNull); |
| 263 expect(workspace.readonly, isNull); | |
| 264 expect(workspace.bin, _p('/workspace/foobar-bin')); | |
| 265 expect(workspace.genfiles, _p('/workspace/foobar-genfiles')); | |
| 266 } | 302 } |
| 267 | 303 |
| 268 void test_findFile_hasReadonlyFolder() { | 304 void test_findFile_hasReadonlyFolder() { |
| 269 provider.newFolder(_p('/Users/user/test/READONLY/prime')); | 305 provider.newFolder(_p('/Users/user/test/READONLY/prime')); |
| 270 provider.newFolder(_p('/Users/user/test/prime')); | 306 provider.newFolder(_p('/Users/user/test/prime')); |
| 271 provider.newFile(_p('/Users/user/test/prime/my/module/test1.dart'), ''); | 307 provider.newFile(_p('/Users/user/test/prime/my/module/test1.dart'), ''); |
| 272 provider.newFile(_p('/Users/user/test/prime/my/module/test2.dart'), ''); | 308 provider.newFile(_p('/Users/user/test/prime/my/module/test2.dart'), ''); |
| 273 provider.newFile(_p('/Users/user/test/prime/my/module/test3.dart'), ''); | 309 provider.newFile(_p('/Users/user/test/prime/my/module/test3.dart'), ''); |
| 274 provider.newFile( | 310 provider.newFile( |
| 275 _p('/Users/user/test/prime/bazel-bin/my/module/test2.dart'), ''); | 311 _p('/Users/user/test/prime/bazel-bin/my/module/test2.dart'), ''); |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 } | 357 } |
| 322 | 358 |
| 323 class _BaseTest { | 359 class _BaseTest { |
| 324 final MemoryResourceProvider provider = new MemoryResourceProvider(); | 360 final MemoryResourceProvider provider = new MemoryResourceProvider(); |
| 325 | 361 |
| 326 /** | 362 /** |
| 327 * Return the [provider] specific path for the given Posix [path]. | 363 * Return the [provider] specific path for the given Posix [path]. |
| 328 */ | 364 */ |
| 329 String _p(String path) => provider.convertPath(path); | 365 String _p(String path) => provider.convertPath(path); |
| 330 } | 366 } |
| OLD | NEW |