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

Side by Side Diff: pkg/analysis_server/test/context_manager_test.dart

Issue 1047733004: Support refresh of individual analysis roots (issue 22254) (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address more comments Created 5 years, 8 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
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 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analysis_server/src/context_manager.dart'; 9 import 'package:analysis_server/src/context_manager.dart';
10 import 'package:analyzer/file_system/file_system.dart'; 10 import 'package:analyzer/file_system/file_system.dart';
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 } 122 }
123 123
124 test_refresh_folder_with_pubspec() { 124 test_refresh_folder_with_pubspec() {
125 // create a context with a pubspec.yaml file 125 // create a context with a pubspec.yaml file
126 String pubspecPath = posix.join(projPath, 'pubspec.yaml'); 126 String pubspecPath = posix.join(projPath, 'pubspec.yaml');
127 resourceProvider.newFile(pubspecPath, 'pubspec'); 127 resourceProvider.newFile(pubspecPath, 'pubspec');
128 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); 128 manager.setRoots(<String>[projPath], <String>[], <String, String>{});
129 return pumpEventQueue().then((_) { 129 return pumpEventQueue().then((_) {
130 expect(manager.currentContextPaths.toList(), [projPath]); 130 expect(manager.currentContextPaths.toList(), [projPath]);
131 manager.now++; 131 manager.now++;
132 manager.refresh(); 132 manager.refresh(null);
133 return pumpEventQueue().then((_) { 133 return pumpEventQueue().then((_) {
134 expect(manager.currentContextPaths.toList(), [projPath]); 134 expect(manager.currentContextPaths.toList(), [projPath]);
135 expect(manager.currentContextTimestamps[projPath], manager.now); 135 expect(manager.currentContextTimestamps[projPath], manager.now);
136 }); 136 });
137 }); 137 });
138 } 138 }
139 139
140 test_refresh_folder_with_pubspec_subfolders() { 140 test_refresh_folder_with_pubspec_subfolders() {
141 // Create a folder with no pubspec.yaml, containing two subfolders with 141 // Create a folder with no pubspec.yaml, containing two subfolders with
142 // pubspec.yaml files. 142 // pubspec.yaml files.
143 String subdir1Path = posix.join(projPath, 'subdir1'); 143 String subdir1Path = posix.join(projPath, 'subdir1');
144 String subdir2Path = posix.join(projPath, 'subdir2'); 144 String subdir2Path = posix.join(projPath, 'subdir2');
145 String pubspec1Path = posix.join(subdir1Path, 'pubspec.yaml'); 145 String pubspec1Path = posix.join(subdir1Path, 'pubspec.yaml');
146 String pubspec2Path = posix.join(subdir2Path, 'pubspec.yaml'); 146 String pubspec2Path = posix.join(subdir2Path, 'pubspec.yaml');
147 resourceProvider.newFile(pubspec1Path, 'pubspec'); 147 resourceProvider.newFile(pubspec1Path, 'pubspec');
148 resourceProvider.newFile(pubspec2Path, 'pubspec'); 148 resourceProvider.newFile(pubspec2Path, 'pubspec');
149 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); 149 manager.setRoots(<String>[projPath], <String>[], <String, String>{});
150 return pumpEventQueue().then((_) { 150 return pumpEventQueue().then((_) {
151 expect(manager.currentContextPaths.toSet(), 151 expect(manager.currentContextPaths.toSet(),
152 [subdir1Path, subdir2Path, projPath].toSet()); 152 [subdir1Path, subdir2Path, projPath].toSet());
153 manager.now++; 153 manager.now++;
154 manager.refresh(); 154 manager.refresh(null);
155 return pumpEventQueue().then((_) { 155 return pumpEventQueue().then((_) {
156 expect(manager.currentContextPaths.toSet(), 156 expect(manager.currentContextPaths.toSet(),
157 [subdir1Path, subdir2Path, projPath].toSet()); 157 [subdir1Path, subdir2Path, projPath].toSet());
158 expect(manager.currentContextTimestamps[projPath], manager.now); 158 expect(manager.currentContextTimestamps[projPath], manager.now);
159 expect(manager.currentContextTimestamps[subdir1Path], manager.now); 159 expect(manager.currentContextTimestamps[subdir1Path], manager.now);
160 expect(manager.currentContextTimestamps[subdir2Path], manager.now); 160 expect(manager.currentContextTimestamps[subdir2Path], manager.now);
161 }); 161 });
162 }); 162 });
163 } 163 }
164 164
165 test_refresh_oneContext() {
166 // create two contexts with pubspec.yaml files
167 String pubspecPath = posix.join(projPath, 'pubspec.yaml');
168 resourceProvider.newFile(pubspecPath, 'pubspec1');
169
170 String proj2Path = '/my/proj2';
171 resourceProvider.newFolder(proj2Path);
172 String pubspec2Path = posix.join(proj2Path, 'pubspec.yaml');
173 resourceProvider.newFile(pubspec2Path, 'pubspec2');
174
175 List<String> roots = <String>[projPath, proj2Path];
176 manager.setRoots(roots, <String>[], <String, String>{});
177 return pumpEventQueue().then((_) {
178 expect(manager.currentContextPaths.toList(), unorderedEquals(roots));
179 int then = manager.now;
180 manager.now++;
181 manager.refresh([resourceProvider.getResource(proj2Path)]);
182 return pumpEventQueue().then((_) {
183 expect(manager.currentContextPaths.toList(), unorderedEquals(roots));
184 expect(manager.currentContextTimestamps[projPath], then);
185 expect(manager.currentContextTimestamps[proj2Path], manager.now);
186 });
187 });
188 }
189
165 void test_setRoots_addFolderWithDartFile() { 190 void test_setRoots_addFolderWithDartFile() {
166 String filePath = posix.join(projPath, 'foo.dart'); 191 String filePath = posix.join(projPath, 'foo.dart');
167 resourceProvider.newFile(filePath, 'contents'); 192 resourceProvider.newFile(filePath, 'contents');
168 manager.setRoots(<String>[projPath], <String>[], <String, String>{}); 193 manager.setRoots(<String>[projPath], <String>[], <String, String>{});
169 // verify 194 // verify
170 var filePaths = manager.currentContextFilePaths[projPath]; 195 var filePaths = manager.currentContextFilePaths[projPath];
171 expect(filePaths, hasLength(1)); 196 expect(filePaths, hasLength(1));
172 expect(filePaths, contains(filePath)); 197 expect(filePaths, contains(filePath));
173 } 198 }
174 199
(...skipping 781 matching lines...) Expand 10 before | Expand all | Expand 10 after
956 currentContextSources.remove(path); 981 currentContextSources.remove(path);
957 currentContextPackageUriResolvers.remove(path); 982 currentContextPackageUriResolvers.remove(path);
958 } 983 }
959 984
960 @override 985 @override
961 void updateContextPackageUriResolver( 986 void updateContextPackageUriResolver(
962 Folder contextFolder, UriResolver packageUriResolver) { 987 Folder contextFolder, UriResolver packageUriResolver) {
963 currentContextPackageUriResolvers[contextFolder.path] = packageUriResolver; 988 currentContextPackageUriResolvers[contextFolder.path] = packageUriResolver;
964 } 989 }
965 } 990 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/analysis/reanalyze_test.dart ('k') | pkg/analysis_server/test/integration/protocol_matchers.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698