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

Unified Diff: pkg/analyzer/test/generated/bazel_test.dart

Issue 2393813003: Add BazelWorkspace and move BazelFileUriResolver to it. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/generated/bazel.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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');
+ }
}
« 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