| 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.services.completion.toplevel; | 5 library test.services.completion.toplevel; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/protocol.dart'; | 7 import 'package:analysis_server/src/protocol.dart' as protocol |
| 8 show Element, ElementKind; |
| 9 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind; |
| 8 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; | 10 import 'package:analysis_server/src/services/completion/completion_manager.dart'
; |
| 9 import 'package:analysis_server/src/services/completion/dart_completion_cache.da
rt'; | 11 import 'package:analysis_server/src/services/completion/dart_completion_cache.da
rt'; |
| 10 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 12 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 11 import 'package:analysis_server/src/services/completion/imported_computer.dart'; | 13 import 'package:analysis_server/src/services/completion/imported_computer.dart'; |
| 12 import 'package:analyzer/src/generated/ast.dart'; | 14 import 'package:analyzer/src/generated/ast.dart'; |
| 13 import 'package:analyzer/src/generated/element.dart'; | 15 import 'package:analyzer/src/generated/element.dart'; |
| 14 import 'package:analyzer/src/generated/engine.dart'; | 16 import 'package:analyzer/src/generated/engine.dart'; |
| 15 import 'package:analyzer/src/generated/source.dart'; | 17 import 'package:analyzer/src/generated/source.dart'; |
| 16 import 'package:unittest/unittest.dart'; | 18 import 'package:unittest/unittest.dart'; |
| 17 | 19 |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 {int relevance: DART_RELEVANCE_INHERITED_METHOD}) { | 123 {int relevance: DART_RELEVANCE_INHERITED_METHOD}) { |
| 122 return assertSuggestMethod(name, declaringType, returnType, | 124 return assertSuggestMethod(name, declaringType, returnType, |
| 123 relevance: relevance); | 125 relevance: relevance); |
| 124 } | 126 } |
| 125 | 127 |
| 126 CompletionSuggestion assertSuggestImportedSetter(String name, | 128 CompletionSuggestion assertSuggestImportedSetter(String name, |
| 127 {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) { | 129 {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) { |
| 128 return assertSuggestSetter(name, relevance); | 130 return assertSuggestSetter(name, relevance); |
| 129 } | 131 } |
| 130 | 132 |
| 133 @override |
| 134 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, |
| 135 [int relevance = DART_RELEVANCE_DEFAULT, |
| 136 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { |
| 137 CompletionSuggestion cs = |
| 138 assertSuggest(prefix, csKind: kind, relevance: relevance); |
| 139 protocol.Element element = cs.element; |
| 140 expect(element, isNotNull); |
| 141 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); |
| 142 expect(element.parameters, isNull); |
| 143 expect(element.returnType, isNull); |
| 144 assertHasNoParameterInfo(cs); |
| 145 return cs; |
| 146 } |
| 147 |
| 131 bool isCached(List<CompletionSuggestion> suggestions, String completion) => | 148 bool isCached(List<CompletionSuggestion> suggestions, String completion) => |
| 132 suggestions.any((CompletionSuggestion s) => s.completion == completion); | 149 suggestions.any((CompletionSuggestion s) => s.completion == completion); |
| 133 | 150 |
| 134 @override | 151 @override |
| 135 void setUpComputer() { | 152 void setUpComputer() { |
| 136 computer = new ImportedComputer(shouldWaitForLowPrioritySuggestions: true); | 153 computer = new ImportedComputer(shouldWaitForLowPrioritySuggestions: true); |
| 137 } | 154 } |
| 138 | 155 |
| 139 @override | 156 @override |
| 140 test_ArgumentList() { | 157 test_ArgumentList() { |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 }); | 369 }); |
| 353 } | 370 } |
| 354 | 371 |
| 355 test_InstanceCreationExpression() { | 372 test_InstanceCreationExpression() { |
| 356 addSource('/testA.dart', ''' | 373 addSource('/testA.dart', ''' |
| 357 class A {foo(){var f; {var x;}}} | 374 class A {foo(){var f; {var x;}}} |
| 358 class B {B(this.x, [String boo]) { } int x;} | 375 class B {B(this.x, [String boo]) { } int x;} |
| 359 class C {C.bar({boo: 'hoo', int z: 0}) { } }'''); | 376 class C {C.bar({boo: 'hoo', int z: 0}) { } }'''); |
| 360 addTestSource(''' | 377 addTestSource(''' |
| 361 import "/testA.dart"; | 378 import "/testA.dart"; |
| 379 import "dart:math" as math; |
| 362 main() {new ^ String x = "hello";}'''); | 380 main() {new ^ String x = "hello";}'''); |
| 363 computeFast(); | 381 computeFast(); |
| 364 return computeFull((bool result) { | 382 return computeFull((bool result) { |
| 365 CompletionSuggestion suggestion; | 383 CompletionSuggestion suggestion; |
| 366 | 384 |
| 367 suggestion = assertSuggestImportedConstructor('Object'); | 385 suggestion = assertSuggestImportedConstructor('Object'); |
| 368 expect(suggestion.element.parameters, '()'); | 386 expect(suggestion.element.parameters, '()'); |
| 369 expect(suggestion.parameterNames, hasLength(0)); | 387 expect(suggestion.parameterNames, hasLength(0)); |
| 370 expect(suggestion.requiredParameterCount, 0); | 388 expect(suggestion.requiredParameterCount, 0); |
| 371 expect(suggestion.hasNamedParameters, false); | 389 expect(suggestion.hasNamedParameters, false); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 389 suggestion = assertSuggestImportedConstructor('C.bar'); | 407 suggestion = assertSuggestImportedConstructor('C.bar'); |
| 390 expect( | 408 expect( |
| 391 suggestion.element.parameters, "({dynamic boo: 'hoo'}, {int z: 0})"); | 409 suggestion.element.parameters, "({dynamic boo: 'hoo'}, {int z: 0})"); |
| 392 expect(suggestion.parameterNames, hasLength(2)); | 410 expect(suggestion.parameterNames, hasLength(2)); |
| 393 expect(suggestion.parameterNames[0], 'boo'); | 411 expect(suggestion.parameterNames[0], 'boo'); |
| 394 expect(suggestion.parameterTypes[0], 'dynamic'); | 412 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 395 expect(suggestion.parameterNames[1], 'z'); | 413 expect(suggestion.parameterNames[1], 'z'); |
| 396 expect(suggestion.parameterTypes[1], 'int'); | 414 expect(suggestion.parameterTypes[1], 'int'); |
| 397 expect(suggestion.requiredParameterCount, 0); | 415 expect(suggestion.requiredParameterCount, 0); |
| 398 expect(suggestion.hasNamedParameters, true); | 416 expect(suggestion.hasNamedParameters, true); |
| 417 |
| 418 assertSuggestLibraryPrefix('math'); |
| 399 }); | 419 }); |
| 400 } | 420 } |
| 401 | 421 |
| 402 test_method_parameters_mixed_required_and_named() { | 422 test_method_parameters_mixed_required_and_named() { |
| 403 addSource('/libA.dart', ''' | 423 addSource('/libA.dart', ''' |
| 404 class A { | 424 class A { |
| 405 void m(x, {int y}) {} | 425 void m(x, {int y}) {} |
| 406 } | 426 } |
| 407 '''); | 427 '''); |
| 408 addTestSource(''' | 428 addTestSource(''' |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 682 } | 702 } |
| 683 | 703 |
| 684 @override | 704 @override |
| 685 test_partFile_TypeName2() { | 705 test_partFile_TypeName2() { |
| 686 return super.test_partFile_TypeName2().then((_) { | 706 return super.test_partFile_TypeName2().then((_) { |
| 687 expect(request.cache.importKey, | 707 expect(request.cache.importKey, |
| 688 'library libA;import "/testB.dart";part "/testA.dart";'); | 708 'library libA;import "/testB.dart";part "/testA.dart";'); |
| 689 }); | 709 }); |
| 690 } | 710 } |
| 691 } | 711 } |
| OLD | NEW |