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 |