| 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 205ca78941d3a1b8fd06a7410c22c6db387f19e1..62e1dd2a409d1654a99aad86bf72f0d551970f1a 100644
|
| --- a/pkg/analysis_server/test/context_manager_test.dart
|
| +++ b/pkg/analysis_server/test/context_manager_test.dart
|
| @@ -143,7 +143,7 @@ class AbstractContextManagerTest {
|
| packageMapProvider = new MockPackageMapProvider();
|
| manager = new ContextManagerImpl(resourceProvider, providePackageResolver,
|
| packageMapProvider, InstrumentationService.NULL_SERVICE);
|
| - callbacks = new TestContextManagerCallbacks();
|
| + callbacks = new TestContextManagerCallbacks(resourceProvider);
|
| manager.callbacks = callbacks;
|
| resourceProvider.newFolder(projPath);
|
| ContextManagerImpl.ENABLE_PACKAGESPEC_SUPPORT = true;
|
| @@ -1428,7 +1428,7 @@ analyzer:
|
| Map<String, int> filePaths = callbacks.currentContextFilePaths[projPath];
|
| expect(filePaths, hasLength(1));
|
| expect(filePaths, contains(filePath));
|
| - Packages packages = callbacks.currentContextPackagespecs[projPath];
|
| + Packages packages = callbacks.currentContextDispositions[projPath].packages;
|
| expect(packages.packages, isEmpty);
|
|
|
| // update .packages
|
| @@ -1436,7 +1436,7 @@ analyzer:
|
| resourceProvider.modifyFile(packagesPath, 'main:./lib/');
|
| return pumpEventQueue().then((_) {
|
| // verify new package info
|
| - packages = callbacks.currentContextPackagespecs[projPath];
|
| + packages = callbacks.currentContextDispositions[projPath].packages;
|
| expect(packages.packages, unorderedEquals(['main']));
|
| });
|
| }
|
| @@ -1446,9 +1446,9 @@ analyzer:
|
| * using a package map matching [expectation].
|
| */
|
| void _checkPackageMap(String path, expectation) {
|
| - UriResolver resolver = callbacks.currentContextPackageUriResolvers[path];
|
| + FolderDisposition disposition = callbacks.currentContextDispositions[path];
|
| Map<String, List<Folder>> packageMap =
|
| - resolver is PackageMapUriResolver ? resolver.packageMap : null;
|
| + disposition is PackageMapDisposition ? disposition.packageMap : null;
|
| expect(packageMap, expectation);
|
| }
|
|
|
| @@ -1457,10 +1457,11 @@ analyzer:
|
| * using a package root maching [expectation].
|
| */
|
| void _checkPackageRoot(String path, expectation) {
|
| - UriResolver resolver = callbacks.currentContextPackageUriResolvers[path];
|
| - expect(resolver, new isInstanceOf<PackageUriResolver>());
|
| - PackageUriResolver packageUriResolver = resolver;
|
| - expect(packageUriResolver.packagesDirectory_forTesting, expectation);
|
| + // TODO(paulberry): this code needs to be reworked, since the context
|
| + // manager inspects the contents of the package root directory and converts
|
| + // it to a package map. The only reason this code used to work was due to
|
| + // dartbug.com/23909.
|
| + fail('Cannot verify package root');
|
| }
|
| }
|
|
|
| @@ -1494,15 +1495,17 @@ class TestContextManagerCallbacks extends ContextManagerCallbacks {
|
| };
|
|
|
| /**
|
| - * Map from context to package URI resolver.
|
| + * Map from context to folder disposition.
|
| */
|
| - final Map<String, UriResolver> currentContextPackageUriResolvers =
|
| - <String, UriResolver>{};
|
| + final Map<String, FolderDisposition> currentContextDispositions =
|
| + <String, FolderDisposition>{};
|
|
|
| /**
|
| - * Map from context to packages object.
|
| + * Resource provider used for this test.
|
| */
|
| - final Map<String, Packages> currentContextPackagespecs = <String, Packages>{};
|
| + final ResourceProvider resourceProvider;
|
| +
|
| + TestContextManagerCallbacks(this.resourceProvider);
|
|
|
| /**
|
| * Iterable of the paths to contexts that currently exist.
|
| @@ -1510,21 +1513,18 @@ class TestContextManagerCallbacks extends ContextManagerCallbacks {
|
| Iterable<String> get currentContextPaths => currentContextTimestamps.keys;
|
|
|
| @override
|
| - AnalysisContext addContext(
|
| - Folder folder, UriResolver packageUriResolver, Packages packages) {
|
| + AnalysisContext addContext(Folder folder, FolderDisposition disposition) {
|
| String path = folder.path;
|
| expect(currentContextPaths, isNot(contains(path)));
|
| currentContextTimestamps[path] = now;
|
| currentContextFilePaths[path] = <String, int>{};
|
| currentContextSources[path] = new HashSet<Source>();
|
| - currentContextPackageUriResolvers[path] = packageUriResolver;
|
| - currentContextPackagespecs[path] = packages;
|
| + currentContextDispositions[path] = disposition;
|
| currentContext = AnalysisEngine.instance.createAnalysisContext();
|
| List<UriResolver> resolvers = [new FileUriResolver()];
|
| - if (packageUriResolver != null) {
|
| - resolvers.add(packageUriResolver);
|
| - }
|
| - currentContext.sourceFactory = new SourceFactory(resolvers, packages);
|
| + resolvers.addAll(disposition.createPackageUriResolvers(resourceProvider));
|
| + currentContext.sourceFactory =
|
| + new SourceFactory(resolvers, disposition.packages);
|
| return currentContext;
|
| }
|
|
|
| @@ -1567,7 +1567,7 @@ class TestContextManagerCallbacks extends ContextManagerCallbacks {
|
| currentContextTimestamps.remove(path);
|
| currentContextFilePaths.remove(path);
|
| currentContextSources.remove(path);
|
| - currentContextPackageUriResolvers.remove(path);
|
| + currentContextDispositions.remove(path);
|
| }
|
|
|
| @override
|
| @@ -1586,9 +1586,8 @@ class TestContextManagerCallbacks extends ContextManagerCallbacks {
|
|
|
| @override
|
| void updateContextPackageUriResolver(
|
| - Folder contextFolder, UriResolver packageUriResolver, Packages packages) {
|
| - currentContextPackageUriResolvers[contextFolder.path] = packageUriResolver;
|
| - currentContextPackagespecs[contextFolder.path] = packages;
|
| + Folder contextFolder, FolderDisposition disposition) {
|
| + currentContextDispositions[contextFolder.path] = disposition;
|
| }
|
| }
|
|
|
|
|