| Index: pkg/analysis_server/test/context_manager_test.dart
|
| diff --git a/pkg/analysis_server/test/context_manager_test.dart b/pkg/analysis_server/test/context_manager_test.dart
|
| index 2908cded61dd572875f112572270072a820fa9c5..092fc85875a0d9167faad3b7353a95d581904b65 100644
|
| --- a/pkg/analysis_server/test/context_manager_test.dart
|
| +++ b/pkg/analysis_server/test/context_manager_test.dart
|
| @@ -20,6 +20,7 @@ import 'package:test_reflective_loader/test_reflective_loader.dart';
|
| import 'package:unittest/unittest.dart';
|
|
|
| import 'mocks.dart';
|
| +import 'package:analysis_server/uri/resolver_provider.dart';
|
|
|
| main() {
|
| groupSep = ' | ';
|
| @@ -59,6 +60,8 @@ class ContextManagerTest {
|
|
|
| MockPackageMapProvider packageMapProvider;
|
|
|
| + UriResolver packageResolver = null;
|
| +
|
| String projPath = '/my/proj';
|
|
|
| String newFile(List<String> pathComponents, [String content = '']) {
|
| @@ -73,10 +76,14 @@ class ContextManagerTest {
|
| return folderPath;
|
| }
|
|
|
| + UriResolver providePackageResolver(Folder folder) {
|
| + return packageResolver;
|
| + }
|
| +
|
| void setUp() {
|
| resourceProvider = new MemoryResourceProvider();
|
| packageMapProvider = new MockPackageMapProvider();
|
| - manager = new TestContextManager(resourceProvider, packageMapProvider);
|
| + manager = new TestContextManager(resourceProvider, providePackageResolver, packageMapProvider);
|
| resourceProvider.newFolder(projPath);
|
| }
|
|
|
| @@ -195,6 +202,29 @@ class ContextManagerTest {
|
| var filePaths = manager.currentContextFilePaths[projPath];
|
| expect(filePaths, hasLength(1));
|
| expect(filePaths, contains(filePath));
|
| + List<AnalysisContext> contextsInAnalysisRoot = manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
|
| + expect(contextsInAnalysisRoot, hasLength(1));
|
| + AnalysisContext context = contextsInAnalysisRoot[0];
|
| + expect(context, isNotNull);
|
| + Source result = context.sourceFactory.forUri('package:foo/foo.dart');
|
| + expect(result, isNotNull);
|
| + expect(result.exists(), isFalse);
|
| + }
|
| +
|
| + void test_setRoots_packageResolver() {
|
| + Uri uri = Uri.parse('package:foo/foo.dart');
|
| + Source source = new TestSource();
|
| + packageResolver = new TestUriResolver({uri : source});
|
| + String filePath = posix.join(projPath, 'foo.dart');
|
| + resourceProvider.newFile(filePath, 'contents');
|
| + manager.setRoots(<String>[projPath], <String>[], <String, String>{});
|
| +
|
| + List<AnalysisContext> contextsInAnalysisRoot = manager.contextsInAnalysisRoot(resourceProvider.newFolder(projPath));
|
| + expect(contextsInAnalysisRoot, hasLength(1));
|
| + AnalysisContext context = contextsInAnalysisRoot[0];
|
| + expect(context, isNotNull);
|
| + Source result = context.sourceFactory.forUri2(uri);
|
| + expect(result, same(source));
|
| }
|
|
|
| void test_setRoots_addFolderWithDartFileInSubfolder() {
|
| @@ -981,8 +1011,9 @@ class TestContextManager extends ContextManager {
|
| <String, UriResolver>{};
|
|
|
| TestContextManager(MemoryResourceProvider resourceProvider,
|
| + ResolverProvider packageResolverProvider,
|
| OptimizingPubPackageMapProvider packageMapProvider)
|
| - : super(resourceProvider, packageMapProvider,
|
| + : super(resourceProvider, packageResolverProvider, packageMapProvider,
|
| InstrumentationService.NULL_SERVICE);
|
|
|
| /**
|
| @@ -1066,3 +1097,24 @@ class TestContextManager extends ContextManager {
|
| currentContextPackageUriResolvers[contextFolder.path] = packageUriResolver;
|
| }
|
| }
|
| +
|
| +class TestUriResolver extends UriResolver {
|
| + Map<Uri, Source> uriMap;
|
| +
|
| + TestUriResolver(this.uriMap);
|
| +
|
| + @override
|
| + Source resolveAbsolute(Uri uri) {
|
| + return uriMap[uri];
|
| + }
|
| +}
|
| +
|
| +/**
|
| + * A [Source] that knows it's [fullName].
|
| + */
|
| +class TestSource implements Source {
|
| + TestSource();
|
| +
|
| + @override
|
| + noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
|
| +}
|
|
|