Index: pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart |
diff --git a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart |
index 869ed882ef556cc5a02a59332214d36be8243373..9b200d9189eeda3e2c7a69ce613e1a0801289533 100644 |
--- a/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart |
+++ b/pkg/analysis_server/test/services/completion/dart/completion_contributor_util.dart |
@@ -54,6 +54,13 @@ abstract class DartCompletionContributorTest extends AbstractContextTest { |
testSource = addSource(testFile, content); |
} |
+ void assertHasNoParameterInfo(CompletionSuggestion suggestion) { |
+ expect(suggestion.parameterNames, isNull); |
+ expect(suggestion.parameterTypes, isNull); |
+ expect(suggestion.requiredParameterCount, isNull); |
+ expect(suggestion.hasNamedParameters, isNull); |
+ } |
+ |
void assertHasParameterInfo(CompletionSuggestion suggestion) { |
expect(suggestion.parameterNames, isNotNull); |
expect(suggestion.parameterTypes, isNotNull); |
@@ -129,6 +136,101 @@ abstract class DartCompletionContributorTest extends AbstractContextTest { |
return cs; |
} |
+ CompletionSuggestion assertSuggestClass(String name, |
+ {int relevance: DART_RELEVANCE_DEFAULT, |
+ String importUri, |
+ CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION, |
+ bool isDeprecated: false, |
+ String elemFile, |
+ int elemOffset}) { |
+ CompletionSuggestion cs = assertSuggest(name, |
+ csKind: kind, |
+ relevance: relevance, |
+ importUri: importUri, |
+ isDeprecated: isDeprecated, |
+ elemFile: elemFile, |
+ elemOffset: elemOffset); |
+ 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; |
+ } |
+ |
+ CompletionSuggestion assertSuggestFunction(String name, String returnType, |
+ {CompletionSuggestionKind kind: CompletionSuggestionKind.INVOCATION, |
+ bool deprecated: false, |
+ int relevance: DART_RELEVANCE_DEFAULT, |
+ String importUri}) { |
+ CompletionSuggestion cs = assertSuggest(name, |
+ csKind: kind, |
+ relevance: relevance, |
+ importUri: importUri, |
+ isDeprecated: deprecated); |
+ expect(cs.returnType, returnType != null ? returnType : 'dynamic'); |
+ protocol.Element element = cs.element; |
+ expect(element, isNotNull); |
+ expect(element.kind, equals(protocol.ElementKind.FUNCTION)); |
+ expect(element.name, equals(name)); |
+ expect(element.isDeprecated, equals(deprecated)); |
+ String param = element.parameters; |
+ expect(param, isNotNull); |
+ expect(param[0], equals('(')); |
+ expect(param[param.length - 1], equals(')')); |
+ expect(element.returnType, |
+ equals(returnType != null ? returnType : 'dynamic')); |
+ assertHasParameterInfo(cs); |
+ return cs; |
+ } |
+ |
+ CompletionSuggestion assertSuggestFunctionTypeAlias( |
+ String name, String returnType, bool isDeprecated, |
+ [int relevance = DART_RELEVANCE_DEFAULT, |
+ CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION, |
+ String importUri]) { |
+ CompletionSuggestion cs = assertSuggest(name, |
+ csKind: kind, |
+ relevance: relevance, |
+ importUri: importUri, |
+ isDeprecated: isDeprecated); |
+ expect(cs.returnType, returnType != null ? returnType : 'dynamic'); |
+ protocol.Element element = cs.element; |
+ expect(element, isNotNull); |
+ expect(element.kind, equals(protocol.ElementKind.FUNCTION_TYPE_ALIAS)); |
+ expect(element.name, equals(name)); |
+ expect(element.isDeprecated, equals(isDeprecated)); |
+ // TODO (danrubel) Determine why params are null |
+ // String param = element.parameters; |
+ // expect(param, isNotNull); |
+ // expect(param[0], equals('(')); |
+ // expect(param[param.length - 1], equals(')')); |
+ expect(element.returnType, |
+ equals(returnType != null ? returnType : 'dynamic')); |
+ // TODO (danrubel) Determine why param info is missing |
+ // assertHasParameterInfo(cs); |
+ return cs; |
+ } |
+ |
+ CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, |
+ [int relevance = DART_RELEVANCE_DEFAULT, |
+ CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION, |
+ String importUri]) { |
+ CompletionSuggestion cs = assertSuggest(name, |
+ csKind: kind, relevance: relevance, importUri: importUri); |
+ expect(cs.returnType, returnType != null ? returnType : 'dynamic'); |
+ protocol.Element element = cs.element; |
+ expect(element, isNotNull); |
+ expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); |
+ expect(element.name, equals(name)); |
+ expect(element.parameters, isNull); |
+ expect(element.returnType, returnType != null ? returnType : 'dynamic'); |
+ assertHasNoParameterInfo(cs); |
+ return cs; |
+ } |
+ |
/** |
* Return a [Future] that completes with the containing library information |
* after it is accessible via [context.getLibrariesContaining]. |