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/file_system.dart'; | |
| 8 import 'package:analyzer/file_system/memory_file_system.dart'; | 7 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 9 import 'package:analyzer/src/generated/bazel.dart'; | 8 import 'package:analyzer/src/generated/bazel.dart'; |
| 10 import 'package:analyzer/src/generated/source.dart'; | 9 import 'package:analyzer/src/generated/source.dart'; |
| 11 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 12 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
| 13 | 12 |
| 14 import '../utils.dart'; | 13 import '../utils.dart'; |
| 15 | 14 |
| 16 main() { | 15 main() { |
| 17 initializeTestEnvironment(); | 16 initializeTestEnvironment(); |
| 17 defineReflectiveTests(BazelWorkspaceTest); | |
| 18 defineReflectiveTests(BazelFileUriResolverTest); | 18 defineReflectiveTests(BazelFileUriResolverTest); |
| 19 } | 19 } |
| 20 | 20 |
| 21 @reflectiveTest | 21 @reflectiveTest |
| 22 class BazelFileUriResolverTest { | 22 class BazelFileUriResolverTest { |
| 23 MemoryResourceProvider provider; | 23 MemoryResourceProvider provider; |
| 24 Folder workspace; | 24 BazelWorkspace workspace; |
| 25 List<Folder> buildDirs; | 25 BazelFileUriResolver resolver; |
| 26 ResourceUriResolver resolver; | 26 |
| 27 /** | |
| 28 * Prepare platform path. | |
| 29 */ | |
| 30 String ppp(String path) { | |
|
Brian Wilkerson
2016/10/05 22:01:11
?!? I know 'provider.convertPath' is longer, I fin
| |
| 31 return provider.convertPath(path); | |
| 32 } | |
| 27 | 33 |
| 28 void setUp() { | 34 void setUp() { |
| 29 provider = new MemoryResourceProvider(); | 35 provider = new MemoryResourceProvider(); |
| 30 workspace = provider.newFolder(provider.convertPath('/workspace')); | 36 provider.newFile(ppp('/workspace/WORKSPACE'), ''); |
| 31 buildDirs = [ | 37 workspace = new BazelWorkspace(provider, ppp('/workspace')); |
| 32 provider.newFolder(provider.convertPath('/workspace/one')), | 38 resolver = new BazelFileUriResolver(workspace); |
| 33 provider.newFolder(provider.convertPath('/workspace/two')) | 39 provider.newFile(ppp('/workspace/test.dart'), ''); |
| 34 ]; | 40 provider.newFile(ppp('/workspace/bazel-bin/gen1.dart'), ''); |
| 35 resolver = new BazelFileUriResolver(provider, workspace, buildDirs); | 41 provider.newFile(ppp('/workspace/bazel-genfiles/gen2.dart'), ''); |
| 36 provider.newFile(provider.convertPath('/workspace/test.dart'), ''); | |
| 37 provider.newFile(provider.convertPath('/workspace/one/gen1.dart'), ''); | |
| 38 provider.newFile(provider.convertPath('/workspace/two/gen2.dart'), ''); | |
| 39 } | 42 } |
| 40 | 43 |
| 41 void test_creation() { | 44 void test_resolveAbsolute_doesNotExist() { |
| 42 expect(provider, isNotNull); | 45 Source source = _resolvePath('/workspace/foo.dart'); |
| 43 expect(workspace, isNotNull); | 46 expect(source, isNotNull); |
| 44 expect(buildDirs, isNotNull); | 47 expect(source.exists(), isFalse); |
| 45 expect(buildDirs.length, 2); | 48 expect(source.fullName, ppp('/workspace/foo.dart')); |
| 46 expect(resolver, isNotNull); | |
| 47 } | 49 } |
| 48 | 50 |
| 49 void test_resolveAbsolute_file() { | 51 void test_resolveAbsolute_file() { |
| 50 var uri = provider.pathContext | 52 Source source = _resolvePath('/workspace/test.dart'); |
| 51 .toUri(provider.convertPath('/workspace/test.dart')); | |
| 52 Source source = resolver.resolveAbsolute(uri); | |
| 53 expect(source, isNotNull); | 53 expect(source, isNotNull); |
| 54 expect(source.exists(), isTrue); | 54 expect(source.exists(), isTrue); |
| 55 expect(source.fullName, provider.convertPath('/workspace/test.dart')); | 55 expect(source.fullName, ppp('/workspace/test.dart')); |
| 56 } | 56 } |
| 57 | 57 |
| 58 void test_resolveAbsolute_folder() { | 58 void test_resolveAbsolute_folder() { |
| 59 var uri = provider.pathContext.toUri(provider.convertPath('/workspace')); | 59 Source source = _resolvePath('/workspace'); |
| 60 Source source = resolver.resolveAbsolute(uri); | 60 expect(source, isNotNull); |
| 61 expect(source, isNull); | 61 expect(source.exists(), isFalse); |
| 62 } | 62 expect(source.fullName, ppp('/workspace')); |
| 63 | |
| 64 void test_resolveAbsolute_generated_file_does_not_exist_three() { | |
| 65 var uri = provider.pathContext | |
| 66 .toUri(provider.convertPath('/workspace/gen3.dart')); | |
| 67 Source source = resolver.resolveAbsolute(uri); | |
| 68 expect(source, isNull); | |
| 69 } | 63 } |
| 70 | 64 |
| 71 void test_resolveAbsolute_generated_file_exists_one() { | 65 void test_resolveAbsolute_generated_file_exists_one() { |
| 72 var uri = provider.pathContext | 66 Source source = _resolvePath('/workspace/gen1.dart'); |
| 73 .toUri(provider.convertPath('/workspace/gen1.dart')); | |
| 74 Source source = resolver.resolveAbsolute(uri); | |
| 75 expect(source, isNotNull); | 67 expect(source, isNotNull); |
| 76 expect(source.exists(), isTrue); | 68 expect(source.exists(), isTrue); |
| 77 expect(source.fullName, provider.convertPath('/workspace/one/gen1.dart')); | 69 expect(source.fullName, ppp('/workspace/bazel-bin/gen1.dart')); |
| 78 } | 70 } |
| 79 | 71 |
| 80 void test_resolveAbsolute_generated_file_exists_two() { | 72 void test_resolveAbsolute_generated_file_exists_two() { |
| 81 var uri = provider.pathContext | 73 Source source = _resolvePath('/workspace/gen2.dart'); |
| 82 .toUri(provider.convertPath('/workspace/gen2.dart')); | |
| 83 Source source = resolver.resolveAbsolute(uri); | |
| 84 expect(source, isNotNull); | 74 expect(source, isNotNull); |
| 85 expect(source.exists(), isTrue); | 75 expect(source.exists(), isTrue); |
| 86 expect(source.fullName, provider.convertPath('/workspace/two/gen2.dart')); | 76 expect(source.fullName, ppp('/workspace/bazel-genfiles/gen2.dart')); |
| 87 } | 77 } |
| 88 | 78 |
| 89 void test_resolveAbsolute_notFile_dartUri() { | 79 void test_resolveAbsolute_notFile_dartUri() { |
| 90 var uri = new Uri(scheme: 'dart', path: 'core'); | 80 Uri uri = new Uri(scheme: 'dart', path: 'core'); |
| 91 Source source = resolver.resolveAbsolute(uri); | 81 Source source = resolver.resolveAbsolute(uri); |
| 92 expect(source, isNull); | 82 expect(source, isNull); |
| 93 } | 83 } |
| 94 | 84 |
| 95 void test_resolveAbsolute_notFile_httpsUri() { | 85 void test_resolveAbsolute_notFile_httpsUri() { |
| 96 var uri = new Uri(scheme: 'https', path: '127.0.0.1/test.dart'); | 86 Uri uri = new Uri(scheme: 'https', path: '127.0.0.1/test.dart'); |
| 97 Source source = resolver.resolveAbsolute(uri); | 87 Source source = resolver.resolveAbsolute(uri); |
| 98 expect(source, isNull); | 88 expect(source, isNull); |
| 99 } | 89 } |
| 100 | 90 |
| 101 void test_restoreAbsolute() { | 91 void test_restoreAbsolute() { |
| 102 var uri = provider.pathContext | 92 Uri uri = provider.pathContext.toUri(ppp('/workspace/test.dart')); |
| 103 .toUri(provider.convertPath('/workspace/test.dart')); | |
| 104 Source source = resolver.resolveAbsolute(uri); | 93 Source source = resolver.resolveAbsolute(uri); |
| 105 expect(source, isNotNull); | 94 expect(source, isNotNull); |
| 106 expect(resolver.restoreAbsolute(source), uri); | 95 expect(resolver.restoreAbsolute(source), uri); |
| 107 expect( | 96 expect( |
| 108 resolver.restoreAbsolute( | 97 resolver.restoreAbsolute( |
| 109 new NonExistingSource(source.fullName, null, null)), | 98 new NonExistingSource(source.fullName, null, null)), |
| 110 uri); | 99 uri); |
| 111 } | 100 } |
| 101 | |
| 102 Source _resolvePath(String absolutePosixPath) { | |
| 103 String absolutePath = ppp(absolutePosixPath); | |
| 104 Uri uri = provider.pathContext.toUri(absolutePath); | |
| 105 return resolver.resolveAbsolute(uri); | |
| 106 } | |
| 112 } | 107 } |
| 108 | |
| 109 @reflectiveTest | |
| 110 class BazelWorkspaceTest { | |
| 111 MemoryResourceProvider provider = new MemoryResourceProvider(); | |
| 112 | |
| 113 /** | |
| 114 * Prepare platform path. | |
| 115 */ | |
| 116 String ppp(String path) { | |
| 117 return provider.convertPath(path); | |
| 118 } | |
| 119 | |
| 120 void test_factory_fail_notAbsolute() { | |
| 121 expect(() => new BazelWorkspace(provider, ppp('not_absolute')), | |
| 122 throwsArgumentError); | |
| 123 } | |
| 124 | |
| 125 void test_factory_hasReadonlyFolder() { | |
| 126 provider.newFolder(ppp('/Users/user/test/READONLY/prime')); | |
| 127 provider.newFolder(ppp('/Users/user/test/prime')); | |
| 128 BazelWorkspace workspace = new BazelWorkspace( | |
| 129 provider, ppp('/Users/user/test/prime/my/module'), | |
| 130 readonlySuffix: 'prime'); | |
| 131 expect(workspace.root, ppp('/Users/user/test/prime')); | |
| 132 expect(workspace.readonly, ppp('/Users/user/test/READONLY/prime')); | |
| 133 expect(workspace.bin, ppp('/Users/user/test/prime/bazel-bin')); | |
| 134 expect(workspace.genfiles, ppp('/Users/user/test/prime/bazel-genfiles')); | |
| 135 } | |
| 136 | |
| 137 void test_factory_hasWorkspaceFile() { | |
| 138 provider.newFile(ppp('/workspace/WORKSPACE'), ''); | |
| 139 BazelWorkspace workspace = | |
| 140 new BazelWorkspace(provider, ppp('/workspace/my/module')); | |
| 141 expect(workspace.root, ppp('/workspace')); | |
| 142 expect(workspace.readonly, isNull); | |
| 143 expect(workspace.bin, ppp('/workspace/bazel-bin')); | |
| 144 expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); | |
| 145 } | |
| 146 | |
| 147 void test_factory_hasWorkspaceFile_forModuleInWorkspace() { | |
| 148 provider.newFile(ppp('/workspace/WORKSPACE'), ''); | |
| 149 BazelWorkspace workspace = | |
| 150 new BazelWorkspace(provider, ppp('/workspace/my/module')); | |
| 151 expect(workspace.root, ppp('/workspace')); | |
| 152 expect(workspace.readonly, isNull); | |
| 153 expect(workspace.bin, ppp('/workspace/bazel-bin')); | |
| 154 expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); | |
| 155 } | |
| 156 | |
| 157 void test_factory_hasWorkspaceFile_forWorkspace() { | |
| 158 provider.newFile(ppp('/workspace/WORKSPACE'), ''); | |
| 159 BazelWorkspace workspace = new BazelWorkspace(provider, ppp('/workspace')); | |
| 160 expect(workspace.root, ppp('/workspace')); | |
| 161 expect(workspace.readonly, isNull); | |
| 162 expect(workspace.bin, ppp('/workspace/bazel-bin')); | |
| 163 expect(workspace.genfiles, ppp('/workspace/bazel-genfiles')); | |
| 164 } | |
| 165 | |
| 166 void test_factory_null_notInWorkspace() { | |
| 167 BazelWorkspace workspace = | |
| 168 new BazelWorkspace(provider, ppp('/workspace/my/module')); | |
| 169 expect(workspace, isNull); | |
| 170 } | |
| 171 | |
| 172 void test_factory_symlinkPrefix() { | |
| 173 provider.newFile(ppp('/workspace/WORKSPACE'), ''); | |
| 174 BazelWorkspace workspace = new BazelWorkspace(provider, ppp('/workspace'), | |
| 175 symlinkPrefix: 'foobar'); | |
| 176 expect(workspace.root, ppp('/workspace')); | |
| 177 expect(workspace.readonly, isNull); | |
| 178 expect(workspace.bin, ppp('/workspace/foobar-bin')); | |
| 179 expect(workspace.genfiles, ppp('/workspace/foobar-genfiles')); | |
| 180 } | |
| 181 | |
| 182 void test_findFile_hasReadonlyFolder() { | |
| 183 provider.newFolder(ppp('/Users/user/test/READONLY/prime')); | |
| 184 provider.newFolder(ppp('/Users/user/test/prime')); | |
| 185 provider.newFile(ppp('/Users/user/test/prime/my/module/test1.dart'), ''); | |
| 186 provider.newFile(ppp('/Users/user/test/prime/my/module/test2.dart'), ''); | |
| 187 provider.newFile(ppp('/Users/user/test/prime/my/module/test3.dart'), ''); | |
| 188 provider.newFile( | |
| 189 ppp('/Users/user/test/prime/bazel-bin/my/module/test2.dart'), ''); | |
| 190 provider.newFile( | |
| 191 ppp('/Users/user/test/prime/bazel-genfiles/my/module/test3.dart'), ''); | |
| 192 provider.newFile( | |
| 193 ppp('/Users/user/test/READONLY/prime/other/module/test4.dart'), ''); | |
| 194 BazelWorkspace workspace = new BazelWorkspace( | |
| 195 provider, ppp('/Users/user/test/prime/my/module'), | |
| 196 readonlySuffix: 'prime'); | |
| 197 expect( | |
| 198 workspace.findFile('/Users/user/test/prime/my/module/test1.dart').path, | |
| 199 '/Users/user/test/prime/my/module/test1.dart'); | |
| 200 expect( | |
| 201 workspace.findFile('/Users/user/test/prime/my/module/test2.dart').path, | |
| 202 '/Users/user/test/prime/bazel-bin/my/module/test2.dart'); | |
| 203 expect( | |
| 204 workspace.findFile('/Users/user/test/prime/my/module/test3.dart').path, | |
| 205 '/Users/user/test/prime/bazel-genfiles/my/module/test3.dart'); | |
| 206 expect( | |
| 207 workspace | |
| 208 .findFile('/Users/user/test/prime/other/module/test4.dart') | |
| 209 .path, | |
| 210 '/Users/user/test/READONLY/prime/other/module/test4.dart'); | |
| 211 } | |
| 212 | |
| 213 void test_findFile_noReadOnly() { | |
| 214 provider.newFile(ppp('/workspace/WORKSPACE'), ''); | |
| 215 provider.newFile(ppp('/workspace/my/module/test1.dart'), ''); | |
| 216 provider.newFile(ppp('/workspace/my/module/test2.dart'), ''); | |
| 217 provider.newFile(ppp('/workspace/my/module/test3.dart'), ''); | |
| 218 provider.newFile(ppp('/workspace/bazel-bin/my/module/test2.dart'), ''); | |
| 219 provider.newFile(ppp('/workspace/bazel-genfiles/my/module/test3.dart'), ''); | |
| 220 BazelWorkspace workspace = | |
| 221 new BazelWorkspace(provider, ppp('/workspace/my/module')); | |
| 222 expect(workspace.findFile('/workspace/my/module/test1.dart').path, | |
| 223 '/workspace/my/module/test1.dart'); | |
| 224 expect(workspace.findFile('/workspace/my/module/test2.dart').path, | |
| 225 '/workspace/bazel-bin/my/module/test2.dart'); | |
| 226 expect(workspace.findFile('/workspace/my/module/test3.dart').path, | |
| 227 '/workspace/bazel-genfiles/my/module/test3.dart'); | |
| 228 } | |
| 229 } | |
| OLD | NEW |