Chromium Code Reviews| Index: pkg/analyzer/test/generated/bazel_test.dart |
| diff --git a/pkg/analyzer/test/generated/bazel_test.dart b/pkg/analyzer/test/generated/bazel_test.dart |
| index 2f06a7b2021c7bc25628d470774733b360af6e6e..1de2eba3d08e33094d82819256de9038172c8efe 100644 |
| --- a/pkg/analyzer/test/generated/bazel_test.dart |
| +++ b/pkg/analyzer/test/generated/bazel_test.dart |
| @@ -4,7 +4,6 @@ |
| library analyzer.test.generated.bazel_test; |
| -import 'package:analyzer/file_system/file_system.dart'; |
| import 'package:analyzer/file_system/memory_file_system.dart'; |
| import 'package:analyzer/src/generated/bazel.dart'; |
| import 'package:analyzer/src/generated/source.dart'; |
| @@ -15,92 +14,82 @@ import '../utils.dart'; |
| main() { |
| initializeTestEnvironment(); |
| + defineReflectiveTests(BazelWorkspaceTest); |
| defineReflectiveTests(BazelFileUriResolverTest); |
| } |
| @reflectiveTest |
| class BazelFileUriResolverTest { |
| MemoryResourceProvider provider; |
| - Folder workspace; |
| - List<Folder> buildDirs; |
| - ResourceUriResolver resolver; |
| + BazelWorkspace workspace; |
| + BazelFileUriResolver resolver; |
| + |
| + /** |
| + * Prepare platform path. |
| + */ |
| + String ppp(String path) { |
|
Brian Wilkerson
2016/10/05 22:01:11
?!? I know 'provider.convertPath' is longer, I fin
|
| + return provider.convertPath(path); |
| + } |
| void setUp() { |
| provider = new MemoryResourceProvider(); |
| - workspace = provider.newFolder(provider.convertPath('/workspace')); |
| - buildDirs = [ |
| - provider.newFolder(provider.convertPath('/workspace/one')), |
| - provider.newFolder(provider.convertPath('/workspace/two')) |
| - ]; |
| - resolver = new BazelFileUriResolver(provider, workspace, buildDirs); |
| - provider.newFile(provider.convertPath('/workspace/test.dart'), ''); |
| - provider.newFile(provider.convertPath('/workspace/one/gen1.dart'), ''); |
| - provider.newFile(provider.convertPath('/workspace/two/gen2.dart'), ''); |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + workspace = new BazelWorkspace(provider, ppp('/workspace')); |
| + resolver = new BazelFileUriResolver(workspace); |
| + provider.newFile(ppp('/workspace/test.dart'), ''); |
| + provider.newFile(ppp('/workspace/bazel-bin/gen1.dart'), ''); |
| + provider.newFile(ppp('/workspace/bazel-genfiles/gen2.dart'), ''); |
| } |
| - void test_creation() { |
| - expect(provider, isNotNull); |
| - expect(workspace, isNotNull); |
| - expect(buildDirs, isNotNull); |
| - expect(buildDirs.length, 2); |
| - expect(resolver, isNotNull); |
| + void test_resolveAbsolute_doesNotExist() { |
| + Source source = _resolvePath('/workspace/foo.dart'); |
| + expect(source, isNotNull); |
| + expect(source.exists(), isFalse); |
| + expect(source.fullName, ppp('/workspace/foo.dart')); |
| } |
| void test_resolveAbsolute_file() { |
| - var uri = provider.pathContext |
| - .toUri(provider.convertPath('/workspace/test.dart')); |
| - Source source = resolver.resolveAbsolute(uri); |
| + Source source = _resolvePath('/workspace/test.dart'); |
| expect(source, isNotNull); |
| expect(source.exists(), isTrue); |
| - expect(source.fullName, provider.convertPath('/workspace/test.dart')); |
| + expect(source.fullName, ppp('/workspace/test.dart')); |
| } |
| void test_resolveAbsolute_folder() { |
| - var uri = provider.pathContext.toUri(provider.convertPath('/workspace')); |
| - Source source = resolver.resolveAbsolute(uri); |
| - expect(source, isNull); |
| - } |
| - |
| - void test_resolveAbsolute_generated_file_does_not_exist_three() { |
| - var uri = provider.pathContext |
| - .toUri(provider.convertPath('/workspace/gen3.dart')); |
| - Source source = resolver.resolveAbsolute(uri); |
| - expect(source, isNull); |
| + Source source = _resolvePath('/workspace'); |
| + expect(source, isNotNull); |
| + expect(source.exists(), isFalse); |
| + expect(source.fullName, ppp('/workspace')); |
| } |
| void test_resolveAbsolute_generated_file_exists_one() { |
| - var uri = provider.pathContext |
| - .toUri(provider.convertPath('/workspace/gen1.dart')); |
| - Source source = resolver.resolveAbsolute(uri); |
| + Source source = _resolvePath('/workspace/gen1.dart'); |
| expect(source, isNotNull); |
| expect(source.exists(), isTrue); |
| - expect(source.fullName, provider.convertPath('/workspace/one/gen1.dart')); |
| + expect(source.fullName, ppp('/workspace/bazel-bin/gen1.dart')); |
| } |
| void test_resolveAbsolute_generated_file_exists_two() { |
| - var uri = provider.pathContext |
| - .toUri(provider.convertPath('/workspace/gen2.dart')); |
| - Source source = resolver.resolveAbsolute(uri); |
| + Source source = _resolvePath('/workspace/gen2.dart'); |
| expect(source, isNotNull); |
| expect(source.exists(), isTrue); |
| - expect(source.fullName, provider.convertPath('/workspace/two/gen2.dart')); |
| + expect(source.fullName, ppp('/workspace/bazel-genfiles/gen2.dart')); |
| } |
| void test_resolveAbsolute_notFile_dartUri() { |
| - var uri = new Uri(scheme: 'dart', path: 'core'); |
| + Uri uri = new Uri(scheme: 'dart', path: 'core'); |
| Source source = resolver.resolveAbsolute(uri); |
| expect(source, isNull); |
| } |
| void test_resolveAbsolute_notFile_httpsUri() { |
| - var uri = new Uri(scheme: 'https', path: '127.0.0.1/test.dart'); |
| + Uri uri = new Uri(scheme: 'https', path: '127.0.0.1/test.dart'); |
| Source source = resolver.resolveAbsolute(uri); |
| expect(source, isNull); |
| } |
| void test_restoreAbsolute() { |
| - var uri = provider.pathContext |
| - .toUri(provider.convertPath('/workspace/test.dart')); |
| + Uri uri = provider.pathContext.toUri(ppp('/workspace/test.dart')); |
| Source source = resolver.resolveAbsolute(uri); |
| expect(source, isNotNull); |
| expect(resolver.restoreAbsolute(source), uri); |
| @@ -109,4 +98,132 @@ class BazelFileUriResolverTest { |
| new NonExistingSource(source.fullName, null, null)), |
| uri); |
| } |
| + |
| + Source _resolvePath(String absolutePosixPath) { |
| + String absolutePath = ppp(absolutePosixPath); |
| + Uri uri = provider.pathContext.toUri(absolutePath); |
| + return resolver.resolveAbsolute(uri); |
| + } |
| +} |
| + |
| +@reflectiveTest |
| +class BazelWorkspaceTest { |
| + MemoryResourceProvider provider = new MemoryResourceProvider(); |
| + |
| + /** |
| + * Prepare platform path. |
| + */ |
| + String ppp(String path) { |
| + return provider.convertPath(path); |
| + } |
| + |
| + void test_factory_fail_notAbsolute() { |
| + expect(() => new BazelWorkspace(provider, ppp('not_absolute')), |
| + throwsArgumentError); |
| + } |
| + |
| + void test_factory_hasReadonlyFolder() { |
| + provider.newFolder(ppp('/Users/user/test/READONLY/prime')); |
| + provider.newFolder(ppp('/Users/user/test/prime')); |
| + BazelWorkspace workspace = new BazelWorkspace( |
| + provider, ppp('/Users/user/test/prime/my/module'), |
| + readonlySuffix: 'prime'); |
| + expect(workspace.root, ppp('/Users/user/test/prime')); |
| + expect(workspace.readonly, ppp('/Users/user/test/READONLY/prime')); |
| + expect(workspace.bin, ppp('/Users/user/test/prime/bazel-bin')); |
| + expect(workspace.genfiles, ppp('/Users/user/test/prime/bazel-genfiles')); |
| + } |
| + |
| + void test_factory_hasWorkspaceFile() { |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + BazelWorkspace workspace = |
| + new BazelWorkspace(provider, ppp('/workspace/my/module')); |
| + expect(workspace.root, ppp('/workspace')); |
| + expect(workspace.readonly, isNull); |
| + expect(workspace.bin, ppp('/workspace/bazel-bin')); |
| + expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); |
| + } |
| + |
| + void test_factory_hasWorkspaceFile_forModuleInWorkspace() { |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + BazelWorkspace workspace = |
| + new BazelWorkspace(provider, ppp('/workspace/my/module')); |
| + expect(workspace.root, ppp('/workspace')); |
| + expect(workspace.readonly, isNull); |
| + expect(workspace.bin, ppp('/workspace/bazel-bin')); |
| + expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); |
| + } |
| + |
| + void test_factory_hasWorkspaceFile_forWorkspace() { |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + BazelWorkspace workspace = new BazelWorkspace(provider, ppp('/workspace')); |
| + expect(workspace.root, ppp('/workspace')); |
| + expect(workspace.readonly, isNull); |
| + expect(workspace.bin, ppp('/workspace/bazel-bin')); |
| + expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); |
| + } |
| + |
| + void test_factory_null_notInWorkspace() { |
| + BazelWorkspace workspace = |
| + new BazelWorkspace(provider, ppp('/workspace/my/module')); |
| + expect(workspace, isNull); |
| + } |
| + |
| + void test_factory_symlinkPrefix() { |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + BazelWorkspace workspace = new BazelWorkspace(provider, ppp('/workspace'), |
| + symlinkPrefix: 'foobar'); |
| + expect(workspace.root, ppp('/workspace')); |
| + expect(workspace.readonly, isNull); |
| + expect(workspace.bin, ppp('/workspace/foobar-bin')); |
| + expect(workspace.genfiles, ppp('/workspace/foobar-genfiles')); |
| + } |
| + |
| + void test_findFile_hasReadonlyFolder() { |
| + provider.newFolder(ppp('/Users/user/test/READONLY/prime')); |
| + provider.newFolder(ppp('/Users/user/test/prime')); |
| + provider.newFile(ppp('/Users/user/test/prime/my/module/test1.dart'), ''); |
| + provider.newFile(ppp('/Users/user/test/prime/my/module/test2.dart'), ''); |
| + provider.newFile(ppp('/Users/user/test/prime/my/module/test3.dart'), ''); |
| + provider.newFile( |
| + ppp('/Users/user/test/prime/bazel-bin/my/module/test2.dart'), ''); |
| + provider.newFile( |
| + ppp('/Users/user/test/prime/bazel-genfiles/my/module/test3.dart'), ''); |
| + provider.newFile( |
| + ppp('/Users/user/test/READONLY/prime/other/module/test4.dart'), ''); |
| + BazelWorkspace workspace = new BazelWorkspace( |
| + provider, ppp('/Users/user/test/prime/my/module'), |
| + readonlySuffix: 'prime'); |
| + expect( |
| + workspace.findFile('/Users/user/test/prime/my/module/test1.dart').path, |
| + '/Users/user/test/prime/my/module/test1.dart'); |
| + expect( |
| + workspace.findFile('/Users/user/test/prime/my/module/test2.dart').path, |
| + '/Users/user/test/prime/bazel-bin/my/module/test2.dart'); |
| + expect( |
| + workspace.findFile('/Users/user/test/prime/my/module/test3.dart').path, |
| + '/Users/user/test/prime/bazel-genfiles/my/module/test3.dart'); |
| + expect( |
| + workspace |
| + .findFile('/Users/user/test/prime/other/module/test4.dart') |
| + .path, |
| + '/Users/user/test/READONLY/prime/other/module/test4.dart'); |
| + } |
| + |
| + void test_findFile_noReadOnly() { |
| + provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| + provider.newFile(ppp('/workspace/my/module/test1.dart'), ''); |
| + provider.newFile(ppp('/workspace/my/module/test2.dart'), ''); |
| + provider.newFile(ppp('/workspace/my/module/test3.dart'), ''); |
| + provider.newFile(ppp('/workspace/bazel-bin/my/module/test2.dart'), ''); |
| + provider.newFile(ppp('/workspace/bazel-genfiles/my/module/test3.dart'), ''); |
| + BazelWorkspace workspace = |
| + new BazelWorkspace(provider, ppp('/workspace/my/module')); |
| + expect(workspace.findFile('/workspace/my/module/test1.dart').path, |
| + '/workspace/my/module/test1.dart'); |
| + expect(workspace.findFile('/workspace/my/module/test2.dart').path, |
| + '/workspace/bazel-bin/my/module/test2.dart'); |
| + expect(workspace.findFile('/workspace/my/module/test3.dart').path, |
| + '/workspace/bazel-genfiles/my/module/test3.dart'); |
| + } |
| } |