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

Unified Diff: pkg/analysis_server/test/context_manager_test.dart

Issue 1258473003: Introduce FolderDisposition class hierarchy for use in ContextManagerCallback. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 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/analysis_server/lib/src/context_manager.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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;
}
}
« no previous file with comments | « pkg/analysis_server/lib/src/context_manager.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698