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