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

Side by Side Diff: pkg/analysis_server/test/analysis/update_content_test.dart

Issue 1753083003: Fix issue where errors aren't reported for a new overlay (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: rewritten, with a test Created 4 years, 9 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
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.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) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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.analysis.updateContent; 5 library test.analysis.updateContent;
6 6
7 import 'package:analysis_server/plugin/protocol/protocol.dart'; 7 import 'package:analysis_server/plugin/protocol/protocol.dart';
8 import 'package:analysis_server/src/analysis_server.dart'; 8 import 'package:analysis_server/src/analysis_server.dart';
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/services/index/index.dart'; 10 import 'package:analysis_server/src/services/index/index.dart';
(...skipping 24 matching lines...) Expand all
35 int navigationCount = 0; 35 int navigationCount = 0;
36 36
37 Index createIndex() { 37 Index createIndex() {
38 return new _MockIndex(); 38 return new _MockIndex();
39 } 39 }
40 40
41 @override 41 @override
42 void processNotification(Notification notification) { 42 void processNotification(Notification notification) {
43 if (notification.event == ANALYSIS_ERRORS) { 43 if (notification.event == ANALYSIS_ERRORS) {
44 var decoded = new AnalysisErrorsParams.fromNotification(notification); 44 var decoded = new AnalysisErrorsParams.fromNotification(notification);
45 filesErrors[decoded.file] = decoded.errors; 45 _format(AnalysisError e) => "${e.location.startLine}: ${e.message}";
46 filesErrors[decoded.file] = decoded.errors.map(_format).toList();
46 } 47 }
47 if (notification.event == ANALYSIS_NAVIGATION) { 48 if (notification.event == ANALYSIS_NAVIGATION) {
48 navigationCount++; 49 navigationCount++;
49 } 50 }
50 if (notification.event == SERVER_ERROR) { 51 if (notification.event == SERVER_ERROR) {
51 serverErrorCount++; 52 serverErrorCount++;
52 } 53 }
53 } 54 }
54 55
55 test_discardNotifications_onSourceChange() async { 56 test_discardNotifications_onSourceChange() async {
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 expect(sources, hasLength(1)); 182 expect(sources, hasLength(1));
182 expect(sources[0].fullName, filePath); 183 expect(sources[0].fullName, filePath);
183 } 184 }
184 expect(_getUserSources(context2), isEmpty); 185 expect(_getUserSources(context2), isEmpty);
185 // remove the overlay - no sources 186 // remove the overlay - no sources
186 server.updateContent('2', {filePath: new RemoveContentOverlay()}); 187 server.updateContent('2', {filePath: new RemoveContentOverlay()});
187 expect(_getUserSources(context1), isEmpty); 188 expect(_getUserSources(context1), isEmpty);
188 expect(_getUserSources(context2), isEmpty); 189 expect(_getUserSources(context2), isEmpty);
189 } 190 }
190 191
192 test_overlay_addPreviouslyImported() async {
193 Folder project = resourceProvider.newFolder('/project');
194 handleSuccessfulRequest(
195 new AnalysisSetAnalysisRootsParams([project.path], []).toRequest('0'));
196
197 server.updateContent('1',
198 {'/project/main.dart': new AddContentOverlay('import "target.dart";')});
199 await server.onAnalysisComplete;
200 expect(filesErrors, {
201 '/project/main.dart': ["1: Target of URI does not exist: 'target.dart'"],
202 '/project/target.dart': []
203 });
204
205 server.updateContent('1',
206 {'/project/target.dart': new AddContentOverlay('import "none.dart";')});
207 await server.onAnalysisComplete;
208 expect(filesErrors, {
209 '/project/main.dart': ["1: Unused import"],
210 '/project/target.dart': ["1: Target of URI does not exist: 'none.dart'"],
211 '/project/none.dart': []
212 });
213 }
214
191 test_removeOverlay_incrementalChange() async { 215 test_removeOverlay_incrementalChange() async {
192 createProject(); 216 createProject();
193 addTestFile('main() { print(1); }'); 217 addTestFile('main() { print(1); }');
194 await server.onAnalysisComplete; 218 await server.onAnalysisComplete;
195 CompilationUnit unit = _getTestUnit(); 219 CompilationUnit unit = _getTestUnit();
196 // add an overlay 220 // add an overlay
197 server.updateContent( 221 server.updateContent(
198 '1', {testFile: new AddContentOverlay('main() { print(2); }')}); 222 '1', {testFile: new AddContentOverlay('main() { print(2); }')});
199 // it was an incremental change 223 // it was an incremental change
200 await server.onAnalysisComplete; 224 await server.onAnalysisComplete;
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 290
267 _ArgumentMatcher_CompilationUnit(this.file); 291 _ArgumentMatcher_CompilationUnit(this.file);
268 292
269 @override 293 @override
270 bool matches(arg) { 294 bool matches(arg) {
271 return arg is CompilationUnit && arg.element.source.fullName == file; 295 return arg is CompilationUnit && arg.element.source.fullName == file;
272 } 296 }
273 } 297 }
274 298
275 class _MockIndex extends TypedMock implements Index {} 299 class _MockIndex extends TypedMock implements Index {}
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698