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

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

Issue 477323005: Use generated classes to create requests in analysis server unit tests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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.domain.analysis; 5 library test.domain.analysis;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
11 import 'package:analysis_server/src/domain_analysis.dart'; 11 import 'package:analysis_server/src/domain_analysis.dart';
12 import 'package:analysis_server/src/protocol.dart'; 12 import 'package:analysis_server/src/protocol.dart';
13 import 'package:analysis_server/src/protocol2.dart' show AnalysisService, 13 import 'package:analysis_server/src/protocol2.dart';
14 AnalysisError, AnalysisErrorsParams;
15 import 'package:analysis_testing/mock_sdk.dart'; 14 import 'package:analysis_testing/mock_sdk.dart';
16 import 'package:analysis_testing/reflective_tests.dart'; 15 import 'package:analysis_testing/reflective_tests.dart';
17 import 'package:analyzer/file_system/memory_file_system.dart'; 16 import 'package:analyzer/file_system/memory_file_system.dart';
18 import 'package:path/path.dart'; 17 import 'package:path/path.dart';
19 import 'package:unittest/unittest.dart'; 18 import 'package:unittest/unittest.dart';
20 19
21 import 'analysis_abstract.dart'; 20 import 'analysis_abstract.dart';
22 import 'mocks.dart'; 21 import 'mocks.dart';
23 22
24 23
(...skipping 17 matching lines...) Expand all
42 null, 41 null,
43 new MockSdk()); 42 new MockSdk());
44 handler = new AnalysisDomainHandler(server); 43 handler = new AnalysisDomainHandler(server);
45 }); 44 });
46 45
47 group('updateContent', testUpdateContent); 46 group('updateContent', testUpdateContent);
48 group('setSubscriptions', test_setSubscriptions); 47 group('setSubscriptions', test_setSubscriptions);
49 48
50 group('AnalysisDomainHandler', () { 49 group('AnalysisDomainHandler', () {
51 group('setAnalysisRoots', () { 50 group('setAnalysisRoots', () {
52 Request request; 51 Response testSetAnalysisRoots(List<String> included,
53 52 List<String> excluded) {
54 setUp(() { 53 Request request = new AnalysisSetAnalysisRootsParams(included,
55 request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS); 54 excluded).toRequest('0');
56 request.setParameter(INCLUDED, []); 55 return handler.handleRequest(request);
57 request.setParameter(EXCLUDED, []); 56 }
58 });
59 57
60 group('excluded', () { 58 group('excluded', () {
61 test('excluded folder', () { 59 test('excluded folder', () {
62 String project = '/project'; 60 String project = '/project';
63 String fileA = '/project/aaa/a.dart'; 61 String fileA = '/project/aaa/a.dart';
64 String fileB = '/project/bbb/b.dart'; 62 String fileB = '/project/bbb/b.dart';
65 resourceProvider.newFolder(project); 63 resourceProvider.newFolder(project);
66 resourceProvider.newFile(fileA, '// a'); 64 resourceProvider.newFile(fileA, '// a');
67 resourceProvider.newFile(fileB, '// b'); 65 resourceProvider.newFile(fileB, '// b');
68 request.setParameter(INCLUDED, [project]); 66 var response = testSetAnalysisRoots([project], ['/project/bbb']);
69 request.setParameter(EXCLUDED, ['/project/bbb']);
70 var response = handler.handleRequest(request);
71 var serverRef = server; 67 var serverRef = server;
72 expect(response, isResponseSuccess('0')); 68 expect(response, isResponseSuccess('0'));
73 // unit "a" is resolved eventually 69 // unit "a" is resolved eventually
74 // unit "b" is not resolved 70 // unit "b" is not resolved
75 return waitForServerOperationsPerformed(server).then((_) { 71 return waitForServerOperationsPerformed(server).then((_) {
76 expect(serverRef.test_getResolvedCompilationUnit(fileA), isNotNull); 72 expect(serverRef.test_getResolvedCompilationUnit(fileA), isNotNull);
77 expect(serverRef.test_getResolvedCompilationUnit(fileB), isNull); 73 expect(serverRef.test_getResolvedCompilationUnit(fileB), isNull);
78 }); 74 });
79 }); 75 });
80 }); 76 });
81 77
82 group('included', () { 78 group('included', () {
83 test('new folder', () { 79 test('new folder', () {
84 resourceProvider.newFolder('/project'); 80 resourceProvider.newFolder('/project');
85 resourceProvider.newFile('/project/pubspec.yaml', 'name: project'); 81 resourceProvider.newFile('/project/pubspec.yaml', 'name: project');
86 resourceProvider.newFile('/project/bin/test.dart', 'main() {}'); 82 resourceProvider.newFile('/project/bin/test.dart', 'main() {}');
87 request.setParameter(INCLUDED, ['/project']); 83 var response = testSetAnalysisRoots(['/project'], []);
88 var response = handler.handleRequest(request);
89 var serverRef = server; 84 var serverRef = server;
90 expect(response, isResponseSuccess('0')); 85 expect(response, isResponseSuccess('0'));
91 // verify that unit is resolved eventually 86 // verify that unit is resolved eventually
92 return waitForServerOperationsPerformed(server).then((_) { 87 return waitForServerOperationsPerformed(server).then((_) {
93 var unit = 88 var unit =
94 serverRef.test_getResolvedCompilationUnit('/project/bin/test.dar t'); 89 serverRef.test_getResolvedCompilationUnit('/project/bin/test.dar t');
95 expect(unit, isNotNull); 90 expect(unit, isNotNull);
96 }); 91 });
97 }); 92 });
98 }); 93 });
99 }); 94 });
100 95
101 group('setPriorityFiles', () { 96 group('setPriorityFiles', () {
102 test('invalid', () { 97 test('invalid', () {
103 var request = new Request('0', ANALYSIS_SET_PRIORITY_FILES); 98 // TODO(paulberry): under the "eventual consistency" model this request
104 request.setParameter(FILES, ['/project/lib.dart']); 99 // should not be invalid.
100 var request = new AnalysisSetPriorityFilesParams(
101 ['/project/lib.dart']).toRequest('0');
105 var response = handler.handleRequest(request); 102 var response = handler.handleRequest(request);
106 expect(response, isResponseFailure('0')); 103 expect(response, isResponseFailure('0'));
107 }); 104 });
108 105
109 test('valid', () { 106 test('valid', () {
110 resourceProvider.newFolder('/p1'); 107 resourceProvider.newFolder('/p1');
111 resourceProvider.newFile('/p1/a.dart', 'library a;'); 108 resourceProvider.newFile('/p1/a.dart', 'library a;');
112 resourceProvider.newFolder('/p2'); 109 resourceProvider.newFolder('/p2');
113 resourceProvider.newFile('/p2/b.dart', 'library b;'); 110 resourceProvider.newFile('/p2/b.dart', 'library b;');
114 resourceProvider.newFile('/p2/c.dart', 'library c;'); 111 resourceProvider.newFile('/p2/c.dart', 'library c;');
115 112
116 var setRootsRequest = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS); 113 var setRootsRequest = new AnalysisSetAnalysisRootsParams(
117 setRootsRequest.setParameter(INCLUDED, ['/p1', '/p2']); 114 ['/p1', '/p2'], []).toRequest('0');
118 setRootsRequest.setParameter(EXCLUDED, []);
119 var setRootsResponse = handler.handleRequest(setRootsRequest); 115 var setRootsResponse = handler.handleRequest(setRootsRequest);
120 expect(setRootsResponse, isResponseSuccess('0')); 116 expect(setRootsResponse, isResponseSuccess('0'));
121 117
122 void setPriorityFiles(List<String> fileList) { 118 void setPriorityFiles(List<String> fileList) {
123 var request = new Request('0', ANALYSIS_SET_PRIORITY_FILES); 119 var request = new AnalysisSetPriorityFilesParams(
124 request.setParameter(FILES, fileList); 120 fileList).toRequest('0');
125 var response = handler.handleRequest(request); 121 var response = handler.handleRequest(request);
126 expect(response, isResponseSuccess('0')); 122 expect(response, isResponseSuccess('0'));
127 // TODO(brianwilkerson) Enable the line below after getPriorityFiles 123 // TODO(brianwilkerson) Enable the line below after getPriorityFiles
128 // has been implemented. 124 // has been implemented.
129 // expect(server.getPriorityFiles(), unorderedEquals(fileList)); 125 // expect(server.getPriorityFiles(), unorderedEquals(fileList));
130 } 126 }
131 127
132 setPriorityFiles(['/p1/a.dart', '/p2/b.dart']); 128 setPriorityFiles(['/p1/a.dart', '/p2/b.dart']);
133 setPriorityFiles(['/p2/b.dart', '/p2/c.dart']); 129 setPriorityFiles(['/p2/b.dart', '/p2/c.dart']);
134 setPriorityFiles([]); 130 setPriorityFiles([]);
135 }); 131 });
136 }); 132 });
137 133
138 group('updateOptions', () { 134 group('updateOptions', () {
139 test('invalid', () { 135 test('invalid', () {
140 var request = new Request('0', ANALYSIS_UPDATE_OPTIONS); 136 var request = new Request('0', ANALYSIS_UPDATE_OPTIONS, {OPTIONS: {
141 request.setParameter(OPTIONS, {
142 'not-an-option': true 137 'not-an-option': true
143 }); 138 }});
144 var response = handler.handleRequest(request); 139 var response = handler.handleRequest(request);
145 // Invalid options should be silently ignored. 140 // Invalid options should be silently ignored.
146 expect(response, isResponseSuccess('0')); 141 expect(response, isResponseSuccess('0'));
147 }); 142 });
148 143
149 // TODO(paulberry): disabled because analyzeAngular is currently not in th e API. 144 // TODO(paulberry): disabled because analyzeAngular is currently not in th e API.
150 // test('valid', () { 145 // test('valid', () {
151 // AnalysisOptions options = server.contextDirectoryManager.defaultOption s; 146 // engine.AnalysisOptions oldOptions = server.contextDirectoryManager.def aultOptions;
152 // bool analyzeAngular = !options.analyzeAngular; 147 // bool analyzeAngular = !oldOptions.analyzeAngular;
153 // bool enableDeferredLoading = options.enableDeferredLoading; 148 // bool enableDeferredLoading = oldOptions.enableDeferredLoading;
154 // var request = new Request('0', ANALYSIS_UPDATE_OPTIONS); 149 // var newOptions = new AnalysisOptions(analyzeAngular: analyzeAngular,
155 // request.setParameter(OPTIONS, { 150 // enableDeferredLoading: enableDeferredLoading, enableEnums: false);
156 // 'analyzeAngular': analyzeAngular, 151 // var request = new AnalysisUpdateOptionsParams(newOptions).toRequest('0 ');
157 // 'enableDeferredLoading': enableDeferredLoading,
158 // 'enableEnums': false
159 // });
160 // var response = handler.handleRequest(request); 152 // var response = handler.handleRequest(request);
161 // expect(response, isResponseSuccess('0')); 153 // expect(response, isResponseSuccess('0'));
162 // expect(options.analyzeAngular, equals(analyzeAngular)); 154 // expect(oldOptions.analyzeAngular, equals(analyzeAngular));
163 // expect(options.enableDeferredLoading, equals(enableDeferredLoading)); 155 // expect(oldOptions.enableDeferredLoading, equals(enableDeferredLoading) );
164 // }); 156 // });
165 }); 157 });
166 }); 158 });
167 } 159 }
168 160
169 161
170 testUpdateContent() { 162 testUpdateContent() {
171 test('bad type', () { 163 test('bad type', () {
172 AnalysisTestHelper helper = new AnalysisTestHelper(); 164 AnalysisTestHelper helper = new AnalysisTestHelper();
173 helper.createSingleFileProject('// empty'); 165 helper.createSingleFileProject('// empty');
174 return helper.waitForOperationsFinished().then((_) { 166 return helper.waitForOperationsFinished().then((_) {
175 Request request = new Request('0', ANALYSIS_UPDATE_CONTENT); 167 Request request = new Request('0', ANALYSIS_UPDATE_CONTENT, {
176 request.setParameter('files', { 168 'files': {
177 helper.testFile: { 169 helper.testFile: {
178 TYPE: 'foo', 170 TYPE: 'foo',
171 }
179 } 172 }
180 }); 173 });
181 Response response = helper.handler.handleRequest(request); 174 Response response = helper.handler.handleRequest(request);
182 expect(response, isResponseFailure('0')); 175 expect(response, isResponseFailure('0'));
183 }); 176 });
184 }); 177 });
185 178
186 test('full content', () { 179 test('full content', () {
187 AnalysisTestHelper helper = new AnalysisTestHelper(); 180 AnalysisTestHelper helper = new AnalysisTestHelper();
188 helper.createSingleFileProject('// empty'); 181 helper.createSingleFileProject('// empty');
189 return helper.waitForOperationsFinished().then((_) { 182 return helper.waitForOperationsFinished().then((_) {
190 // no errors initially 183 // no errors initially
191 List<AnalysisError> errors = helper.getTestErrors(); 184 List<AnalysisError> errors = helper.getTestErrors();
192 expect(errors, isEmpty); 185 expect(errors, isEmpty);
193 // update code 186 // update code
194 helper.sendContentChange({ 187 helper.sendContentChange(new AddContentOverlay('library lib'));
195 TYPE: ADD,
196 CONTENT: 'library lib'
197 });
198 // wait, there is an error 188 // wait, there is an error
199 return helper.waitForOperationsFinished().then((_) { 189 return helper.waitForOperationsFinished().then((_) {
200 List<AnalysisError> errors = helper.getTestErrors(); 190 List<AnalysisError> errors = helper.getTestErrors();
201 expect(errors, hasLength(1)); 191 expect(errors, hasLength(1));
202 }); 192 });
203 }); 193 });
204 }); 194 });
205 195
206 test('incremental', () { 196 test('incremental', () {
207 AnalysisTestHelper helper = new AnalysisTestHelper(); 197 AnalysisTestHelper helper = new AnalysisTestHelper();
208 String initialContent = 'library A;'; 198 String initialContent = 'library A;';
209 helper.createSingleFileProject(initialContent); 199 helper.createSingleFileProject(initialContent);
210 return helper.waitForOperationsFinished().then((_) { 200 return helper.waitForOperationsFinished().then((_) {
211 // no errors initially 201 // no errors initially
212 List<AnalysisError> errors = helper.getTestErrors(); 202 List<AnalysisError> errors = helper.getTestErrors();
213 expect(errors, isEmpty); 203 expect(errors, isEmpty);
214 // Add the file to the cache 204 // Add the file to the cache
215 helper.sendContentChange({ 205 helper.sendContentChange(new AddContentOverlay(initialContent));
216 TYPE: ADD,
217 CONTENT: initialContent
218 });
219 // update code 206 // update code
220 helper.sendContentChange({ 207 helper.sendContentChange(new ChangeContentOverlay([
221 TYPE: CHANGE, 208 new SourceEdit('library '.length, 'A;'.length, 'lib')]));
222 EDITS: [{
223 REPLACEMENT: 'lib',
224 OFFSET: 'library '.length,
225 LENGTH: 'A;'.length
226 }]
227 });
228 // wait, there is an error 209 // wait, there is an error
229 return helper.waitForOperationsFinished().then((_) { 210 return helper.waitForOperationsFinished().then((_) {
230 List<AnalysisError> errors = helper.getTestErrors(); 211 List<AnalysisError> errors = helper.getTestErrors();
231 expect(errors, hasLength(1)); 212 expect(errors, hasLength(1));
232 }); 213 });
233 }); 214 });
234 }); 215 });
235 216
236 test('change on disk, normal', () { 217 test('change on disk, normal', () {
237 AnalysisTestHelper helper = new AnalysisTestHelper(); 218 AnalysisTestHelper helper = new AnalysisTestHelper();
(...skipping 10 matching lines...) Expand all
248 }); 229 });
249 }); 230 });
250 }); 231 });
251 }); 232 });
252 233
253 test('change on disk, during override', () { 234 test('change on disk, during override', () {
254 AnalysisTestHelper helper = new AnalysisTestHelper(); 235 AnalysisTestHelper helper = new AnalysisTestHelper();
255 helper.createSingleFileProject('library A;'); 236 helper.createSingleFileProject('library A;');
256 return helper.waitForOperationsFinished().then((_) { 237 return helper.waitForOperationsFinished().then((_) {
257 // update code 238 // update code
258 helper.sendContentChange({ 239 helper.sendContentChange(new AddContentOverlay('library B;'));
259 TYPE: ADD,
260 CONTENT: 'library B;'
261 });
262 // There should be no errors 240 // There should be no errors
263 return helper.waitForOperationsFinished().then((_) { 241 return helper.waitForOperationsFinished().then((_) {
264 expect(helper.getTestErrors(), hasLength(0)); 242 expect(helper.getTestErrors(), hasLength(0));
265 // Change file on disk, adding a syntax error. 243 // Change file on disk, adding a syntax error.
266 helper.resourceProvider.modifyFile(helper.testFile, 'library lib'); 244 helper.resourceProvider.modifyFile(helper.testFile, 'library lib');
267 // There should still be no errors (file should not have been reread). 245 // There should still be no errors (file should not have been reread).
268 return helper.waitForOperationsFinished().then((_) { 246 return helper.waitForOperationsFinished().then((_) {
269 expect(helper.getTestErrors(), hasLength(0)); 247 expect(helper.getTestErrors(), hasLength(0));
270 // Send a content change with a null content param--file should be 248 // Send a content change with a null content param--file should be
271 // reread from disk. 249 // reread from disk.
272 helper.sendContentChange({ 250 helper.sendContentChange(new RemoveContentOverlay());
273 TYPE: REMOVE
274 });
275 // There should be errors now. 251 // There should be errors now.
276 return helper.waitForOperationsFinished().then((_) { 252 return helper.waitForOperationsFinished().then((_) {
277 expect(helper.getTestErrors(), hasLength(1)); 253 expect(helper.getTestErrors(), hasLength(1));
278 }); 254 });
279 }); 255 });
280 }); 256 });
281 }); 257 });
282 }); 258 });
283 } 259 }
284 260
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 404
429 /** 405 /**
430 * A helper to test 'analysis.*' requests. 406 * A helper to test 'analysis.*' requests.
431 */ 407 */
432 class AnalysisTestHelper { 408 class AnalysisTestHelper {
433 MockServerChannel serverChannel; 409 MockServerChannel serverChannel;
434 MemoryResourceProvider resourceProvider; 410 MemoryResourceProvider resourceProvider;
435 AnalysisServer server; 411 AnalysisServer server;
436 AnalysisDomainHandler handler; 412 AnalysisDomainHandler handler;
437 413
438 Map<String, List<String>> analysisSubscriptions = {}; 414 Map<AnalysisService, List<String>> analysisSubscriptions = {};
439 415
440 Map<String, List<AnalysisError>> filesErrors = {}; 416 Map<String, List<AnalysisError>> filesErrors = {};
441 Map<String, List<Map<String, Object>>> filesHighlights = {}; 417 Map<String, List<Map<String, Object>>> filesHighlights = {};
442 Map<String, List<Map<String, Object>>> filesNavigation = {}; 418 Map<String, List<Map<String, Object>>> filesNavigation = {};
443 419
444 String testFile = '/project/bin/test.dart'; 420 String testFile = '/project/bin/test.dart';
445 String testCode; 421 String testCode;
446 422
447 AnalysisTestHelper() { 423 AnalysisTestHelper() {
448 serverChannel = new MockServerChannel(); 424 serverChannel = new MockServerChannel();
(...skipping 19 matching lines...) Expand all
468 } 444 }
469 if (notification.event == ANALYSIS_NAVIGATION) { 445 if (notification.event == ANALYSIS_NAVIGATION) {
470 String file = notification.getParameter(FILE); 446 String file = notification.getParameter(FILE);
471 filesNavigation[file] = notification.getParameter(REGIONS); 447 filesNavigation[file] = notification.getParameter(REGIONS);
472 } 448 }
473 }); 449 });
474 } 450 }
475 451
476 void addAnalysisSubscription(AnalysisService service, String file) { 452 void addAnalysisSubscription(AnalysisService service, String file) {
477 // add file to subscription 453 // add file to subscription
478 var files = analysisSubscriptions[service.name]; 454 var files = analysisSubscriptions[service];
479 if (files == null) { 455 if (files == null) {
480 files = <String>[]; 456 files = <String>[];
481 analysisSubscriptions[service.name] = files; 457 analysisSubscriptions[service] = files;
482 } 458 }
483 files.add(file); 459 files.add(file);
484 // set subscriptions 460 // set subscriptions
485 Request request = new Request('0', ANALYSIS_SET_SUBSCRIPTIONS); 461 Request request = new AnalysisSetSubscriptionsParams(
486 request.setParameter(SUBSCRIPTIONS, analysisSubscriptions); 462 analysisSubscriptions).toRequest('0');
487 handleSuccessfulRequest(request); 463 handleSuccessfulRequest(request);
488 } 464 }
489 465
490 void addAnalysisSubscriptionHighlights(String file) { 466 void addAnalysisSubscriptionHighlights(String file) {
491 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, file); 467 addAnalysisSubscription(AnalysisService.HIGHLIGHTS, file);
492 } 468 }
493 469
494 void addAnalysisSubscriptionNavigation(String file) { 470 void addAnalysisSubscriptionNavigation(String file) {
495 addAnalysisSubscription(AnalysisService.NAVIGATION, file); 471 addAnalysisSubscription(AnalysisService.NAVIGATION, file);
496 } 472 }
497 473
498 /** 474 /**
499 * Creates an empty project `/project`. 475 * Creates an empty project `/project`.
500 */ 476 */
501 void createEmptyProject() { 477 void createEmptyProject() {
502 resourceProvider.newFolder('/project'); 478 resourceProvider.newFolder('/project');
503 Request request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS); 479 Request request = new AnalysisSetAnalysisRootsParams(['/project'],
504 request.setParameter(INCLUDED, ['/project']); 480 []).toRequest('0');
505 request.setParameter(EXCLUDED, []);
506 handleSuccessfulRequest(request); 481 handleSuccessfulRequest(request);
507 } 482 }
508 483
509 /** 484 /**
510 * Creates a project with a single Dart file `/project/bin/test.dart` with 485 * Creates a project with a single Dart file `/project/bin/test.dart` with
511 * the given [code]. 486 * the given [code].
512 */ 487 */
513 void createSingleFileProject(code) { 488 void createSingleFileProject(code) {
514 this.testCode = _getCodeString(code); 489 this.testCode = _getCodeString(code);
515 resourceProvider.newFolder('/project'); 490 resourceProvider.newFolder('/project');
516 resourceProvider.newFile(testFile, testCode); 491 resourceProvider.newFile(testFile, testCode);
517 Request request = new Request('0', ANALYSIS_SET_ANALYSIS_ROOTS); 492 Request request = new AnalysisSetAnalysisRootsParams(['/project'],
518 request.setParameter(INCLUDED, ['/project']); 493 []).toRequest('0');
519 request.setParameter(EXCLUDED, []);
520 handleSuccessfulRequest(request); 494 handleSuccessfulRequest(request);
521 } 495 }
522 496
523 /** 497 /**
524 * Returns the offset of [search] in [testCode]. 498 * Returns the offset of [search] in [testCode].
525 * Fails if not found. 499 * Fails if not found.
526 */ 500 */
527 int findOffset(String search) { 501 int findOffset(String search) {
528 int offset = testCode.indexOf(search); 502 int offset = testCode.indexOf(search);
529 expect(offset, isNot(-1)); 503 expect(offset, isNot(-1));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
594 * Validates that the given [request] is handled successfully. 568 * Validates that the given [request] is handled successfully.
595 */ 569 */
596 void handleSuccessfulRequest(Request request) { 570 void handleSuccessfulRequest(Request request) {
597 Response response = handler.handleRequest(request); 571 Response response = handler.handleRequest(request);
598 expect(response, isResponseSuccess('0')); 572 expect(response, isResponseSuccess('0'));
599 } 573 }
600 574
601 /** 575 /**
602 * Send an `updateContent` request for [testFile]. 576 * Send an `updateContent` request for [testFile].
603 */ 577 */
604 void sendContentChange(Map contentChange) { 578 void sendContentChange(dynamic contentChange) {
605 Request request = new Request('0', ANALYSIS_UPDATE_CONTENT); 579 Request request = new AnalysisUpdateContentParams({
606 request.setParameter('files', { 580 testFile: contentChange}).toRequest('0');
607 testFile: contentChange
608 });
609 handleSuccessfulRequest(request); 581 handleSuccessfulRequest(request);
610 } 582 }
611 583
612 String setFileContent(String path, String content) { 584 String setFileContent(String path, String content) {
613 resourceProvider.newFile(path, content); 585 resourceProvider.newFile(path, content);
614 return path; 586 return path;
615 } 587 }
616 588
617 /** 589 /**
618 * Stops the associated server. 590 * Stops the associated server.
(...skipping 10 matching lines...) Expand all
629 return waitForServerOperationsPerformed(server); 601 return waitForServerOperationsPerformed(server);
630 } 602 }
631 603
632 static String _getCodeString(code) { 604 static String _getCodeString(code) {
633 if (code is List<String>) { 605 if (code is List<String>) {
634 code = code.join('\n'); 606 code = code.join('\n');
635 } 607 }
636 return code as String; 608 return code as String;
637 } 609 }
638 } 610 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/analysis_hover_test.dart ('k') | pkg/analysis_server/test/domain_completion_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698