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

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

Issue 634653002: add named constructor, cascade selector suggestions and more tests (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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 show Element,
10 ElementKind; 10 ElementKind;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^'); 45 expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
46 int nextOffset = content.indexOf('^', completionOffset + 1); 46 int nextOffset = content.indexOf('^', completionOffset + 1);
47 expect(nextOffset, equals(-1), reason: 'too many ^'); 47 expect(nextOffset, equals(-1), reason: 'too many ^');
48 content = content.substring(0, completionOffset) + 48 content = content.substring(0, completionOffset) +
49 content.substring(completionOffset + 1); 49 content.substring(completionOffset + 1);
50 testSource = addSource(testFile, content); 50 testSource = addSource(testFile, content);
51 request = 51 request =
52 new DartCompletionRequest(context, searchEngine, testSource, completionO ffset); 52 new DartCompletionRequest(context, searchEngine, testSource, completionO ffset);
53 } 53 }
54 54
55 void assertNoSuggestions() {
56 expect(request.suggestions, equals(0));
57 }
58
55 void assertNotSuggested(String completion) { 59 void assertNotSuggested(String completion) {
56 CompletionSuggestion suggestion = request.suggestions.firstWhere( 60 CompletionSuggestion suggestion = request.suggestions.firstWhere(
57 (cs) => cs.completion == completion, 61 (cs) => cs.completion == completion,
58 orElse: () => null); 62 orElse: () => null);
59 if (suggestion != null) { 63 if (suggestion != null) {
60 _failedCompletion( 64 _failedCompletion(
61 'did not expect completion: $completion\n $suggestion'); 65 'did not expect completion: $completion\n $suggestion');
62 } 66 }
63 } 67 }
64 68
65 CompletionSuggestion assertSuggest(CompletionSuggestionKind kind, 69 CompletionSuggestion assertSuggest(CompletionSuggestionKind kind,
66 String completion, [CompletionRelevance relevance = CompletionRelevance.DE FAULT, 70 String completion, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
67 bool isDeprecated = false, bool isPotential = false]) { 71 bool isDeprecated = false, bool isPotential = false]) {
68 CompletionSuggestion cs; 72 CompletionSuggestion cs;
69 request.suggestions.forEach((s) { 73 request.suggestions.forEach((s) {
70 if (s.completion == completion && s.kind == kind) { 74 if (s.completion == completion && s.kind == kind) {
71 if (cs == null) { 75 if (cs == null) {
72 cs = s; 76 cs = s;
73 } else { 77 } else {
74 _failedCompletion( 78 _failedCompletion(
75 'expected exactly one $completion', 79 'expected exactly one $completion',
76 request.suggestions.where((s) => s.completion == completion)); 80 request.suggestions.where((s) => s.completion == completion));
77 } 81 }
78 } 82 }
79 }); 83 });
80 if (cs == null) { 84 if (cs == null) {
81 _failedCompletion('expected $completion', request.suggestions); 85 _failedCompletion('expected $completion $kind', request.suggestions);
82 } 86 }
83 expect(cs.kind, equals(kind)); 87 expect(cs.kind, equals(kind));
84 expect(cs.relevance, equals(relevance)); 88 expect(cs.relevance, equals(relevance));
85 expect(cs.selectionOffset, equals(completion.length)); 89 expect(cs.selectionOffset, equals(completion.length));
86 expect(cs.selectionLength, equals(0)); 90 expect(cs.selectionLength, equals(0));
87 expect(cs.isDeprecated, equals(isDeprecated)); 91 expect(cs.isDeprecated, equals(isDeprecated));
88 expect(cs.isPotential, equals(isPotential)); 92 expect(cs.isPotential, equals(isPotential));
89 return cs; 93 return cs;
90 } 94 }
91 95
92 CompletionSuggestion assertSuggestClass(String name, 96 CompletionSuggestion assertSuggestClass(String name,
93 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 97 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) {
94 CompletionSuggestion cs = 98 CompletionSuggestion cs =
95 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); 99 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance);
96 protocol.Element element = cs.element; 100 protocol.Element element = cs.element;
97 expect(element, isNotNull); 101 expect(element, isNotNull);
98 expect(element.kind, equals(protocol.ElementKind.CLASS)); 102 expect(element.kind, equals(protocol.ElementKind.CLASS));
99 expect(element.name, equals(name)); 103 expect(element.name, equals(name));
100 expect(element.returnType, isNull); 104 expect(element.returnType, isNull);
101 return cs; 105 return cs;
102 } 106 }
103 107
108 CompletionSuggestion assertSuggestConstructor(String name,
109 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) {
110 CompletionSuggestion cs =
111 assertSuggest(CompletionSuggestionKind.CONSTRUCTOR, name, relevance);
112 protocol.Element element = cs.element;
113 expect(element, isNotNull);
114 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR));
115 expect(element.name, equals(name));
116 expect(element.returnType, isNull);
117 return cs;
118 }
119
104 CompletionSuggestion assertSuggestFunction(String name, String returnType, 120 CompletionSuggestion assertSuggestFunction(String name, String returnType,
105 bool isDeprecated, [CompletionRelevance relevance = 121 bool isDeprecated, [CompletionRelevance relevance =
106 CompletionRelevance.DEFAULT]) { 122 CompletionRelevance.DEFAULT]) {
107 CompletionSuggestion cs = assertSuggest( 123 CompletionSuggestion cs = assertSuggest(
108 CompletionSuggestionKind.FUNCTION, 124 CompletionSuggestionKind.FUNCTION,
109 name, 125 name,
110 relevance, 126 relevance,
111 isDeprecated); 127 isDeprecated);
112 expect(cs.returnType, equals(returnType)); 128 expect(cs.returnType, equals(returnType));
113 protocol.Element element = cs.element; 129 protocol.Element element = cs.element;
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 sb.write('\n in'); 331 sb.write('\n in');
316 AstNode node = completionNode; 332 AstNode node = completionNode;
317 while (node != null) { 333 while (node != null) {
318 sb.write('\n ${node.runtimeType}'); 334 sb.write('\n ${node.runtimeType}');
319 node = node.parent; 335 node = node.parent;
320 } 336 }
321 } 337 }
322 fail(sb.toString()); 338 fail(sb.toString());
323 } 339 }
324 } 340 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698