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

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

Issue 2393963004: Add BazelPackageUriResolver with resolveAbsolute(). (Closed)
Patch Set: Drop extract prefixes for field names in _BazelPackageUri. 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
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 91a9d1754f6954337ae258dfc4cf358db13aac26..0769ef85a943542881bb95c2c462ad41c906c731 100644
--- a/pkg/analyzer/test/generated/bazel_test.dart
+++ b/pkg/analyzer/test/generated/bazel_test.dart
@@ -12,8 +12,9 @@ import 'package:test_reflective_loader/test_reflective_loader.dart';
main() {
defineReflectiveSuite(() {
- defineReflectiveTests(BazelWorkspaceTest);
defineReflectiveTests(BazelFileUriResolverTest);
+ defineReflectiveTests(BazelPackageUriResolverTest);
+ defineReflectiveTests(BazelWorkspaceTest);
});
}
@@ -97,6 +98,81 @@ class BazelFileUriResolverTest extends _BaseTest {
}
@reflectiveTest
+class BazelPackageUriResolverTest extends _BaseTest {
+ BazelWorkspace workspace;
+ BazelPackageUriResolver resolver;
+
+ void setUp() {
+ provider.newFile(_p('/workspace/WORKSPACE'), '');
+ workspace = new BazelWorkspace(provider, _p('/workspace'));
+ resolver = new BazelPackageUriResolver(workspace);
+ provider.newFile(_p('/workspace/my/foo/lib/foo1.dart'), '');
+ provider.newFile(_p('/workspace/my/foo/lib/gen1.dart'), '');
+ provider.newFile(_p('/workspace/my/foo/lib/gen2.dart'), '');
+ provider.newFile(_p('/workspace/my/foo/lib/src/foo4.dart'), '');
+ provider.newFile(_p('/workspace/third_party/dart/bar/lib/bar1.dart'), '');
+ provider.newFile(
+ _p('/workspace/third_party/dart/bar/lib/src/bar2.dart'), '');
+ provider.newFile(_p('/workspace/bazel-bin/my/foo/lib/gen1.dart'), '');
+ provider.newFile(_p('/workspace/bazel-genfiles/my/foo/lib/gen2.dart'), '');
+ provider.newFile(_p('/workspace/bazel-genfiles/my/foo/lib/gen3.dart'), '');
+ }
+
+ void test_resolveAbsolute_inBazelBin() {
+ _assertResolve(
+ 'package:my.foo/gen1.dart', '/workspace/bazel-bin/my/foo/lib/gen1.dart',
+ exists: true);
+ }
+
+ void test_resolveAbsolute_inBazelGenfiles() {
+ _assertResolve('package:my.foo/gen2.dart',
+ '/workspace/bazel-genfiles/my/foo/lib/gen2.dart',
+ exists: true);
+ }
+
+ void test_resolveAbsolute_inBazelGenfiles_notInWorkspace() {
+ _assertResolve('package:my.foo/gen3.dart',
+ '/workspace/bazel-genfiles/my/foo/lib/gen3.dart',
+ exists: true);
+ }
+
+ void test_resolveAbsolute_inWorkspace_doesNotExist() {
+ _assertResolve('package:my.foo/doesNotExist.dart',
+ '/workspace/my/foo/lib/doesNotExist.dart',
+ exists: false);
+ }
+
+ void test_resolveAbsolute_inWorkspace_exists() {
+ _assertResolve(
+ 'package:my.foo/foo1.dart', '/workspace/my/foo/lib/foo1.dart',
+ exists: true);
+ }
+
+ void test_resolveAbsolute_null_notPackage() {
+ Source source = resolver.resolveAbsolute(Uri.parse('dart:async'));
+ expect(source, isNull);
+ }
+
+ void test_resolveAbsolute_thirdParty() {
+ _assertResolve('package:bar/bar1.dart',
+ '/workspace/third_party/dart/bar/lib/bar1.dart',
+ exists: true);
+ _assertResolve('package:bar/src/bar2.dart',
+ '/workspace/third_party/dart/bar/lib/src/bar2.dart',
+ exists: true);
+ }
+
+ void _assertResolve(String uriStr, String posixPath, {bool exists: true}) {
+ Uri uri = Uri.parse(uriStr);
+ Source source = resolver.resolveAbsolute(uri);
+ expect(source, isNotNull);
+ expect(source.fullName, _p(posixPath));
+ expect(source.uri, uri);
+ expect(source.exists(), exists);
+ }
+}
+
+@reflectiveTest
class BazelWorkspaceTest extends _BaseTest {
void test_factory_fail_notAbsolute() {
expect(() => new BazelWorkspace(provider, _p('not_absolute')),
« pkg/analyzer/lib/src/generated/bazel.dart ('K') | « 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