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

Side by Side 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, 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « pkg/analysis_server/lib/src/package_map_provider.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.context.directory.manager; 5 library test.context.directory.manager;
6 6
7 import 'mocks.dart'; 7 import 'mocks.dart';
8 import 'package:analysis_server/src/context_directory_manager.dart'; 8 import 'package:analysis_server/src/context_directory_manager.dart';
9 import 'package:analysis_server/src/package_map_provider.dart'; 9 import 'package:analysis_server/src/package_map_provider.dart';
10 import 'package:analysis_server/src/resource.dart'; 10 import 'package:analysis_server/src/resource.dart';
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 Folder packageFolder = resourceProvider.newFolder(packagePath); 108 Folder packageFolder = resourceProvider.newFolder(packagePath);
109 packageMapProvider.packageMap = {'foo': [packageFolder]}; 109 packageMapProvider.packageMap = {'foo': [packageFolder]};
110 manager.setRoots(<String>[projPath], <String>[]); 110 manager.setRoots(<String>[projPath], <String>[]);
111 expect(manager.currentContextPackageMaps[projPath], 111 expect(manager.currentContextPackageMaps[projPath],
112 equals(packageMapProvider.packageMap)); 112 equals(packageMapProvider.packageMap));
113 }); 113 });
114 114
115 test('add folder without pubspec', () { 115 test('add folder without pubspec', () {
116 String projPath = '/my/proj'; 116 String projPath = '/my/proj';
117 resourceProvider.newFolder(projPath); 117 resourceProvider.newFolder(projPath);
118 packageMapProvider.packageMap = null;
118 manager.setRoots(<String>[projPath], <String>[]); 119 manager.setRoots(<String>[projPath], <String>[]);
119 expect(manager.currentContextPaths, hasLength(1)); 120 expect(manager.currentContextPaths, hasLength(1));
120 expect(manager.currentContextPaths, contains(projPath)); 121 expect(manager.currentContextPaths, contains(projPath));
121 expect(manager.currentContextFilePaths[projPath], hasLength(0)); 122 expect(manager.currentContextFilePaths[projPath], hasLength(0));
122 }); 123 });
123 124
124 test('add folder with dart file', () { 125 test('add folder with dart file', () {
125 String projPath = '/my/proj'; 126 String projPath = '/my/proj';
126 resourceProvider.newFolder(projPath); 127 resourceProvider.newFolder(projPath);
127 String filePath = posix.join(projPath, 'foo.dart'); 128 String filePath = posix.join(projPath, 'foo.dart');
(...skipping 22 matching lines...) Expand all
150 resourceProvider.newFile(pubspecPath, 'pubspec'); 151 resourceProvider.newFile(pubspecPath, 'pubspec');
151 manager.setRoots(<String>[projPath], <String>[]); 152 manager.setRoots(<String>[projPath], <String>[]);
152 manager.setRoots(<String>[], <String>[]); 153 manager.setRoots(<String>[], <String>[]);
153 expect(manager.currentContextPaths, hasLength(0)); 154 expect(manager.currentContextPaths, hasLength(0));
154 expect(manager.currentContextFilePaths, hasLength(0)); 155 expect(manager.currentContextFilePaths, hasLength(0));
155 }); 156 });
156 157
157 test('remove folder without pubspec', () { 158 test('remove folder without pubspec', () {
158 String projPath = '/my/proj'; 159 String projPath = '/my/proj';
159 resourceProvider.newFolder(projPath); 160 resourceProvider.newFolder(projPath);
161 packageMapProvider.packageMap = null;
160 manager.setRoots(<String>[projPath], <String>[]); 162 manager.setRoots(<String>[projPath], <String>[]);
161 manager.setRoots(<String>[], <String>[]); 163 manager.setRoots(<String>[], <String>[]);
162 expect(manager.currentContextPaths, hasLength(0)); 164 expect(manager.currentContextPaths, hasLength(0));
163 expect(manager.currentContextFilePaths, hasLength(0)); 165 expect(manager.currentContextFilePaths, hasLength(0));
164 }); 166 });
165 167
166 test('ignore files in packages dir', () { 168 test('ignore files in packages dir', () {
167 String projPath = '/my/proj'; 169 String projPath = '/my/proj';
168 resourceProvider.newFolder(projPath); 170 resourceProvider.newFolder(projPath);
169 String pubspecPath = posix.join(projPath, 'pubspec.yaml'); 171 String pubspecPath = posix.join(projPath, 'pubspec.yaml');
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 test('Modify package map dependency', () { 242 test('Modify package map dependency', () {
241 String dependencyPath = posix.join(projPath, 'dep'); 243 String dependencyPath = posix.join(projPath, 'dep');
242 resourceProvider.newFile(dependencyPath, 'contents'); 244 resourceProvider.newFile(dependencyPath, 'contents');
243 String dartFilePath = posix.join(projPath, 'main.dart'); 245 String dartFilePath = posix.join(projPath, 'main.dart');
244 resourceProvider.newFile(dartFilePath, 'contents'); 246 resourceProvider.newFile(dartFilePath, 'contents');
245 packageMapProvider.dependencies.add(dependencyPath); 247 packageMapProvider.dependencies.add(dependencyPath);
246 manager.setRoots(<String>[projPath], <String>[]); 248 manager.setRoots(<String>[projPath], <String>[]);
247 expect(manager.currentContextPackageMaps[projPath], 249 expect(manager.currentContextPackageMaps[projPath],
248 equals(packageMapProvider.packageMap)); 250 equals(packageMapProvider.packageMap));
249 String packagePath = '/package/foo'; 251 String packagePath = '/package/foo';
250 resourceProvider.newFolder(projPath); 252 resourceProvider.newFolder(packagePath);
251 packageMapProvider.packageMap = {'foo': projPath}; 253 packageMapProvider.packageMap = {'foo': projPath};
252 // Changing a .dart file in the project shouldn't cause a new 254 // Changing a .dart file in the project shouldn't cause a new
253 // package map to be picked up. 255 // package map to be picked up.
254 resourceProvider.modifyFile(dartFilePath, 'new contents'); 256 resourceProvider.modifyFile(dartFilePath, 'new contents');
255 return pumpEventQueue().then((_) { 257 return pumpEventQueue().then((_) {
256 expect(manager.currentContextPackageMaps[projPath], isEmpty); 258 expect(manager.currentContextPackageMaps[projPath], isEmpty);
257 // However, changing the package map dependency should. 259 // However, changing the package map dependency should.
258 resourceProvider.modifyFile(dependencyPath, 'new contents'); 260 resourceProvider.modifyFile(dependencyPath, 'new contents');
259 return pumpEventQueue().then((_) { 261 return pumpEventQueue().then((_) {
260 expect(manager.currentContextPackageMaps[projPath], 262 expect(manager.currentContextPackageMaps[projPath],
261 equals(packageMapProvider.packageMap)); 263 equals(packageMapProvider.packageMap));
262 }); 264 });
263 }); 265 });
264 }); 266 });
267
268 test('Modify package map dependency - packageMapProvider failure', () {
269 String dependencyPath = posix.join(projPath, 'dep');
270 resourceProvider.newFile(dependencyPath, 'contents');
271 String dartFilePath = posix.join(projPath, 'main.dart');
272 resourceProvider.newFile(dartFilePath, 'contents');
273 packageMapProvider.dependencies.add(dependencyPath);
274 manager.setRoots(<String>[projPath], <String>[]);
275 expect(manager.currentContextPackageMaps[projPath],
276 equals(packageMapProvider.packageMap));
277 // Change the package map dependency so that the packageMapProvider is
278 // re-run, and arrange for it to return null from computePackageMap().
279 packageMapProvider.packageMap = null;
280 resourceProvider.modifyFile(dependencyPath, 'new contents');
281 return pumpEventQueue().then((_) {
282 // The package map should have been changed to null.
283 expect(manager.currentContextPackageMaps[projPath], isNull);
284 });
285 });
265 }); 286 });
266 }); 287 });
267 } 288 }
OLDNEW
« 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