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

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

Issue 1860213002: Fix for issue 24555: import/export/part completion improvement. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Comment from DanR Created 4 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
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.completion; 5 library test.domain.completion;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; 9 import 'package:analysis_server/plugin/protocol/protocol.dart';
10 import 'package:analysis_server/src/domain_completion.dart'; 10 import 'package:analysis_server/src/domain_completion.dart';
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 await waitForTasksFinished(); 133 await waitForTasksFinished();
134 server.updateContent('uc1', {testFile: new AddContentOverlay(testCode)}); 134 server.updateContent('uc1', {testFile: new AddContentOverlay(testCode)});
135 server.updateContent('uc2', { 135 server.updateContent('uc2', {
136 testFile: 136 testFile:
137 new ChangeContentOverlay([new SourceEdit(completionOffset, 0, 'xp')]) 137 new ChangeContentOverlay([new SourceEdit(completionOffset, 0, 'xp')])
138 }); 138 });
139 completionOffset += 2; 139 completionOffset += 2;
140 await getSuggestions(); 140 await getSuggestions();
141 expect(replacementOffset, completionOffset - 3); 141 expect(replacementOffset, completionOffset - 3);
142 expect(replacementLength, 3); 142 expect(replacementLength, 3);
143 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export', 143 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export \'\';',
144 relevance: DART_RELEVANCE_HIGH); 144 selectionOffset: 8, relevance: DART_RELEVANCE_HIGH);
145 assertHasResult(CompletionSuggestionKind.KEYWORD, 'import', 145 assertHasResult(CompletionSuggestionKind.KEYWORD, 'import \'\';',
146 relevance: DART_RELEVANCE_HIGH); 146 selectionOffset: 8, relevance: DART_RELEVANCE_HIGH);
147 assertNoResult('extends'); 147 assertNoResult('extends');
148 assertNoResult('library'); 148 assertNoResult('library');
149 } 149 }
150 150
151 test_imports_partial() async { 151 test_imports_partial() async {
152 addTestFile('''^ 152 addTestFile('''^
153 import "package:foo/foo.dart"; 153 import "package:foo/foo.dart";
154 import "package:bar/bar.dart"; 154 import "package:bar/bar.dart";
155 class Baz { }'''); 155 class Baz { }''');
156 156
(...skipping 10 matching lines...) Expand all
167 Response response = handleSuccessfulRequest( 167 Response response = handleSuccessfulRequest(
168 new CompletionGetSuggestionsParams(testFile, completionOffset) 168 new CompletionGetSuggestionsParams(testFile, completionOffset)
169 .toRequest('0')); 169 .toRequest('0'));
170 completionId = response.id; 170 completionId = response.id;
171 assertValidId(completionId); 171 assertValidId(completionId);
172 await waitForTasksFinished(); 172 await waitForTasksFinished();
173 expect(replacementOffset, completionOffset - 1); 173 expect(replacementOffset, completionOffset - 1);
174 expect(replacementLength, 1); 174 expect(replacementLength, 1);
175 assertHasResult(CompletionSuggestionKind.KEYWORD, 'library', 175 assertHasResult(CompletionSuggestionKind.KEYWORD, 'library',
176 relevance: DART_RELEVANCE_HIGH); 176 relevance: DART_RELEVANCE_HIGH);
177 assertHasResult(CompletionSuggestionKind.KEYWORD, 'import', 177 assertHasResult(CompletionSuggestionKind.KEYWORD, 'import \'\';',
178 relevance: DART_RELEVANCE_HIGH); 178 selectionOffset: 8, relevance: DART_RELEVANCE_HIGH);
179 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export', 179 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export \'\';',
180 relevance: DART_RELEVANCE_HIGH); 180 selectionOffset: 8, relevance: DART_RELEVANCE_HIGH);
181 assertHasResult(CompletionSuggestionKind.KEYWORD, 'part', 181 assertHasResult(CompletionSuggestionKind.KEYWORD, 'part \'\';',
182 relevance: DART_RELEVANCE_HIGH); 182 selectionOffset: 6, relevance: DART_RELEVANCE_HIGH);
183 assertNoResult('extends'); 183 assertNoResult('extends');
184 } 184 }
185 185
186 test_imports_prefixed() { 186 test_imports_prefixed() {
187 addTestFile(''' 187 addTestFile('''
188 import 'dart:html' as foo; 188 import 'dart:html' as foo;
189 main() {^} 189 main() {^}
190 '''); 190 ''');
191 return getSuggestions().then((_) { 191 return getSuggestions().then((_) {
192 expect(replacementOffset, equals(completionOffset)); 192 expect(replacementOffset, equals(completionOffset));
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 expect(replacementLength, equals(0)); 346 expect(replacementLength, equals(0));
347 assertHasResult(CompletionSuggestionKind.INVOCATION, 'b'); 347 assertHasResult(CompletionSuggestionKind.INVOCATION, 'b');
348 }); 348 });
349 } 349 }
350 350
351 test_keyword() { 351 test_keyword() {
352 addTestFile('library A; cl^'); 352 addTestFile('library A; cl^');
353 return getSuggestions().then((_) { 353 return getSuggestions().then((_) {
354 expect(replacementOffset, equals(completionOffset - 2)); 354 expect(replacementOffset, equals(completionOffset - 2));
355 expect(replacementLength, equals(2)); 355 expect(replacementLength, equals(2));
356 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export', 356 assertHasResult(CompletionSuggestionKind.KEYWORD, 'export \'\';',
357 relevance: DART_RELEVANCE_HIGH); 357 selectionOffset: 8, relevance: DART_RELEVANCE_HIGH);
358 assertHasResult(CompletionSuggestionKind.KEYWORD, 'class', 358 assertHasResult(CompletionSuggestionKind.KEYWORD, 'class',
359 relevance: DART_RELEVANCE_HIGH); 359 relevance: DART_RELEVANCE_HIGH);
360 }); 360 });
361 } 361 }
362 362
363 test_local_named_constructor() { 363 test_local_named_constructor() {
364 addTestFile('class A {A.c(); x() {new A.^}}'); 364 addTestFile('class A {A.c(); x() {new A.^}}');
365 return getSuggestions().then((_) { 365 return getSuggestions().then((_) {
366 expect(replacementOffset, equals(completionOffset)); 366 expect(replacementOffset, equals(completionOffset));
367 expect(replacementLength, equals(0)); 367 expect(replacementLength, equals(0));
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 } 557 }
558 '''); 558 ''');
559 await waitForTasksFinished(); 559 await waitForTasksFinished();
560 Request request = 560 Request request =
561 new CompletionGetSuggestionsParams(testFile, 0).toRequest('0'); 561 new CompletionGetSuggestionsParams(testFile, 0).toRequest('0');
562 Response response = handler.handleRequest(request); 562 Response response = handler.handleRequest(request);
563 expect(response.error, isNotNull); 563 expect(response.error, isNotNull);
564 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED); 564 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED);
565 } 565 }
566 } 566 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698