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

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

Issue 365443002: Handle a failure in "pub list-package-dirs". (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 6 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/package_map_provider.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_directory_manager_test.dart
diff --git a/pkg/analysis_server/test/context_directory_manager_test.dart b/pkg/analysis_server/test/context_directory_manager_test.dart
index b4e9762ef2210a7a20a1e5c98b8935ee9eeac0b0..ed27b010f6260683223ff3207210951e06ac84a5 100644
--- a/pkg/analysis_server/test/context_directory_manager_test.dart
+++ b/pkg/analysis_server/test/context_directory_manager_test.dart
@@ -115,6 +115,7 @@ main() {
test('add folder without pubspec', () {
String projPath = '/my/proj';
resourceProvider.newFolder(projPath);
+ packageMapProvider.packageMap = null;
manager.setRoots(<String>[projPath], <String>[]);
expect(manager.currentContextPaths, hasLength(1));
expect(manager.currentContextPaths, contains(projPath));
@@ -157,6 +158,7 @@ main() {
test('remove folder without pubspec', () {
String projPath = '/my/proj';
resourceProvider.newFolder(projPath);
+ packageMapProvider.packageMap = null;
manager.setRoots(<String>[projPath], <String>[]);
manager.setRoots(<String>[], <String>[]);
expect(manager.currentContextPaths, hasLength(0));
@@ -247,7 +249,7 @@ main() {
expect(manager.currentContextPackageMaps[projPath],
equals(packageMapProvider.packageMap));
String packagePath = '/package/foo';
- resourceProvider.newFolder(projPath);
+ resourceProvider.newFolder(packagePath);
packageMapProvider.packageMap = {'foo': projPath};
// Changing a .dart file in the project shouldn't cause a new
// package map to be picked up.
@@ -262,6 +264,25 @@ main() {
});
});
});
+
+ test('Modify package map dependency - packageMapProvider failure', () {
+ String dependencyPath = posix.join(projPath, 'dep');
+ resourceProvider.newFile(dependencyPath, 'contents');
+ String dartFilePath = posix.join(projPath, 'main.dart');
+ resourceProvider.newFile(dartFilePath, 'contents');
+ packageMapProvider.dependencies.add(dependencyPath);
+ manager.setRoots(<String>[projPath], <String>[]);
+ expect(manager.currentContextPackageMaps[projPath],
+ equals(packageMapProvider.packageMap));
+ // Change the package map dependency so that the packageMapProvider is
+ // re-run, and arrange for it to return null from computePackageMap().
+ packageMapProvider.packageMap = null;
+ resourceProvider.modifyFile(dependencyPath, 'new contents');
+ return pumpEventQueue().then((_) {
+ // The package map should have been changed to null.
+ expect(manager.currentContextPackageMaps[projPath], isNull);
+ });
+ });
});
});
}
« no previous file with comments | « pkg/analysis_server/lib/src/package_map_provider.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698