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

Unified Diff: pkg/analysis_server/test/services/completion/completion_test_util.dart

Issue 850003002: add local parameter info to completion suggestions (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analysis_server/test/services/completion/completion_test_util.dart
diff --git a/pkg/analysis_server/test/services/completion/completion_test_util.dart b/pkg/analysis_server/test/services/completion/completion_test_util.dart
index a6ce671e42c6f069498b541b524443860e67da24..6d305c232ffa69ed2f61ea0e3dcf2791c9d4daad 100644
--- a/pkg/analysis_server/test/services/completion/completion_test_util.dart
+++ b/pkg/analysis_server/test/services/completion/completion_test_util.dart
@@ -78,6 +78,16 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(suggestion.hasNamedParameters, isNull);
}
+ void assertHasParameterInfo(CompletionSuggestion suggestion) {
+ expect(suggestion.parameterNames, isNotNull);
+ expect(suggestion.parameterTypes, isNotNull);
+ expect(suggestion.parameterNames.length, suggestion.parameterTypes.length);
+ expect(
+ suggestion.requiredParameterCount,
+ lessThanOrEqualTo(suggestion.parameterNames.length));
+ expect(suggestion.hasNamedParameters, isNotNull);
+ }
+
void assertNoSuggestions({CompletionSuggestionKind kind: null}) {
if (kind == null) {
if (request.suggestions.length > 0) {
@@ -170,17 +180,21 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
fail(msg.toString());
}
- CompletionSuggestion assertSuggestClass(String name, [int relevance =
- COMPLETION_RELEVANCE_DEFAULT, CompletionSuggestionKind kind =
- CompletionSuggestionKind.INVOCATION]) {
- CompletionSuggestion cs =
- assertSuggest(name, csKind: kind, relevance: relevance);
+ CompletionSuggestion assertSuggestClass(String name, {int relevance:
+ COMPLETION_RELEVANCE_DEFAULT, CompletionSuggestionKind kind:
+ CompletionSuggestionKind.INVOCATION, bool isDeprecated: false}) {
+ CompletionSuggestion cs = assertSuggest(
+ name,
+ csKind: kind,
+ relevance: relevance,
+ isDeprecated: isDeprecated);
protocol.Element element = cs.element;
expect(element, isNotNull);
expect(element.kind, equals(protocol.ElementKind.CLASS));
expect(element.name, equals(name));
expect(element.parameters, isNull);
expect(element.returnType, isNull);
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -195,6 +209,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.name, equals(name));
expect(element.parameters, isNull);
expect(element.returnType, isNull);
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -216,6 +231,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.parameters, isNull);
// The returnType represents the type of a field
expect(element.returnType, type != null ? type : 'dynamic');
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -240,6 +256,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(
element.returnType,
equals(returnType != null ? returnType : 'dynamic'));
+ assertHasParameterInfo(cs);
return cs;
}
@@ -263,10 +280,11 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
// expect(param, isNotNull);
// expect(param[0], equals('('));
// expect(param[param.length - 1], equals(')'));
- // TODO (danrubel) Determine why return type is null
-// expect(
-// element.returnType,
-// equals(returnType != null ? returnType : 'dynamic'));
+ expect(
+ element.returnType,
+ equals(returnType != null ? returnType : 'dynamic'));
+ // TODO (danrubel) Determine why param info is missing
+// assertHasParameterInfo(cs);
return cs;
}
@@ -284,12 +302,11 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element, isNotNull);
expect(element.kind, equals(protocol.ElementKind.GETTER));
expect(element.name, equals(name));
- //TODO (danrubel) getter should have parameters
- // but not used in code completion
- //expect(element.parameters, '()');
+ expect(element.parameters, isNull);
expect(
element.returnType,
equals(returnType != null ? returnType : 'dynamic'));
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -306,6 +323,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.name, equals(name));
expect(element.parameters, isNull);
expect(element.returnType, isNull);
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -321,6 +339,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.kind, equals(protocol.ElementKind.LIBRARY));
expect(element.parameters, isNull);
expect(element.returnType, isNull);
+ assertHasNoParameterInfo(cs);
return cs;
} else {
return assertNotSuggested(prefix);
@@ -341,6 +360,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.name, equals(name));
expect(element.parameters, isNull);
expect(element.returnType, returnType != null ? returnType : 'dynamic');
+ assertHasNoParameterInfo(cs);
return cs;
} else {
return assertNotSuggested(name);
@@ -348,10 +368,14 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
}
CompletionSuggestion assertSuggestMethod(String name, String declaringType,
- String returnType, [int relevance = COMPLETION_RELEVANCE_DEFAULT,
- CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
- CompletionSuggestion cs =
- assertSuggest(name, csKind: kind, relevance: relevance);
+ String returnType, {int relevance: COMPLETION_RELEVANCE_DEFAULT,
+ CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION,
+ bool isDeprecated: false}) {
+ CompletionSuggestion cs = assertSuggest(
+ name,
+ csKind: kind,
+ relevance: relevance,
+ isDeprecated: isDeprecated);
expect(cs.declaringType, equals(declaringType));
expect(cs.returnType, returnType != null ? returnType : 'dynamic');
protocol.Element element = cs.element;
@@ -363,6 +387,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(param[0], equals('('));
expect(param[param.length - 1], equals(')'));
expect(element.returnType, returnType != null ? returnType : 'dynamic');
+ assertHasParameterInfo(cs);
return cs;
}
@@ -381,6 +406,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(param[0], equals('('));
expect(param[param.length - 1], equals(')'));
expect(element.returnType, equals(returnType));
+ assertHasParameterInfo(cs);
return cs;
} else {
return assertNotSuggested(name);
@@ -427,6 +453,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
if (element.returnType != null) {
expect(element.returnType, 'dynamic');
}
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -442,6 +469,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
expect(element.name, equals(name));
expect(element.parameters, isNull);
expect(element.returnType, returnType != null ? returnType : 'dynamic');
+ assertHasNoParameterInfo(cs);
return cs;
}
@@ -607,7 +635,11 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
String declaringType, String returnType, [int relevance =
COMPLETION_RELEVANCE_DEFAULT]) {
if (computer is LocalComputer) {
- return assertSuggestMethod(name, declaringType, returnType, relevance);
+ return assertSuggestMethod(
+ name,
+ declaringType,
+ returnType,
+ relevance: relevance);
} else {
return assertNotSuggested(name);
}
@@ -617,7 +649,7 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
COMPLETION_RELEVANCE_DEFAULT, CompletionSuggestionKind kind =
CompletionSuggestionKind.INVOCATION]) {
if (computer is ImportedComputer) {
- return assertSuggestClass(name, relevance, kind);
+ return assertSuggestClass(name, relevance: relevance, kind: kind);
} else {
return assertNotSuggested(name);
}
@@ -673,7 +705,11 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
String declaringType, String returnType, [int relevance =
COMPLETION_RELEVANCE_DEFAULT]) {
if (computer is ImportedComputer) {
- return assertSuggestMethod(name, declaringType, returnType, relevance);
+ return assertSuggestMethod(
+ name,
+ declaringType,
+ returnType,
+ relevance: relevance);
} else {
return assertNotSuggested(name);
}
@@ -701,7 +737,7 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
CompletionSuggestion assertSuggestInvocationClass(String name, [int relevance
= COMPLETION_RELEVANCE_DEFAULT]) {
if (computer is InvocationComputer) {
- return assertSuggestClass(name, relevance);
+ return assertSuggestClass(name, relevance: relevance);
} else {
return assertNotSuggested(name);
}
@@ -730,7 +766,11 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
String declaringType, String returnType, [int relevance =
COMPLETION_RELEVANCE_DEFAULT]) {
if (computer is InvocationComputer) {
- return assertSuggestMethod(name, declaringType, returnType, relevance);
+ return assertSuggestMethod(
+ name,
+ declaringType,
+ returnType,
+ relevance: relevance);
} else {
return assertNotSuggested(name);
}
@@ -754,13 +794,9 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
}
}
- CompletionSuggestion assertSuggestLocalClass(String name, [int relevance =
- COMPLETION_RELEVANCE_DEFAULT]) {
- if (computer is LocalComputer) {
- return assertSuggestClass(name, relevance);
- } else {
- return assertNotSuggested(name);
- }
+ CompletionSuggestion assertSuggestLocalClass(String name, {int relevance:
+ COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
+ return assertNotSuggested(name);
}
CompletionSuggestion assertSuggestLocalClassTypeAlias(String name,
@@ -773,7 +809,7 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
}
CompletionSuggestion assertSuggestLocalField(String name, String type,
- [int relevance = COMPLETION_RELEVANCE_DEFAULT]) {
+ {int relevance: COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
return assertNotSuggested(name);
}
@@ -802,22 +838,14 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
}
CompletionSuggestion assertSuggestLocalGetter(String name, String returnType,
- [int relevance = COMPLETION_RELEVANCE_DEFAULT]) {
- if (computer is LocalComputer) {
- return assertSuggestGetter(name, returnType, relevance: relevance);
- } else {
- return assertNotSuggested(name);
- }
+ {int relevance: COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
+ return assertNotSuggested(name);
}
CompletionSuggestion assertSuggestLocalMethod(String name,
- String declaringType, String returnType, [int relevance =
- COMPLETION_RELEVANCE_DEFAULT]) {
- if (computer is LocalComputer) {
- return assertSuggestMethod(name, declaringType, returnType, relevance);
- } else {
- return assertNotSuggested(name);
- }
+ String declaringType, String returnType, {int relevance:
+ COMPLETION_RELEVANCE_DEFAULT, bool isDeprecated: false}) {
+ return assertNotSuggested(name);
}
CompletionSuggestion assertSuggestLocalSetter(String name, [int relevance =
@@ -1475,8 +1503,10 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
A T;''');
computeFast();
return computeFull((bool result) {
- CompletionSuggestion suggestionA =
- assertSuggestLocalClass('A', COMPLETION_RELEVANCE_LOW);
+ CompletionSuggestion suggestionA = assertSuggestLocalClass(
+ 'A',
+ relevance: COMPLETION_RELEVANCE_LOW,
+ isDeprecated: true);
if (suggestionA != null) {
expect(suggestionA.element.isDeprecated, isTrue);
expect(suggestionA.element.isPrivate, isFalse);
@@ -2032,8 +2062,11 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
expect(methodA.element.isDeprecated, isFalse);
expect(methodA.element.isPrivate, isFalse);
}
- CompletionSuggestion getterF =
- assertSuggestLocalGetter('f', 'X', COMPLETION_RELEVANCE_LOW);
+ CompletionSuggestion getterF = assertSuggestLocalGetter(
+ 'f',
+ 'X',
+ relevance: COMPLETION_RELEVANCE_LOW,
+ isDeprecated: true);
if (getterF != null) {
expect(getterF.element.isDeprecated, isTrue);
expect(getterF.element.isPrivate, isFalse);
@@ -2056,8 +2089,11 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
expect(methodA.element.isDeprecated, isFalse);
expect(methodA.element.isPrivate, isTrue);
}
- CompletionSuggestion getterF =
- assertSuggestLocalField('f', 'X', COMPLETION_RELEVANCE_LOW);
+ CompletionSuggestion getterF = assertSuggestLocalField(
+ 'f',
+ 'X',
+ relevance: COMPLETION_RELEVANCE_LOW,
+ isDeprecated: true);
if (getterF != null) {
expect(getterF.element.isDeprecated, isTrue);
expect(getterF.element.isPrivate, isFalse);
@@ -2078,8 +2114,12 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {@deprecated Z a(X x, _, b, {y: boo}) {^}}');
computeFast();
return computeFull((bool result) {
- CompletionSuggestion methodA =
- assertSuggestLocalMethod('a', 'A', 'Z', COMPLETION_RELEVANCE_LOW);
+ CompletionSuggestion methodA = assertSuggestLocalMethod(
+ 'a',
+ 'A',
+ 'Z',
+ relevance: COMPLETION_RELEVANCE_LOW,
+ isDeprecated: true);
if (methodA != null) {
expect(methodA.element.isDeprecated, isTrue);
expect(methodA.element.isPrivate, isFalse);

Powered by Google App Engine
This is Rietveld 408576698