| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |