| 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.util; | 5 library test.services.completion.util; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 | 8 |
| 9 import 'package:analysis_server/src/protocol.dart'; | 9 import 'package:analysis_server/src/protocol.dart' as protocol show Element, Ele
mentKind; |
| 10 import 'package:analysis_server/src/protocol.dart' hide Element; |
| 10 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 11 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 11 import 'package:analysis_server/src/services/index/index.dart'; | 12 import 'package:analysis_server/src/services/index/index.dart'; |
| 12 import 'package:analysis_server/src/services/index/local_memory_index.dart'; | 13 import 'package:analysis_server/src/services/index/local_memory_index.dart'; |
| 13 import 'package:analysis_server/src/services/search/search_engine_internal.dart'
; | 14 import 'package:analysis_server/src/services/search/search_engine_internal.dart'
; |
| 14 import 'package:analyzer/src/generated/ast.dart'; | 15 import 'package:analyzer/src/generated/ast.dart'; |
| 15 import 'package:analyzer/src/generated/element.dart'; | 16 import 'package:analyzer/src/generated/element.dart'; |
| 16 import 'package:analyzer/src/generated/engine.dart'; | 17 import 'package:analyzer/src/generated/engine.dart'; |
| 17 import 'package:analyzer/src/generated/source.dart'; | 18 import 'package:analyzer/src/generated/source.dart'; |
| 18 import 'package:unittest/unittest.dart'; | 19 import 'package:unittest/unittest.dart'; |
| 19 | 20 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 } | 78 } |
| 78 expect(cs.kind, equals(kind)); | 79 expect(cs.kind, equals(kind)); |
| 79 expect(cs.relevance, equals(relevance)); | 80 expect(cs.relevance, equals(relevance)); |
| 80 expect(cs.selectionOffset, equals(completion.length)); | 81 expect(cs.selectionOffset, equals(completion.length)); |
| 81 expect(cs.selectionLength, equals(0)); | 82 expect(cs.selectionLength, equals(0)); |
| 82 expect(cs.isDeprecated, equals(isDeprecated)); | 83 expect(cs.isDeprecated, equals(isDeprecated)); |
| 83 expect(cs.isPotential, equals(isPotential)); | 84 expect(cs.isPotential, equals(isPotential)); |
| 84 return cs; | 85 return cs; |
| 85 } | 86 } |
| 86 | 87 |
| 87 void assertSuggestClass(String className, [CompletionRelevance relevance = | 88 CompletionSuggestion assertSuggestClass(String name, |
| 88 CompletionRelevance.DEFAULT]) { | 89 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 89 assertSuggest(CompletionSuggestionKind.CLASS, className, relevance); | 90 CompletionSuggestion cs = |
| 91 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); |
| 92 protocol.Element element = cs.element; |
| 93 expect(element, isNotNull); |
| 94 expect(element.kind, equals(protocol.ElementKind.CLASS)); |
| 95 expect(element.name, equals(name)); |
| 96 expect(element.returnType, isNull); |
| 97 return cs; |
| 90 } | 98 } |
| 91 | 99 |
| 92 void assertSuggestField(String completion, String declaringType, String type, | 100 CompletionSuggestion assertSuggestFunction(String name, String returnType, |
| 101 bool isDeprecated, [CompletionRelevance relevance = |
| 102 CompletionRelevance.DEFAULT]) { |
| 103 CompletionSuggestion cs = assertSuggest( |
| 104 CompletionSuggestionKind.FUNCTION, |
| 105 name, |
| 106 relevance, |
| 107 isDeprecated); |
| 108 expect(cs.returnType, equals(returnType)); |
| 109 protocol.Element element = cs.element; |
| 110 expect(element, isNotNull); |
| 111 expect(element.kind, equals(protocol.ElementKind.FUNCTION)); |
| 112 expect(element.name, equals(name)); |
| 113 expect(element.isDeprecated, equals(isDeprecated)); |
| 114 expect( |
| 115 element.returnType, |
| 116 equals(returnType != null ? returnType : 'dynamic')); |
| 117 return cs; |
| 118 } |
| 119 |
| 120 CompletionSuggestion assertSuggestGetter(String name, String returnType, |
| 93 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 121 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 94 CompletionSuggestion cs = | 122 CompletionSuggestion cs = |
| 95 assertSuggest(CompletionSuggestionKind.FIELD, completion, relevance); | 123 assertSuggest(CompletionSuggestionKind.GETTER, name, relevance); |
| 96 expect(cs.declaringType, equals(declaringType)); | 124 expect(cs.returnType, equals(returnType)); |
| 97 expect(cs.returnType, equals(type)); | 125 protocol.Element element = cs.element; |
| 126 expect(element, isNotNull); |
| 127 expect(element.kind, equals(protocol.ElementKind.GETTER)); |
| 128 expect(element.name, equals(name)); |
| 129 expect( |
| 130 element.returnType, |
| 131 equals(returnType != null ? returnType : 'dynamic')); |
| 132 return cs; |
| 98 } | 133 } |
| 99 | 134 |
| 100 void assertSuggestFunction(String completion, String returnType, | 135 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, |
| 101 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 136 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 102 CompletionSuggestion cs = | 137 CompletionSuggestion cs = |
| 103 assertSuggest(CompletionSuggestionKind.FUNCTION, completion, relevance); | 138 assertSuggest(CompletionSuggestionKind.LIBRARY_PREFIX, prefix, relevance
); |
| 104 expect(cs.returnType, equals(returnType)); | 139 protocol.Element element = cs.element; |
| 140 expect(element, isNotNull); |
| 141 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); |
| 142 expect(element.name, equals(prefix)); |
| 143 expect(element.returnType, isNull); |
| 144 return cs; |
| 105 } | 145 } |
| 106 | 146 |
| 107 void assertSuggestGetter(String className, String returnType, | 147 CompletionSuggestion assertSuggestLocalVariable(String name, |
| 108 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | |
| 109 CompletionSuggestion cs = | |
| 110 assertSuggest(CompletionSuggestionKind.GETTER, className, relevance); | |
| 111 expect(cs.returnType, equals(returnType)); | |
| 112 } | |
| 113 | |
| 114 void assertSuggestLibraryPrefix(String completion, | |
| 115 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | |
| 116 assertSuggest( | |
| 117 CompletionSuggestionKind.LIBRARY_PREFIX, | |
| 118 completion, | |
| 119 relevance); | |
| 120 } | |
| 121 | |
| 122 void assertSuggestLocalVariable(String completion, String returnType, | |
| 123 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | |
| 124 CompletionSuggestion cs = | |
| 125 assertSuggest(CompletionSuggestionKind.LOCAL_VARIABLE, completion, relev
ance); | |
| 126 expect(cs.returnType, equals(returnType)); | |
| 127 } | |
| 128 | |
| 129 void assertSuggestMethod(String className, String declaringType, | |
| 130 String returnType, [CompletionRelevance relevance = | 148 String returnType, [CompletionRelevance relevance = |
| 131 CompletionRelevance.DEFAULT]) { | 149 CompletionRelevance.DEFAULT]) { |
| 132 CompletionSuggestion cs = | 150 CompletionSuggestion cs = |
| 133 assertSuggest(CompletionSuggestionKind.METHOD, className, relevance); | 151 assertSuggest(CompletionSuggestionKind.LOCAL_VARIABLE, name, relevance); |
| 134 expect(cs.declaringType, equals(declaringType)); | |
| 135 expect(cs.returnType, equals(returnType)); | 152 expect(cs.returnType, equals(returnType)); |
| 153 protocol.Element element = cs.element; |
| 154 expect(element, isNotNull); |
| 155 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE)); |
| 156 expect(element.name, equals(name)); |
| 157 expect( |
| 158 element.returnType, |
| 159 equals(returnType != null ? returnType : 'dynamic')); |
| 160 return cs; |
| 136 } | 161 } |
| 137 | 162 |
| 138 void assertSuggestMethodName(String completion, String declaringType, | 163 CompletionSuggestion assertSuggestMethod(String name, String declaringType, |
| 139 String returnType, [CompletionRelevance relevance = | 164 String returnType, [CompletionRelevance relevance = |
| 140 CompletionRelevance.DEFAULT]) { | 165 CompletionRelevance.DEFAULT]) { |
| 141 CompletionSuggestion cs = | 166 CompletionSuggestion cs = |
| 142 assertSuggest(CompletionSuggestionKind.METHOD_NAME, completion, relevanc
e); | 167 assertSuggest(CompletionSuggestionKind.METHOD, name, relevance); |
| 143 expect(cs.declaringType, equals(declaringType)); | 168 expect(cs.declaringType, equals(declaringType)); |
| 144 expect(cs.returnType, equals(returnType)); | 169 expect(cs.returnType, equals(returnType)); |
| 170 protocol.Element element = cs.element; |
| 171 expect(element, isNotNull); |
| 172 expect(element.kind, equals(protocol.ElementKind.METHOD)); |
| 173 expect(element.name, equals(name)); |
| 174 expect( |
| 175 element.returnType, |
| 176 equals(returnType != null ? returnType : 'dynamic')); |
| 177 return cs; |
| 145 } | 178 } |
| 146 | 179 |
| 147 void assertSuggestParameter(String completion, String returnType, | 180 CompletionSuggestion assertSuggestParameter(String name, String returnType, |
| 148 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 181 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 149 assertSuggest(CompletionSuggestionKind.PARAMETER, completion, relevance); | 182 CompletionSuggestion cs = |
| 183 assertSuggest(CompletionSuggestionKind.PARAMETER, name, relevance); |
| 184 expect(cs.returnType, equals(returnType)); |
| 185 protocol.Element element = cs.element; |
| 186 expect(element, isNotNull); |
| 187 expect(element.kind, equals(protocol.ElementKind.PARAMETER)); |
| 188 expect(element.name, equals(name)); |
| 189 expect( |
| 190 element.returnType, |
| 191 equals(returnType != null ? returnType : 'dynamic')); |
| 192 return cs; |
| 150 } | 193 } |
| 151 | 194 |
| 152 void assertSuggestSetter(String className, [CompletionRelevance relevance = | 195 CompletionSuggestion assertSuggestSetter(String name, |
| 153 CompletionRelevance.DEFAULT]) { | 196 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 154 assertSuggest(CompletionSuggestionKind.SETTER, className, relevance); | 197 CompletionSuggestion cs = |
| 198 assertSuggest(CompletionSuggestionKind.SETTER, name, relevance); |
| 199 protocol.Element element = cs.element; |
| 200 expect(element, isNotNull); |
| 201 expect(element.kind, equals(protocol.ElementKind.SETTER)); |
| 202 expect(element.name, equals(name)); |
| 203 expect(element.returnType, isNull); |
| 204 return cs; |
| 155 } | 205 } |
| 156 | 206 |
| 157 void assertSuggestTopLevelVar(String completion, String returnType, | 207 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, |
| 158 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 208 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 159 CompletionSuggestion cs = assertSuggest( | 209 CompletionSuggestion cs = |
| 160 CompletionSuggestionKind.TOP_LEVEL_VARIABLE, | 210 assertSuggest(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, name, relevan
ce); |
| 161 completion, | |
| 162 relevance); | |
| 163 expect(cs.returnType, equals(returnType)); | 211 expect(cs.returnType, equals(returnType)); |
| 212 protocol.Element element = cs.element; |
| 213 expect(element, isNotNull); |
| 214 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); |
| 215 expect(element.name, equals(name)); |
| 216 //TODO (danrubel) return type level variable 'type' but not as 'returnType' |
| 217 // expect( |
| 218 // element.returnType, |
| 219 // equals(returnType != null ? returnType : 'dynamic')); |
| 220 return cs; |
| 164 } | 221 } |
| 165 | 222 |
| 166 bool computeFast() { | 223 bool computeFast() { |
| 167 _computeFastCalled = true; | 224 _computeFastCalled = true; |
| 168 CompilationUnit unit = context.parseCompilationUnit(testSource); | 225 CompilationUnit unit = context.parseCompilationUnit(testSource); |
| 169 request.unit = unit; | 226 request.unit = unit; |
| 170 request.node = new NodeLocator.con1(completionOffset).searchWithin(unit); | 227 request.node = new NodeLocator.con1(completionOffset).searchWithin(unit); |
| 171 return computer.computeFast(request); | 228 return computer.computeFast(request); |
| 172 } | 229 } |
| 173 | 230 |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 221 return computer.computeFull(request); | 278 return computer.computeFull(request); |
| 222 } | 279 } |
| 223 | 280 |
| 224 @override | 281 @override |
| 225 void setUp() { | 282 void setUp() { |
| 226 super.setUp(); | 283 super.setUp(); |
| 227 index = createLocalMemoryIndex(); | 284 index = createLocalMemoryIndex(); |
| 228 searchEngine = new SearchEngineImpl(index); | 285 searchEngine = new SearchEngineImpl(index); |
| 229 } | 286 } |
| 230 } | 287 } |
| OLD | NEW |