Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(781)

Side by Side Diff: pkg/analysis_server/test/services/completion/completion_test_util.dart

Issue 969113002: Reformat (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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' as protocol show Element, 9 import 'package:analysis_server/src/protocol.dart' as protocol
10 ElementKind; 10 show Element, ElementKind;
11 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind; 11 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind;
12 import 'package:analysis_server/src/services/completion/common_usage_computer.da rt'; 12 import 'package:analysis_server/src/services/completion/common_usage_computer.da rt';
13 import 'package:analysis_server/src/services/completion/completion_manager.dart' ; 13 import 'package:analysis_server/src/services/completion/completion_manager.dart' ;
14 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt'; 14 import 'package:analysis_server/src/services/completion/dart_completion_cache.da rt';
15 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; 15 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
16 import 'package:analysis_server/src/services/completion/imported_computer.dart'; 16 import 'package:analysis_server/src/services/completion/imported_computer.dart';
17 import 'package:analysis_server/src/services/completion/invocation_computer.dart '; 17 import 'package:analysis_server/src/services/completion/invocation_computer.dart ';
18 import 'package:analysis_server/src/services/index/index.dart'; 18 import 'package:analysis_server/src/services/index/index.dart';
19 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 19 import 'package:analysis_server/src/services/index/local_memory_index.dart';
20 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 20 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 void addTestSource(String content) { 55 void addTestSource(String content) {
56 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once'); 56 expect(completionOffset, isNull, reason: 'Call addTestUnit exactly once');
57 completionOffset = content.indexOf('^'); 57 completionOffset = content.indexOf('^');
58 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); 58 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
59 int nextOffset = content.indexOf('^', completionOffset + 1); 59 int nextOffset = content.indexOf('^', completionOffset + 1);
60 expect(nextOffset, equals(-1), reason: 'too many ^'); 60 expect(nextOffset, equals(-1), reason: 'too many ^');
61 content = content.substring(0, completionOffset) + 61 content = content.substring(0, completionOffset) +
62 content.substring(completionOffset + 1); 62 content.substring(completionOffset + 1);
63 testSource = addSource(testFile, content); 63 testSource = addSource(testFile, content);
64 cache = new DartCompletionCache(context, testSource); 64 cache = new DartCompletionCache(context, testSource);
65 request = new DartCompletionRequest( 65 request = new DartCompletionRequest(context, searchEngine, testSource,
66 context, 66 completionOffset, cache, new CompletionPerformance());
67 searchEngine,
68 testSource,
69 completionOffset,
70 cache,
71 new CompletionPerformance());
72 } 67 }
73 68
74 void assertHasNoParameterInfo(CompletionSuggestion suggestion) { 69 void assertHasNoParameterInfo(CompletionSuggestion suggestion) {
75 expect(suggestion.parameterNames, isNull); 70 expect(suggestion.parameterNames, isNull);
76 expect(suggestion.parameterTypes, isNull); 71 expect(suggestion.parameterTypes, isNull);
77 expect(suggestion.requiredParameterCount, isNull); 72 expect(suggestion.requiredParameterCount, isNull);
78 expect(suggestion.hasNamedParameters, isNull); 73 expect(suggestion.hasNamedParameters, isNull);
79 } 74 }
80 75
81 void assertHasParameterInfo(CompletionSuggestion suggestion) { 76 void assertHasParameterInfo(CompletionSuggestion suggestion) {
82 expect(suggestion.parameterNames, isNotNull); 77 expect(suggestion.parameterNames, isNotNull);
83 expect(suggestion.parameterTypes, isNotNull); 78 expect(suggestion.parameterTypes, isNotNull);
84 expect(suggestion.parameterNames.length, suggestion.parameterTypes.length); 79 expect(suggestion.parameterNames.length, suggestion.parameterTypes.length);
85 expect( 80 expect(suggestion.requiredParameterCount,
86 suggestion.requiredParameterCount,
87 lessThanOrEqualTo(suggestion.parameterNames.length)); 81 lessThanOrEqualTo(suggestion.parameterNames.length));
88 expect(suggestion.hasNamedParameters, isNotNull); 82 expect(suggestion.hasNamedParameters, isNotNull);
89 } 83 }
90 84
91 void assertNoSuggestions({CompletionSuggestionKind kind: null}) { 85 void assertNoSuggestions({CompletionSuggestionKind kind: null}) {
92 if (kind == null) { 86 if (kind == null) {
93 if (request.suggestions.length > 0) { 87 if (request.suggestions.length > 0) {
94 failedCompletion('Expected no suggestions', request.suggestions); 88 failedCompletion('Expected no suggestions', request.suggestions);
95 } 89 }
96 return; 90 return;
97 } 91 }
98 CompletionSuggestion suggestion = request.suggestions.firstWhere( 92 CompletionSuggestion suggestion = request.suggestions.firstWhere(
99 (CompletionSuggestion cs) => cs.kind == kind, 93 (CompletionSuggestion cs) => cs.kind == kind, orElse: () => null);
100 orElse: () => null);
101 if (suggestion != null) { 94 if (suggestion != null) {
102 failedCompletion('did not expect completion: $completion\n $suggestion'); 95 failedCompletion('did not expect completion: $completion\n $suggestion');
103 } 96 }
104 } 97 }
105 98
106 CompletionSuggestion assertNotSuggested(String completion) { 99 CompletionSuggestion assertNotSuggested(String completion) {
107 CompletionSuggestion suggestion = request.suggestions.firstWhere( 100 CompletionSuggestion suggestion = request.suggestions.firstWhere(
108 (CompletionSuggestion cs) => cs.completion == completion, 101 (CompletionSuggestion cs) => cs.completion == completion,
109 orElse: () => null); 102 orElse: () => null);
110 if (suggestion != null) { 103 if (suggestion != null) {
111 failedCompletion('did not expect completion: $completion\n $suggestion'); 104 failedCompletion('did not expect completion: $completion\n $suggestion');
112 } 105 }
113 return null; 106 return null;
114 } 107 }
115 108
116 CompletionSuggestion assertSuggest(String completion, 109 CompletionSuggestion assertSuggest(String completion,
117 {CompletionSuggestionKind csKind: CompletionSuggestionKind.INVOCATION, 110 {CompletionSuggestionKind csKind: CompletionSuggestionKind.INVOCATION,
118 int relevance: DART_RELEVANCE_DEFAULT, protocol.ElementKind elemKind: null , 111 int relevance: DART_RELEVANCE_DEFAULT,
119 bool isDeprecated: false, bool isPotential: false}) { 112 protocol.ElementKind elemKind: null, bool isDeprecated: false,
113 bool isPotential: false}) {
120 CompletionSuggestion cs = 114 CompletionSuggestion cs =
121 getSuggest(completion: completion, csKind: csKind, elemKind: elemKind); 115 getSuggest(completion: completion, csKind: csKind, elemKind: elemKind);
122 if (cs == null) { 116 if (cs == null) {
123 failedCompletion( 117 failedCompletion(
124 'expected $completion $csKind $elemKind', 118 'expected $completion $csKind $elemKind', request.suggestions);
125 request.suggestions);
126 } 119 }
127 expect(cs.kind, equals(csKind)); 120 expect(cs.kind, equals(csKind));
128 if (isDeprecated) { 121 if (isDeprecated) {
129 expect(cs.relevance, equals(DART_RELEVANCE_LOW)); 122 expect(cs.relevance, equals(DART_RELEVANCE_LOW));
130 } else { 123 } else {
131 expect(cs.relevance, equals(relevance)); 124 expect(cs.relevance, equals(relevance));
132 } 125 }
133 expect(cs.selectionOffset, equals(completion.length)); 126 expect(cs.selectionOffset, equals(completion.length));
134 expect(cs.selectionLength, equals(0)); 127 expect(cs.selectionLength, equals(0));
135 expect(cs.isDeprecated, equals(isDeprecated)); 128 expect(cs.isDeprecated, equals(isDeprecated));
136 expect(cs.isPotential, equals(isPotential)); 129 expect(cs.isPotential, equals(isPotential));
137 return cs; 130 return cs;
138 } 131 }
139 132
140 void assertSuggestArgumentList(List<String> paramNames, 133 void assertSuggestArgumentList(
141 List<String> paramTypes) { 134 List<String> paramNames, List<String> paramTypes) {
142 CompletionSuggestionKind csKind = CompletionSuggestionKind.ARGUMENT_LIST; 135 CompletionSuggestionKind csKind = CompletionSuggestionKind.ARGUMENT_LIST;
143 CompletionSuggestion cs = getSuggest(csKind: csKind); 136 CompletionSuggestion cs = getSuggest(csKind: csKind);
144 if (cs == null) { 137 if (cs == null) {
145 failedCompletion('expected completion $csKind', request.suggestions); 138 failedCompletion('expected completion $csKind', request.suggestions);
146 } 139 }
147 assertSuggestArgumentList_params( 140 assertSuggestArgumentList_params(
148 paramNames, 141 paramNames, paramTypes, cs.parameterNames, cs.parameterTypes);
149 paramTypes,
150 cs.parameterNames,
151 cs.parameterTypes);
152 expect(cs.relevance, DART_RELEVANCE_HIGH); 142 expect(cs.relevance, DART_RELEVANCE_HIGH);
153 } 143 }
154 144
155 void assertSuggestArgumentList_params(List<String> expectedNames, 145 void assertSuggestArgumentList_params(List<String> expectedNames,
156 List<String> expectedTypes, List<String> actualNames, 146 List<String> expectedTypes, List<String> actualNames,
157 List<String> actualTypes) { 147 List<String> actualTypes) {
158 if (actualNames != null && 148 if (actualNames != null &&
159 actualNames.length == expectedNames.length && 149 actualNames.length == expectedNames.length &&
160 actualTypes != null && 150 actualTypes != null &&
161 actualTypes.length == expectedTypes.length) { 151 actualTypes.length == expectedTypes.length) {
(...skipping 11 matching lines...) Expand all
173 } 163 }
174 StringBuffer msg = new StringBuffer(); 164 StringBuffer msg = new StringBuffer();
175 msg.writeln('Argument list not the same'); 165 msg.writeln('Argument list not the same');
176 msg.writeln(' Expected names: $expectedNames'); 166 msg.writeln(' Expected names: $expectedNames');
177 msg.writeln(' found: $actualNames'); 167 msg.writeln(' found: $actualNames');
178 msg.writeln(' Expected types: $expectedTypes'); 168 msg.writeln(' Expected types: $expectedTypes');
179 msg.writeln(' found: $actualTypes'); 169 msg.writeln(' found: $actualTypes');
180 fail(msg.toString()); 170 fail(msg.toString());
181 } 171 }
182 172
183 CompletionSuggestion assertSuggestClass(String name, {int relevance: 173 CompletionSuggestion assertSuggestClass(String name,
184 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind: 174 {int relevance: DART_RELEVANCE_DEFAULT,
185 CompletionSuggestionKind.INVOCATION, bool isDeprecated: false}) { 175 CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION,
186 CompletionSuggestion cs = assertSuggest( 176 bool isDeprecated: false}) {
187 name, 177 CompletionSuggestion cs = assertSuggest(name,
188 csKind: kind, 178 csKind: kind, relevance: relevance, isDeprecated: isDeprecated);
189 relevance: relevance,
190 isDeprecated: isDeprecated);
191 protocol.Element element = cs.element; 179 protocol.Element element = cs.element;
192 expect(element, isNotNull); 180 expect(element, isNotNull);
193 expect(element.kind, equals(protocol.ElementKind.CLASS)); 181 expect(element.kind, equals(protocol.ElementKind.CLASS));
194 expect(element.name, equals(name)); 182 expect(element.name, equals(name));
195 expect(element.parameters, isNull); 183 expect(element.parameters, isNull);
196 expect(element.returnType, isNull); 184 expect(element.returnType, isNull);
197 assertHasNoParameterInfo(cs); 185 assertHasNoParameterInfo(cs);
198 return cs; 186 return cs;
199 } 187 }
200 188
201 CompletionSuggestion assertSuggestClassTypeAlias(String name, [int relevance = 189 CompletionSuggestion assertSuggestClassTypeAlias(String name,
202 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 190 [int relevance = DART_RELEVANCE_DEFAULT,
203 CompletionSuggestionKind.INVOCATION]) { 191 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
204 CompletionSuggestion cs = 192 CompletionSuggestion cs =
205 assertSuggest(name, csKind: kind, relevance: relevance); 193 assertSuggest(name, csKind: kind, relevance: relevance);
206 protocol.Element element = cs.element; 194 protocol.Element element = cs.element;
207 expect(element, isNotNull); 195 expect(element, isNotNull);
208 expect(element.kind, equals(protocol.ElementKind.CLASS_TYPE_ALIAS)); 196 expect(element.kind, equals(protocol.ElementKind.CLASS_TYPE_ALIAS));
209 expect(element.name, equals(name)); 197 expect(element.name, equals(name));
210 expect(element.parameters, isNull); 198 expect(element.parameters, isNull);
211 expect(element.returnType, isNull); 199 expect(element.returnType, isNull);
212 assertHasNoParameterInfo(cs); 200 assertHasNoParameterInfo(cs);
213 return cs; 201 return cs;
214 } 202 }
215 203
216 CompletionSuggestion assertSuggestField(String name, String type, 204 CompletionSuggestion assertSuggestField(String name, String type,
217 {int relevance: DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind: 205 {int relevance: DART_RELEVANCE_DEFAULT,
218 CompletionSuggestionKind.INVOCATION, bool isDeprecated: false}) { 206 CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION,
219 CompletionSuggestion cs = assertSuggest( 207 bool isDeprecated: false}) {
220 name, 208 CompletionSuggestion cs = assertSuggest(name,
221 csKind: kind, 209 csKind: kind,
222 relevance: relevance, 210 relevance: relevance,
223 elemKind: protocol.ElementKind.FIELD, 211 elemKind: protocol.ElementKind.FIELD,
224 isDeprecated: isDeprecated); 212 isDeprecated: isDeprecated);
225 // The returnType represents the type of a field 213 // The returnType represents the type of a field
226 expect(cs.returnType, type != null ? type : 'dynamic'); 214 expect(cs.returnType, type != null ? type : 'dynamic');
227 protocol.Element element = cs.element; 215 protocol.Element element = cs.element;
228 expect(element, isNotNull); 216 expect(element, isNotNull);
229 expect(element.kind, equals(protocol.ElementKind.FIELD)); 217 expect(element.kind, equals(protocol.ElementKind.FIELD));
230 expect(element.name, equals(name)); 218 expect(element.name, equals(name));
231 expect(element.parameters, isNull); 219 expect(element.parameters, isNull);
232 // The returnType represents the type of a field 220 // The returnType represents the type of a field
233 expect(element.returnType, type != null ? type : 'dynamic'); 221 expect(element.returnType, type != null ? type : 'dynamic');
234 assertHasNoParameterInfo(cs); 222 assertHasNoParameterInfo(cs);
235 return cs; 223 return cs;
236 } 224 }
237 225
238 CompletionSuggestion assertSuggestFunction(String name, String returnType, 226 CompletionSuggestion assertSuggestFunction(String name, String returnType,
239 [bool isDeprecated = false, int relevance = DART_RELEVANCE_DEFAULT, 227 [bool isDeprecated = false, int relevance = DART_RELEVANCE_DEFAULT,
240 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { 228 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
241 CompletionSuggestion cs = assertSuggest( 229 CompletionSuggestion cs = assertSuggest(name,
242 name, 230 csKind: kind, relevance: relevance, isDeprecated: isDeprecated);
243 csKind: kind,
244 relevance: relevance,
245 isDeprecated: isDeprecated);
246 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); 231 expect(cs.returnType, returnType != null ? returnType : 'dynamic');
247 protocol.Element element = cs.element; 232 protocol.Element element = cs.element;
248 expect(element, isNotNull); 233 expect(element, isNotNull);
249 expect(element.kind, equals(protocol.ElementKind.FUNCTION)); 234 expect(element.kind, equals(protocol.ElementKind.FUNCTION));
250 expect(element.name, equals(name)); 235 expect(element.name, equals(name));
251 expect(element.isDeprecated, equals(isDeprecated)); 236 expect(element.isDeprecated, equals(isDeprecated));
252 String param = element.parameters; 237 String param = element.parameters;
253 expect(param, isNotNull); 238 expect(param, isNotNull);
254 expect(param[0], equals('(')); 239 expect(param[0], equals('('));
255 expect(param[param.length - 1], equals(')')); 240 expect(param[param.length - 1], equals(')'));
256 expect( 241 expect(element.returnType,
257 element.returnType,
258 equals(returnType != null ? returnType : 'dynamic')); 242 equals(returnType != null ? returnType : 'dynamic'));
259 assertHasParameterInfo(cs); 243 assertHasParameterInfo(cs);
260 return cs; 244 return cs;
261 } 245 }
262 246
263 CompletionSuggestion assertSuggestFunctionTypeAlias(String name, 247 CompletionSuggestion assertSuggestFunctionTypeAlias(
264 String returnType, bool isDeprecated, [int relevance = DART_RELEVANCE_DEFA ULT, 248 String name, String returnType, bool isDeprecated,
249 [int relevance = DART_RELEVANCE_DEFAULT,
265 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { 250 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
266 CompletionSuggestion cs = assertSuggest( 251 CompletionSuggestion cs = assertSuggest(name,
267 name, 252 csKind: kind, relevance: relevance, isDeprecated: isDeprecated);
268 csKind: kind,
269 relevance: relevance,
270 isDeprecated: isDeprecated);
271 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); 253 expect(cs.returnType, returnType != null ? returnType : 'dynamic');
272 protocol.Element element = cs.element; 254 protocol.Element element = cs.element;
273 expect(element, isNotNull); 255 expect(element, isNotNull);
274 expect(element.kind, equals(protocol.ElementKind.FUNCTION_TYPE_ALIAS)); 256 expect(element.kind, equals(protocol.ElementKind.FUNCTION_TYPE_ALIAS));
275 expect(element.name, equals(name)); 257 expect(element.name, equals(name));
276 expect(element.isDeprecated, equals(isDeprecated)); 258 expect(element.isDeprecated, equals(isDeprecated));
277 // TODO (danrubel) Determine why params are null 259 // TODO (danrubel) Determine why params are null
278 // String param = element.parameters; 260 // String param = element.parameters;
279 // expect(param, isNotNull); 261 // expect(param, isNotNull);
280 // expect(param[0], equals('(')); 262 // expect(param[0], equals('('));
281 // expect(param[param.length - 1], equals(')')); 263 // expect(param[param.length - 1], equals(')'));
282 expect( 264 expect(element.returnType,
283 element.returnType,
284 equals(returnType != null ? returnType : 'dynamic')); 265 equals(returnType != null ? returnType : 'dynamic'));
285 // TODO (danrubel) Determine why param info is missing 266 // TODO (danrubel) Determine why param info is missing
286 // assertHasParameterInfo(cs); 267 // assertHasParameterInfo(cs);
287 return cs; 268 return cs;
288 } 269 }
289 270
290 CompletionSuggestion assertSuggestGetter(String name, String returnType, 271 CompletionSuggestion assertSuggestGetter(String name, String returnType,
291 {int relevance: DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind: 272 {int relevance: DART_RELEVANCE_DEFAULT,
292 CompletionSuggestionKind.INVOCATION, bool isDeprecated: false}) { 273 CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION,
293 CompletionSuggestion cs = assertSuggest( 274 bool isDeprecated: false}) {
294 name, 275 CompletionSuggestion cs = assertSuggest(name,
295 csKind: kind, 276 csKind: kind,
296 relevance: relevance, 277 relevance: relevance,
297 elemKind: protocol.ElementKind.GETTER, 278 elemKind: protocol.ElementKind.GETTER,
298 isDeprecated: isDeprecated); 279 isDeprecated: isDeprecated);
299 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); 280 expect(cs.returnType, returnType != null ? returnType : 'dynamic');
300 protocol.Element element = cs.element; 281 protocol.Element element = cs.element;
301 expect(element, isNotNull); 282 expect(element, isNotNull);
302 expect(element.kind, equals(protocol.ElementKind.GETTER)); 283 expect(element.kind, equals(protocol.ElementKind.GETTER));
303 expect(element.name, equals(name)); 284 expect(element.name, equals(name));
304 expect(element.parameters, isNull); 285 expect(element.parameters, isNull);
305 expect( 286 expect(element.returnType,
306 element.returnType,
307 equals(returnType != null ? returnType : 'dynamic')); 287 equals(returnType != null ? returnType : 'dynamic'));
308 assertHasNoParameterInfo(cs); 288 assertHasNoParameterInfo(cs);
309 return cs; 289 return cs;
310 } 290 }
311 291
312 CompletionSuggestion assertSuggestLabel(String name, [int relevance = 292 CompletionSuggestion assertSuggestLabel(String name,
313 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 293 [int relevance = DART_RELEVANCE_DEFAULT,
314 CompletionSuggestionKind.IDENTIFIER]) { 294 CompletionSuggestionKind kind = CompletionSuggestionKind.IDENTIFIER]) {
315 CompletionSuggestion cs = 295 CompletionSuggestion cs =
316 assertSuggest(name, csKind: kind, relevance: relevance); 296 assertSuggest(name, csKind: kind, relevance: relevance);
317 expect(cs.returnType, isNull); 297 expect(cs.returnType, isNull);
318 protocol.Element element = cs.element; 298 protocol.Element element = cs.element;
319 expect(element, isNotNull); 299 expect(element, isNotNull);
320 expect(element.flags, 0); 300 expect(element.flags, 0);
321 expect(element.kind, equals(protocol.ElementKind.LABEL)); 301 expect(element.kind, equals(protocol.ElementKind.LABEL));
322 expect(element.name, equals(name)); 302 expect(element.name, equals(name));
323 expect(element.parameters, isNull); 303 expect(element.parameters, isNull);
324 expect(element.returnType, isNull); 304 expect(element.returnType, isNull);
325 assertHasNoParameterInfo(cs); 305 assertHasNoParameterInfo(cs);
326 return cs; 306 return cs;
327 } 307 }
328 308
329 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, [int relevance 309 CompletionSuggestion assertSuggestLibraryPrefix(String prefix,
330 = DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 310 [int relevance = DART_RELEVANCE_DEFAULT,
331 CompletionSuggestionKind.INVOCATION]) { 311 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
332 // Library prefix should only be suggested by ImportedComputer 312 // Library prefix should only be suggested by ImportedComputer
333 if (computer is ImportedComputer) { 313 if (computer is ImportedComputer) {
334 CompletionSuggestion cs = 314 CompletionSuggestion cs =
335 assertSuggest(prefix, csKind: kind, relevance: relevance); 315 assertSuggest(prefix, csKind: kind, relevance: relevance);
336 protocol.Element element = cs.element; 316 protocol.Element element = cs.element;
337 expect(element, isNotNull); 317 expect(element, isNotNull);
338 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); 318 expect(element.kind, equals(protocol.ElementKind.LIBRARY));
339 expect(element.parameters, isNull); 319 expect(element.parameters, isNull);
340 expect(element.returnType, isNull); 320 expect(element.returnType, isNull);
341 assertHasNoParameterInfo(cs); 321 assertHasNoParameterInfo(cs);
342 return cs; 322 return cs;
343 } else { 323 } else {
344 return assertNotSuggested(prefix); 324 return assertNotSuggested(prefix);
345 } 325 }
346 } 326 }
347 327
348 CompletionSuggestion assertSuggestMethod(String name, String declaringType, 328 CompletionSuggestion assertSuggestMethod(
349 String returnType, {int relevance: DART_RELEVANCE_DEFAULT, 329 String name, String declaringType, String returnType,
330 {int relevance: DART_RELEVANCE_DEFAULT,
350 CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION, 331 CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION,
351 bool isDeprecated: false}) { 332 bool isDeprecated: false}) {
352 CompletionSuggestion cs = assertSuggest( 333 CompletionSuggestion cs = assertSuggest(name,
353 name, 334 csKind: kind, relevance: relevance, isDeprecated: isDeprecated);
354 csKind: kind,
355 relevance: relevance,
356 isDeprecated: isDeprecated);
357 expect(cs.declaringType, equals(declaringType)); 335 expect(cs.declaringType, equals(declaringType));
358 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); 336 expect(cs.returnType, returnType != null ? returnType : 'dynamic');
359 protocol.Element element = cs.element; 337 protocol.Element element = cs.element;
360 expect(element, isNotNull); 338 expect(element, isNotNull);
361 expect(element.kind, equals(protocol.ElementKind.METHOD)); 339 expect(element.kind, equals(protocol.ElementKind.METHOD));
362 expect(element.name, equals(name)); 340 expect(element.name, equals(name));
363 String param = element.parameters; 341 String param = element.parameters;
364 expect(param, isNotNull); 342 expect(param, isNotNull);
365 expect(param[0], equals('(')); 343 expect(param[0], equals('('));
366 expect(param[param.length - 1], equals(')')); 344 expect(param[param.length - 1], equals(')'));
367 expect(element.returnType, returnType != null ? returnType : 'dynamic'); 345 expect(element.returnType, returnType != null ? returnType : 'dynamic');
368 assertHasParameterInfo(cs); 346 assertHasParameterInfo(cs);
369 return cs; 347 return cs;
370 } 348 }
371 349
372 CompletionSuggestion assertSuggestNamedConstructor(String name, 350 CompletionSuggestion assertSuggestNamedConstructor(
373 String returnType, [int relevance = DART_RELEVANCE_DEFAULT, 351 String name, String returnType, [int relevance = DART_RELEVANCE_DEFAULT,
374 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { 352 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
375 if (computer is InvocationComputer) { 353 if (computer is InvocationComputer) {
376 CompletionSuggestion cs = 354 CompletionSuggestion cs =
377 assertSuggest(name, csKind: kind, relevance: relevance); 355 assertSuggest(name, csKind: kind, relevance: relevance);
378 protocol.Element element = cs.element; 356 protocol.Element element = cs.element;
379 expect(element, isNotNull); 357 expect(element, isNotNull);
380 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR)); 358 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR));
381 expect(element.name, equals(name)); 359 expect(element.name, equals(name));
382 String param = element.parameters; 360 String param = element.parameters;
383 expect(param, isNotNull); 361 expect(param, isNotNull);
384 expect(param[0], equals('(')); 362 expect(param[0], equals('('));
385 expect(param[param.length - 1], equals(')')); 363 expect(param[param.length - 1], equals(')'));
386 expect(element.returnType, equals(returnType)); 364 expect(element.returnType, equals(returnType));
387 assertHasParameterInfo(cs); 365 assertHasParameterInfo(cs);
388 return cs; 366 return cs;
389 } else { 367 } else {
390 return assertNotSuggested(name); 368 return assertNotSuggested(name);
391 } 369 }
392 } 370 }
393 371
394 CompletionSuggestion assertSuggestParameter(String name, String returnType, 372 CompletionSuggestion assertSuggestParameter(String name, String returnType,
395 {int relevance: DART_RELEVANCE_PARAMETER}) { 373 {int relevance: DART_RELEVANCE_PARAMETER}) {
396 return assertNotSuggested(name); 374 return assertNotSuggested(name);
397 } 375 }
398 376
399 CompletionSuggestion assertSuggestSetter(String name, [int relevance = 377 CompletionSuggestion assertSuggestSetter(String name,
400 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 378 [int relevance = DART_RELEVANCE_DEFAULT,
401 CompletionSuggestionKind.INVOCATION]) { 379 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
402 CompletionSuggestion cs = assertSuggest( 380 CompletionSuggestion cs = assertSuggest(name,
403 name,
404 csKind: kind, 381 csKind: kind,
405 relevance: relevance, 382 relevance: relevance,
406 elemKind: protocol.ElementKind.SETTER); 383 elemKind: protocol.ElementKind.SETTER);
407 protocol.Element element = cs.element; 384 protocol.Element element = cs.element;
408 expect(element, isNotNull); 385 expect(element, isNotNull);
409 expect(element.kind, equals(protocol.ElementKind.SETTER)); 386 expect(element.kind, equals(protocol.ElementKind.SETTER));
410 expect(element.name, equals(name)); 387 expect(element.name, equals(name));
411 // TODO (danrubel) assert setter param 388 // TODO (danrubel) assert setter param
412 //expect(element.parameters, isNull); 389 //expect(element.parameters, isNull);
413 // TODO (danrubel) it would be better if this was always null 390 // TODO (danrubel) it would be better if this was always null
414 if (element.returnType != null) { 391 if (element.returnType != null) {
415 expect(element.returnType, 'dynamic'); 392 expect(element.returnType, 'dynamic');
416 } 393 }
417 assertHasNoParameterInfo(cs); 394 assertHasNoParameterInfo(cs);
418 return cs; 395 return cs;
419 } 396 }
420 397
421 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, 398 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType,
422 [int relevance = DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 399 [int relevance = DART_RELEVANCE_DEFAULT,
423 CompletionSuggestionKind.INVOCATION]) { 400 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
424 CompletionSuggestion cs = 401 CompletionSuggestion cs =
425 assertSuggest(name, csKind: kind, relevance: relevance); 402 assertSuggest(name, csKind: kind, relevance: relevance);
426 expect(cs.returnType, returnType != null ? returnType : 'dynamic'); 403 expect(cs.returnType, returnType != null ? returnType : 'dynamic');
427 protocol.Element element = cs.element; 404 protocol.Element element = cs.element;
428 expect(element, isNotNull); 405 expect(element, isNotNull);
429 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); 406 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE));
430 expect(element.name, equals(name)); 407 expect(element.name, equals(name));
431 expect(element.parameters, isNull); 408 expect(element.parameters, isNull);
432 expect(element.returnType, returnType != null ? returnType : 'dynamic'); 409 expect(element.returnType, returnType != null ? returnType : 'dynamic');
433 assertHasNoParameterInfo(cs); 410 assertHasNoParameterInfo(cs);
434 return cs; 411 return cs;
435 } 412 }
436 413
437 void assertSuggestTopLevelVarGetterSetter(String name, String returnType, 414 void assertSuggestTopLevelVarGetterSetter(String name, String returnType,
438 [int relevance = DART_RELEVANCE_DEFAULT]) { 415 [int relevance = DART_RELEVANCE_DEFAULT]) {
439 if (computer is ImportedComputer) { 416 if (computer is ImportedComputer) {
440 assertSuggestGetter(name, returnType); 417 assertSuggestGetter(name, returnType);
441 assertSuggestSetter(name); 418 assertSuggestSetter(name);
442 } else { 419 } else {
443 assertNotSuggested(name); 420 assertNotSuggested(name);
444 } 421 }
445 } 422 }
446 423
447 bool computeFast() { 424 bool computeFast() {
448 _computeFastCalled = true; 425 _computeFastCalled = true;
449 _completionManager = new DartCompletionManager( 426 _completionManager = new DartCompletionManager(context, searchEngine,
450 context, 427 testSource, cache, [computer], new CommonUsageComputer({}));
451 searchEngine,
452 testSource,
453 cache,
454 [computer],
455 new CommonUsageComputer({}));
456 var result = _completionManager.computeFast(request); 428 var result = _completionManager.computeFast(request);
457 expect(request.replacementOffset, isNotNull); 429 expect(request.replacementOffset, isNotNull);
458 expect(request.replacementLength, isNotNull); 430 expect(request.replacementLength, isNotNull);
459 return result.isEmpty; 431 return result.isEmpty;
460 } 432 }
461 433
462 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) { 434 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) {
463 if (!_computeFastCalled) { 435 if (!_computeFastCalled) {
464 expect(computeFast(), isFalse); 436 expect(computeFast(), isFalse);
465 } 437 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 } 483 }
512 return computer.computeFull(request).then(assertFunction); 484 return computer.computeFull(request).then(assertFunction);
513 } 485 }
514 486
515 void failedCompletion(String message, 487 void failedCompletion(String message,
516 [Iterable<CompletionSuggestion> completions]) { 488 [Iterable<CompletionSuggestion> completions]) {
517 StringBuffer sb = new StringBuffer(message); 489 StringBuffer sb = new StringBuffer(message);
518 if (completions != null) { 490 if (completions != null) {
519 sb.write('\n found'); 491 sb.write('\n found');
520 completions.toList() 492 completions.toList()
521 ..sort(suggestionComparator) 493 ..sort(suggestionComparator)
522 ..forEach((CompletionSuggestion suggestion) { 494 ..forEach((CompletionSuggestion suggestion) {
523 sb.write('\n ${suggestion.completion} -> $suggestion'); 495 sb.write('\n ${suggestion.completion} -> $suggestion');
524 }); 496 });
525 } 497 }
526 if (completionNode != null) { 498 if (completionNode != null) {
527 sb.write('\n in'); 499 sb.write('\n in');
528 AstNode node = completionNode; 500 AstNode node = completionNode;
529 while (node != null) { 501 while (node != null) {
530 sb.write('\n ${node.runtimeType}'); 502 sb.write('\n ${node.runtimeType}');
531 node = node.parent; 503 node = node.parent;
532 } 504 }
533 } 505 }
534 fail(sb.toString()); 506 fail(sb.toString());
535 } 507 }
536 508
537 CompletionSuggestion getSuggest({String completion: null, 509 CompletionSuggestion getSuggest({String completion: null,
538 CompletionSuggestionKind csKind: null, protocol.ElementKind elemKind: null }) { 510 CompletionSuggestionKind csKind: null,
511 protocol.ElementKind elemKind: null}) {
539 CompletionSuggestion cs; 512 CompletionSuggestion cs;
540 request.suggestions.forEach((CompletionSuggestion s) { 513 request.suggestions.forEach((CompletionSuggestion s) {
541 if (completion != null && completion != s.completion) { 514 if (completion != null && completion != s.completion) {
542 return; 515 return;
543 } 516 }
544 if (csKind != null && csKind != s.kind) { 517 if (csKind != null && csKind != s.kind) {
545 return; 518 return;
546 } 519 }
547 if (elemKind != null) { 520 if (elemKind != null) {
548 protocol.Element element = s.element; 521 protocol.Element element = s.element;
549 if (element == null || elemKind != element.kind) { 522 if (element == null || elemKind != element.kind) {
550 return; 523 return;
551 } 524 }
552 } 525 }
553 if (cs == null) { 526 if (cs == null) {
554 cs = s; 527 cs = s;
555 } else { 528 } else {
556 failedCompletion( 529 failedCompletion('expected exactly one $cs',
557 'expected exactly one $cs',
558 request.suggestions.where((s) => s.completion == completion)); 530 request.suggestions.where((s) => s.completion == completion));
559 } 531 }
560 }); 532 });
561 return cs; 533 return cs;
562 } 534 }
563 535
564 @override 536 @override
565 void setUp() { 537 void setUp() {
566 super.setUp(); 538 super.setUp();
567 index = createLocalMemoryIndex(); 539 index = createLocalMemoryIndex();
(...skipping 11 matching lines...) Expand all
579 abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest { 551 abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
580 552
581 /** 553 /**
582 * Assert that the ImportedComputer uses cached results to produce identical 554 * Assert that the ImportedComputer uses cached results to produce identical
583 * suggestions to the original set of suggestions. 555 * suggestions to the original set of suggestions.
584 */ 556 */
585 void assertCachedCompute(_) { 557 void assertCachedCompute(_) {
586 // Subclasses override 558 // Subclasses override
587 } 559 }
588 560
589 CompletionSuggestion assertSuggestImportedClass(String name, [int relevance = 561 CompletionSuggestion assertSuggestImportedClass(String name,
590 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 562 [int relevance = DART_RELEVANCE_DEFAULT,
591 CompletionSuggestionKind.INVOCATION]) { 563 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
592 if (computer is ImportedComputer) { 564 if (computer is ImportedComputer) {
593 return assertSuggestClass(name, relevance: relevance, kind: kind); 565 return assertSuggestClass(name, relevance: relevance, kind: kind);
594 } else { 566 } else {
595 return assertNotSuggested(name); 567 return assertNotSuggested(name);
596 } 568 }
597 } 569 }
598 570
599 CompletionSuggestion assertSuggestImportedField(String name, String type, 571 CompletionSuggestion assertSuggestImportedField(String name, String type,
600 {int relevance: DART_RELEVANCE_INHERITED_FIELD}) { 572 {int relevance: DART_RELEVANCE_INHERITED_FIELD}) {
601 return assertNotSuggested(name); 573 return assertNotSuggested(name);
602 } 574 }
603 575
604 CompletionSuggestion assertSuggestImportedFunction(String name, 576 CompletionSuggestion assertSuggestImportedFunction(
605 String returnType, [bool isDeprecated = false, int relevance = 577 String name, String returnType, [bool isDeprecated = false,
606 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 578 int relevance = DART_RELEVANCE_DEFAULT,
607 CompletionSuggestionKind.INVOCATION]) { 579 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
608 if (computer is ImportedComputer) { 580 if (computer is ImportedComputer) {
609 return assertSuggestFunction( 581 return assertSuggestFunction(
610 name, 582 name, returnType, isDeprecated, relevance, kind);
611 returnType,
612 isDeprecated,
613 relevance,
614 kind);
615 } else { 583 } else {
616 return assertNotSuggested(name); 584 return assertNotSuggested(name);
617 } 585 }
618 } 586 }
619 587
620 CompletionSuggestion assertSuggestImportedFunctionTypeAlias(String name, 588 CompletionSuggestion assertSuggestImportedFunctionTypeAlias(
621 String returnType, [bool isDeprecated = false, int relevance = 589 String name, String returnType, [bool isDeprecated = false,
622 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 590 int relevance = DART_RELEVANCE_DEFAULT,
623 CompletionSuggestionKind.INVOCATION]) { 591 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
624 if (computer is ImportedComputer) { 592 if (computer is ImportedComputer) {
625 return assertSuggestFunctionTypeAlias( 593 return assertSuggestFunctionTypeAlias(
626 name, 594 name, returnType, isDeprecated, relevance, kind);
627 returnType,
628 isDeprecated,
629 relevance,
630 kind);
631 } else { 595 } else {
632 return assertNotSuggested(name); 596 return assertNotSuggested(name);
633 } 597 }
634 } 598 }
635 599
636 CompletionSuggestion assertSuggestImportedGetter(String name, 600 CompletionSuggestion assertSuggestImportedGetter(
637 String returnType, {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) { 601 String name, String returnType,
602 {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) {
638 return assertNotSuggested(name); 603 return assertNotSuggested(name);
639 } 604 }
640 605
641 CompletionSuggestion assertSuggestImportedMethod(String name, 606 CompletionSuggestion assertSuggestImportedMethod(
642 String declaringType, String returnType, {int relevance: 607 String name, String declaringType, String returnType,
643 DART_RELEVANCE_INHERITED_METHOD}) { 608 {int relevance: DART_RELEVANCE_INHERITED_METHOD}) {
644 return assertNotSuggested(name); 609 return assertNotSuggested(name);
645 } 610 }
646 611
647 CompletionSuggestion assertSuggestImportedSetter(String name, {int relevance: 612 CompletionSuggestion assertSuggestImportedSetter(String name,
648 DART_RELEVANCE_INHERITED_ACCESSOR}) { 613 {int relevance: DART_RELEVANCE_INHERITED_ACCESSOR}) {
649 return assertNotSuggested(name); 614 return assertNotSuggested(name);
650 } 615 }
651 616
652 CompletionSuggestion assertSuggestImportedTopLevelVar(String name, 617 CompletionSuggestion assertSuggestImportedTopLevelVar(
653 String returnType, [int relevance = DART_RELEVANCE_DEFAULT, 618 String name, String returnType, [int relevance = DART_RELEVANCE_DEFAULT,
654 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { 619 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
655 if (computer is ImportedComputer) { 620 if (computer is ImportedComputer) {
656 return assertSuggestTopLevelVar(name, returnType, relevance, kind); 621 return assertSuggestTopLevelVar(name, returnType, relevance, kind);
657 } else { 622 } else {
658 return assertNotSuggested(name); 623 return assertNotSuggested(name);
659 } 624 }
660 } 625 }
661 626
662 CompletionSuggestion assertSuggestInvocationClass(String name, [int relevance 627 CompletionSuggestion assertSuggestInvocationClass(String name,
663 = DART_RELEVANCE_DEFAULT]) { 628 [int relevance = DART_RELEVANCE_DEFAULT]) {
664 if (computer is InvocationComputer) { 629 if (computer is InvocationComputer) {
665 return assertSuggestClass(name, relevance: relevance); 630 return assertSuggestClass(name, relevance: relevance);
666 } else { 631 } else {
667 return assertNotSuggested(name); 632 return assertNotSuggested(name);
668 } 633 }
669 } 634 }
670 635
671 CompletionSuggestion assertSuggestInvocationField(String name, String type, 636 CompletionSuggestion assertSuggestInvocationField(String name, String type,
672 {int relevance: DART_RELEVANCE_DEFAULT, bool isDeprecated: false}) { 637 {int relevance: DART_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
673 return assertNotSuggested(name); 638 return assertNotSuggested(name);
674 } 639 }
675 640
676 CompletionSuggestion assertSuggestInvocationGetter(String name, 641 CompletionSuggestion assertSuggestInvocationGetter(
677 String returnType, {int relevance: DART_RELEVANCE_DEFAULT, bool isDeprecat ed: 642 String name, String returnType,
678 false}) { 643 {int relevance: DART_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
679 if (computer is InvocationComputer) { 644 if (computer is InvocationComputer) {
680 return assertSuggestGetter( 645 return assertSuggestGetter(name, returnType,
681 name, 646 relevance: relevance, isDeprecated: isDeprecated);
682 returnType,
683 relevance: relevance,
684 isDeprecated: isDeprecated);
685 } else { 647 } else {
686 return assertNotSuggested(name); 648 return assertNotSuggested(name);
687 } 649 }
688 } 650 }
689 651
690 CompletionSuggestion assertSuggestInvocationMethod(String name, 652 CompletionSuggestion assertSuggestInvocationMethod(
691 String declaringType, String returnType, [int relevance = 653 String name, String declaringType, String returnType,
692 DART_RELEVANCE_DEFAULT]) { 654 [int relevance = DART_RELEVANCE_DEFAULT]) {
693 if (computer is InvocationComputer) { 655 if (computer is InvocationComputer) {
694 return assertSuggestMethod( 656 return assertSuggestMethod(name, declaringType, returnType,
695 name,
696 declaringType,
697 returnType,
698 relevance: relevance); 657 relevance: relevance);
699 } else { 658 } else {
700 return assertNotSuggested(name); 659 return assertNotSuggested(name);
701 } 660 }
702 } 661 }
703 662
704 CompletionSuggestion assertSuggestInvocationSetter(String name, [int relevance 663 CompletionSuggestion assertSuggestInvocationSetter(String name,
705 = DART_RELEVANCE_DEFAULT]) { 664 [int relevance = DART_RELEVANCE_DEFAULT]) {
706 if (computer is InvocationComputer) { 665 if (computer is InvocationComputer) {
707 return assertSuggestSetter(name); 666 return assertSuggestSetter(name);
708 } else { 667 } else {
709 return assertNotSuggested(name); 668 return assertNotSuggested(name);
710 } 669 }
711 } 670 }
712 671
713 CompletionSuggestion assertSuggestInvocationTopLevelVar(String name, 672 CompletionSuggestion assertSuggestInvocationTopLevelVar(
714 String returnType, [int relevance = DART_RELEVANCE_DEFAULT]) { 673 String name, String returnType,
674 [int relevance = DART_RELEVANCE_DEFAULT]) {
715 if (computer is InvocationComputer) { 675 if (computer is InvocationComputer) {
716 return assertSuggestTopLevelVar(name, returnType, relevance); 676 return assertSuggestTopLevelVar(name, returnType, relevance);
717 } else { 677 } else {
718 return assertNotSuggested(name); 678 return assertNotSuggested(name);
719 } 679 }
720 } 680 }
721 681
722 CompletionSuggestion assertSuggestLocalClass(String name, {int relevance: 682 CompletionSuggestion assertSuggestLocalClass(String name,
723 DART_RELEVANCE_DEFAULT, bool isDeprecated: false}) { 683 {int relevance: DART_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
724 return assertNotSuggested(name); 684 return assertNotSuggested(name);
725 } 685 }
726 686
727 CompletionSuggestion assertSuggestLocalClassTypeAlias(String name, 687 CompletionSuggestion assertSuggestLocalClassTypeAlias(String name,
728 {int relevance: DART_RELEVANCE_DEFAULT}) { 688 {int relevance: DART_RELEVANCE_DEFAULT}) {
729 return assertNotSuggested(name); 689 return assertNotSuggested(name);
730 } 690 }
731 691
732 CompletionSuggestion assertSuggestLocalField(String name, String type, 692 CompletionSuggestion assertSuggestLocalField(String name, String type,
733 {int relevance: DART_RELEVANCE_LOCAL_FIELD, bool deprecated: false}) { 693 {int relevance: DART_RELEVANCE_LOCAL_FIELD, bool deprecated: false}) {
734 return assertNotSuggested(name); 694 return assertNotSuggested(name);
735 } 695 }
736 696
737 CompletionSuggestion assertSuggestLocalFunction(String name, 697 CompletionSuggestion assertSuggestLocalFunction(
738 String returnType, {bool deprecated: false, int relevance: 698 String name, String returnType,
739 DART_RELEVANCE_LOCAL_FUNCTION}) { 699 {bool deprecated: false, int relevance: DART_RELEVANCE_LOCAL_FUNCTION}) {
740 return assertNotSuggested(name); 700 return assertNotSuggested(name);
741 } 701 }
742 702
743 CompletionSuggestion assertSuggestLocalFunctionTypeAlias(String name, 703 CompletionSuggestion assertSuggestLocalFunctionTypeAlias(
744 String returnType, {bool deprecated: false, int relevance: 704 String name, String returnType,
745 DART_RELEVANCE_DEFAULT}) { 705 {bool deprecated: false, int relevance: DART_RELEVANCE_DEFAULT}) {
746 return assertNotSuggested(name); 706 return assertNotSuggested(name);
747 } 707 }
748 708
749 CompletionSuggestion assertSuggestLocalGetter(String name, String returnType, 709 CompletionSuggestion assertSuggestLocalGetter(String name, String returnType,
750 {int relevance: DART_RELEVANCE_LOCAL_ACCESSOR, bool deprecated: false}) { 710 {int relevance: DART_RELEVANCE_LOCAL_ACCESSOR, bool deprecated: false}) {
751 return assertNotSuggested(name); 711 return assertNotSuggested(name);
752 } 712 }
753 713
754 CompletionSuggestion assertSuggestLocalMethod(String name, 714 CompletionSuggestion assertSuggestLocalMethod(
755 String declaringType, String returnType, {int relevance: 715 String name, String declaringType, String returnType,
756 DART_RELEVANCE_LOCAL_METHOD, bool deprecated: false}) { 716 {int relevance: DART_RELEVANCE_LOCAL_METHOD, bool deprecated: false}) {
757 return assertNotSuggested(name); 717 return assertNotSuggested(name);
758 } 718 }
759 719
760 CompletionSuggestion assertSuggestLocalSetter(String name, {int relevance: 720 CompletionSuggestion assertSuggestLocalSetter(String name,
761 DART_RELEVANCE_LOCAL_ACCESSOR}) { 721 {int relevance: DART_RELEVANCE_LOCAL_ACCESSOR}) {
762 return assertNotSuggested(name); 722 return assertNotSuggested(name);
763 } 723 }
764 724
765 CompletionSuggestion assertSuggestLocalTopLevelVar(String name, 725 CompletionSuggestion assertSuggestLocalTopLevelVar(
766 String returnType, {int relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE }) { 726 String name, String returnType,
727 {int relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE}) {
767 return assertNotSuggested(name); 728 return assertNotSuggested(name);
768 } 729 }
769 730
770 CompletionSuggestion assertSuggestLocalVariable(String name, 731 CompletionSuggestion assertSuggestLocalVariable(
771 String returnType, {int relevance: DART_RELEVANCE_LOCAL_VARIABLE}) { 732 String name, String returnType,
733 {int relevance: DART_RELEVANCE_LOCAL_VARIABLE}) {
772 return assertNotSuggested(name); 734 return assertNotSuggested(name);
773 } 735 }
774 736
775 CompletionSuggestion assertSuggestNonLocalClass(String name, [int relevance = 737 CompletionSuggestion assertSuggestNonLocalClass(String name,
776 DART_RELEVANCE_DEFAULT, CompletionSuggestionKind kind = 738 [int relevance = DART_RELEVANCE_DEFAULT,
777 CompletionSuggestionKind.INVOCATION]) { 739 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
778 return assertSuggestImportedClass(name, relevance, kind); 740 return assertSuggestImportedClass(name, relevance, kind);
779 } 741 }
780 742
781 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) { 743 Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) {
782 return super.computeFull( 744 return super
783 assertFunction, 745 .computeFull(assertFunction, fullAnalysis: fullAnalysis)
784 fullAnalysis: fullAnalysis).then(assertCachedCompute); 746 .then(assertCachedCompute);
785 } 747 }
786 748
787 test_ArgumentList() { 749 test_ArgumentList() {
788 // ArgumentList MethodInvocation ExpressionStatement Block 750 // ArgumentList MethodInvocation ExpressionStatement Block
789 addSource('/libA.dart', ''' 751 addSource('/libA.dart', '''
790 library A; 752 library A;
791 bool hasLength(int expected) { } 753 bool hasLength(int expected) { }
792 void baz() { }'''); 754 void baz() { }''');
793 addTestSource(''' 755 addTestSource('''
794 import '/libA.dart'; 756 import '/libA.dart';
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after
1452 class B { }'''); 1414 class B { }''');
1453 addTestSource(''' 1415 addTestSource('''
1454 import "testB.dart" as x; 1416 import "testB.dart" as x;
1455 @deprecated class A {^} 1417 @deprecated class A {^}
1456 class _B {} 1418 class _B {}
1457 A T;'''); 1419 A T;''');
1458 computeFast(); 1420 computeFast();
1459 return computeFull((bool result) { 1421 return computeFull((bool result) {
1460 expect(request.replacementOffset, completionOffset); 1422 expect(request.replacementOffset, completionOffset);
1461 expect(request.replacementLength, 0); 1423 expect(request.replacementLength, 0);
1462 CompletionSuggestion suggestionA = assertSuggestLocalClass( 1424 CompletionSuggestion suggestionA = assertSuggestLocalClass('A',
1463 'A', 1425 relevance: DART_RELEVANCE_LOW, isDeprecated: true);
1464 relevance: DART_RELEVANCE_LOW,
1465 isDeprecated: true);
1466 if (suggestionA != null) { 1426 if (suggestionA != null) {
1467 expect(suggestionA.element.isDeprecated, isTrue); 1427 expect(suggestionA.element.isDeprecated, isTrue);
1468 expect(suggestionA.element.isPrivate, isFalse); 1428 expect(suggestionA.element.isPrivate, isFalse);
1469 } 1429 }
1470 CompletionSuggestion suggestionB = assertSuggestLocalClass('_B'); 1430 CompletionSuggestion suggestionB = assertSuggestLocalClass('_B');
1471 if (suggestionB != null) { 1431 if (suggestionB != null) {
1472 expect(suggestionB.element.isDeprecated, isFalse); 1432 expect(suggestionB.element.isDeprecated, isFalse);
1473 expect(suggestionB.element.isPrivate, isTrue); 1433 expect(suggestionB.element.isPrivate, isTrue);
1474 } 1434 }
1475 CompletionSuggestion suggestionO = assertSuggestImportedClass('Object'); 1435 CompletionSuggestion suggestionO = assertSuggestImportedClass('Object');
(...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after
2372 addTestSource('class A {@deprecated X get f => 0; Z a() {^} get _g => 1;}'); 2332 addTestSource('class A {@deprecated X get f => 0; Z a() {^} get _g => 1;}');
2373 computeFast(); 2333 computeFast();
2374 return computeFull((bool result) { 2334 return computeFull((bool result) {
2375 expect(request.replacementOffset, completionOffset); 2335 expect(request.replacementOffset, completionOffset);
2376 expect(request.replacementLength, 0); 2336 expect(request.replacementLength, 0);
2377 CompletionSuggestion methodA = assertSuggestLocalMethod('a', 'A', 'Z'); 2337 CompletionSuggestion methodA = assertSuggestLocalMethod('a', 'A', 'Z');
2378 if (methodA != null) { 2338 if (methodA != null) {
2379 expect(methodA.element.isDeprecated, isFalse); 2339 expect(methodA.element.isDeprecated, isFalse);
2380 expect(methodA.element.isPrivate, isFalse); 2340 expect(methodA.element.isPrivate, isFalse);
2381 } 2341 }
2382 CompletionSuggestion getterF = assertSuggestLocalGetter( 2342 CompletionSuggestion getterF = assertSuggestLocalGetter('f', 'X',
2383 'f', 2343 relevance: DART_RELEVANCE_LOW, deprecated: true);
2384 'X',
2385 relevance: DART_RELEVANCE_LOW,
2386 deprecated: true);
2387 if (getterF != null) { 2344 if (getterF != null) {
2388 expect(getterF.element.isDeprecated, isTrue); 2345 expect(getterF.element.isDeprecated, isTrue);
2389 expect(getterF.element.isPrivate, isFalse); 2346 expect(getterF.element.isPrivate, isFalse);
2390 } 2347 }
2391 CompletionSuggestion getterG = assertSuggestLocalGetter('_g', null); 2348 CompletionSuggestion getterG = assertSuggestLocalGetter('_g', null);
2392 if (getterG != null) { 2349 if (getterG != null) {
2393 expect(getterG.element.isDeprecated, isFalse); 2350 expect(getterG.element.isDeprecated, isFalse);
2394 expect(getterG.element.isPrivate, isTrue); 2351 expect(getterG.element.isPrivate, isTrue);
2395 } 2352 }
2396 }); 2353 });
2397 } 2354 }
2398 2355
2399 test_MethodDeclaration_members() { 2356 test_MethodDeclaration_members() {
2400 // Block BlockFunctionBody MethodDeclaration 2357 // Block BlockFunctionBody MethodDeclaration
2401 addTestSource('class A {@deprecated X f; Z _a() {^} var _g;}'); 2358 addTestSource('class A {@deprecated X f; Z _a() {^} var _g;}');
2402 computeFast(); 2359 computeFast();
2403 return computeFull((bool result) { 2360 return computeFull((bool result) {
2404 expect(request.replacementOffset, completionOffset); 2361 expect(request.replacementOffset, completionOffset);
2405 expect(request.replacementLength, 0); 2362 expect(request.replacementLength, 0);
2406 CompletionSuggestion methodA = assertSuggestLocalMethod('_a', 'A', 'Z'); 2363 CompletionSuggestion methodA = assertSuggestLocalMethod('_a', 'A', 'Z');
2407 if (methodA != null) { 2364 if (methodA != null) {
2408 expect(methodA.element.isDeprecated, isFalse); 2365 expect(methodA.element.isDeprecated, isFalse);
2409 expect(methodA.element.isPrivate, isTrue); 2366 expect(methodA.element.isPrivate, isTrue);
2410 } 2367 }
2411 CompletionSuggestion getterF = assertSuggestLocalField( 2368 CompletionSuggestion getterF = assertSuggestLocalField('f', 'X',
2412 'f', 2369 relevance: DART_RELEVANCE_LOW, deprecated: true);
2413 'X',
2414 relevance: DART_RELEVANCE_LOW,
2415 deprecated: true);
2416 if (getterF != null) { 2370 if (getterF != null) {
2417 expect(getterF.element.isDeprecated, isTrue); 2371 expect(getterF.element.isDeprecated, isTrue);
2418 expect(getterF.element.isPrivate, isFalse); 2372 expect(getterF.element.isPrivate, isFalse);
2419 expect(getterF.element.parameters, isNull); 2373 expect(getterF.element.parameters, isNull);
2420 } 2374 }
2421 CompletionSuggestion getterG = assertSuggestLocalField('_g', null); 2375 CompletionSuggestion getterG = assertSuggestLocalField('_g', null);
2422 if (getterG != null) { 2376 if (getterG != null) {
2423 expect(getterG.element.isDeprecated, isFalse); 2377 expect(getterG.element.isDeprecated, isFalse);
2424 expect(getterG.element.isPrivate, isTrue); 2378 expect(getterG.element.isPrivate, isTrue);
2425 expect(getterF.element.parameters, isNull); 2379 expect(getterF.element.parameters, isNull);
2426 } 2380 }
2427 assertSuggestImportedClass('bool'); 2381 assertSuggestImportedClass('bool');
2428 }); 2382 });
2429 } 2383 }
2430 2384
2431 test_MethodDeclaration_parameters_named() { 2385 test_MethodDeclaration_parameters_named() {
2432 // Block BlockFunctionBody MethodDeclaration 2386 // Block BlockFunctionBody MethodDeclaration
2433 addTestSource('class A {@deprecated Z a(X x, _, b, {y: boo}) {^}}'); 2387 addTestSource('class A {@deprecated Z a(X x, _, b, {y: boo}) {^}}');
2434 computeFast(); 2388 computeFast();
2435 return computeFull((bool result) { 2389 return computeFull((bool result) {
2436 expect(request.replacementOffset, completionOffset); 2390 expect(request.replacementOffset, completionOffset);
2437 expect(request.replacementLength, 0); 2391 expect(request.replacementLength, 0);
2438 CompletionSuggestion methodA = assertSuggestLocalMethod( 2392 CompletionSuggestion methodA = assertSuggestLocalMethod('a', 'A', 'Z',
2439 'a', 2393 relevance: DART_RELEVANCE_LOW, deprecated: true);
2440 'A',
2441 'Z',
2442 relevance: DART_RELEVANCE_LOW,
2443 deprecated: true);
2444 if (methodA != null) { 2394 if (methodA != null) {
2445 expect(methodA.element.isDeprecated, isTrue); 2395 expect(methodA.element.isDeprecated, isTrue);
2446 expect(methodA.element.isPrivate, isFalse); 2396 expect(methodA.element.isPrivate, isFalse);
2447 } 2397 }
2448 assertSuggestParameter('x', 'X'); 2398 assertSuggestParameter('x', 'X');
2449 assertSuggestParameter('y', null); 2399 assertSuggestParameter('y', null);
2450 assertSuggestParameter('b', null); 2400 assertSuggestParameter('b', null);
2451 assertSuggestImportedClass('int'); 2401 assertSuggestImportedClass('int');
2452 assertNotSuggested('_'); 2402 assertNotSuggested('_');
2453 }); 2403 });
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
3098 assertNotSuggested('bar2'); 3048 assertNotSuggested('bar2');
3099 assertNotSuggested('_B'); 3049 assertNotSuggested('_B');
3100 assertSuggestLocalClass('Y'); 3050 assertSuggestLocalClass('Y');
3101 assertSuggestLocalClass('C'); 3051 assertSuggestLocalClass('C');
3102 assertSuggestLocalVariable('f', null); 3052 assertSuggestLocalVariable('f', null);
3103 assertNotSuggested('x'); 3053 assertNotSuggested('x');
3104 assertNotSuggested('e'); 3054 assertNotSuggested('e');
3105 }); 3055 });
3106 } 3056 }
3107 } 3057 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698