| 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.dart.local; | 5 library test.services.completion.dart.local; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/protocol_server.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/dart_completion_manager.
dart'; | 10 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 9 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; | 11 import 'package:analysis_server/src/services/completion/local_reference_contribu
tor.dart'; |
| 10 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 12 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 11 import 'package:unittest/unittest.dart'; | 13 import 'package:unittest/unittest.dart'; |
| 12 | 14 |
| 13 import 'completion_test_util.dart'; | 15 import 'completion_test_util.dart'; |
| 14 | 16 |
| 15 main() { | 17 main() { |
| 16 groupSep = ' | '; | 18 groupSep = ' | '; |
| 17 defineReflectiveTests(LocalReferenceContributorTest); | 19 defineReflectiveTests(LocalReferenceContributorTest); |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 } | 93 } |
| 92 | 94 |
| 93 @override | 95 @override |
| 94 CompletionSuggestion assertSuggestLocalVariable( | 96 CompletionSuggestion assertSuggestLocalVariable( |
| 95 String name, String returnType, | 97 String name, String returnType, |
| 96 {int relevance: DART_RELEVANCE_LOCAL_VARIABLE}) { | 98 {int relevance: DART_RELEVANCE_LOCAL_VARIABLE}) { |
| 97 // Local variables should only be suggested by LocalReferenceContributor | 99 // Local variables should only be suggested by LocalReferenceContributor |
| 98 CompletionSuggestion cs = assertSuggest(name, | 100 CompletionSuggestion cs = assertSuggest(name, |
| 99 csKind: CompletionSuggestionKind.INVOCATION, relevance: relevance); | 101 csKind: CompletionSuggestionKind.INVOCATION, relevance: relevance); |
| 100 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); | 102 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); |
| 101 Element element = cs.element; | 103 protocol.Element element = cs.element; |
| 102 expect(element, isNotNull); | 104 expect(element, isNotNull); |
| 103 expect(element.kind, equals(ElementKind.LOCAL_VARIABLE)); | 105 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE)); |
| 104 expect(element.name, equals(name)); | 106 expect(element.name, equals(name)); |
| 105 expect(element.parameters, isNull); | 107 expect(element.parameters, isNull); |
| 106 expect(element.returnType, returnType != null ? returnType : 'dynamic'); | 108 expect(element.returnType, returnType != null ? returnType : 'dynamic'); |
| 107 assertHasNoParameterInfo(cs); | 109 assertHasNoParameterInfo(cs); |
| 108 return cs; | 110 return cs; |
| 109 } | 111 } |
| 110 | 112 |
| 111 CompletionSuggestion assertSuggestParameter(String name, String returnType, | 113 CompletionSuggestion assertSuggestParameter(String name, String returnType, |
| 112 {int relevance: DART_RELEVANCE_PARAMETER}) { | 114 {int relevance: DART_RELEVANCE_PARAMETER}) { |
| 113 CompletionSuggestion cs = assertSuggest(name, | 115 CompletionSuggestion cs = assertSuggest(name, |
| 114 csKind: CompletionSuggestionKind.INVOCATION, relevance: relevance); | 116 csKind: CompletionSuggestionKind.INVOCATION, relevance: relevance); |
| 115 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); | 117 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); |
| 116 Element element = cs.element; | 118 protocol.Element element = cs.element; |
| 117 expect(element, isNotNull); | 119 expect(element, isNotNull); |
| 118 expect(element.kind, equals(ElementKind.PARAMETER)); | 120 expect(element.kind, equals(protocol.ElementKind.PARAMETER)); |
| 119 expect(element.name, equals(name)); | 121 expect(element.name, equals(name)); |
| 120 expect(element.parameters, isNull); | 122 expect(element.parameters, isNull); |
| 121 expect(element.returnType, | 123 expect(element.returnType, |
| 122 equals(returnType != null ? returnType : 'dynamic')); | 124 equals(returnType != null ? returnType : 'dynamic')); |
| 123 return cs; | 125 return cs; |
| 124 } | 126 } |
| 125 | 127 |
| 126 fail_mixin_ordering() { | 128 fail_mixin_ordering() { |
| 127 // TODO(paulberry): Duplicates aren't being removed, so we see both M1.m() | 129 // TODO(paulberry): Duplicates aren't being removed, so we see both M1.m() |
| 128 // and M2.m(). | 130 // and M2.m(). |
| (...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 break; | 457 break; |
| 456 foo: case 2: | 458 foo: case 2: |
| 457 continue ^; | 459 continue ^; |
| 458 case 3: | 460 case 3: |
| 459 break; | 461 break; |
| 460 '''); | 462 '''); |
| 461 expect(computeFast(), isTrue); | 463 expect(computeFast(), isTrue); |
| 462 assertSuggestLabel('foo'); | 464 assertSuggestLabel('foo'); |
| 463 } | 465 } |
| 464 | 466 |
| 467 test_enum() { |
| 468 addTestSource('enum E { one, two } main() {^}'); |
| 469 expect(computeFast(), isTrue); |
| 470 assertSuggestEnum('E'); |
| 471 assertNotSuggested('one'); |
| 472 assertNotSuggested('two'); |
| 473 } |
| 474 |
| 475 test_enum_deprecated() { |
| 476 addTestSource('@deprecated enum E { one, two } main() {^}'); |
| 477 expect(computeFast(), isTrue); |
| 478 assertSuggestEnum('E', isDeprecated: true); |
| 479 assertNotSuggested('one'); |
| 480 assertNotSuggested('two'); |
| 481 } |
| 482 |
| 465 test_function_parameters_mixed_required_and_named() { | 483 test_function_parameters_mixed_required_and_named() { |
| 466 addTestSource(''' | 484 addTestSource(''' |
| 467 void m(x, {int y}) {} | 485 void m(x, {int y}) {} |
| 468 class B extends A { | 486 class B extends A { |
| 469 main() {^} | 487 main() {^} |
| 470 } | 488 } |
| 471 '''); | 489 '''); |
| 472 expect(computeFast(), isTrue); | 490 expect(computeFast(), isTrue); |
| 473 CompletionSuggestion suggestion = assertSuggestLocalFunction('m', 'void'); | 491 CompletionSuggestion suggestion = assertSuggestLocalFunction('m', 'void'); |
| 474 expect(suggestion.parameterNames, hasLength(2)); | 492 expect(suggestion.parameterNames, hasLength(2)); |
| (...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 764 expect(computeFast(), isTrue); | 782 expect(computeFast(), isTrue); |
| 765 assertSuggestMethod('m', 'B', null, relevance: DART_RELEVANCE_LOCAL_METHOD); | 783 assertSuggestMethod('m', 'B', null, relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 766 } | 784 } |
| 767 | 785 |
| 768 test_shadowed_name() { | 786 test_shadowed_name() { |
| 769 addTestSource('var a; class A { var a; m() { ^ } }'); | 787 addTestSource('var a; class A { var a; m() { ^ } }'); |
| 770 expect(computeFast(), isTrue); | 788 expect(computeFast(), isTrue); |
| 771 assertSuggestLocalField('a', null); | 789 assertSuggestLocalField('a', null); |
| 772 } | 790 } |
| 773 } | 791 } |
| OLD | NEW |