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

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

Issue 2839273002: Named arg completion fixes (flutter-intellij#551) (Closed)
Patch Set: Created 3 years, 8 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/dart/arglist_contributor_test.dart
diff --git a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
index b06ac9ef0288a3d427f1e4ff46d8072c5cf7feb4..982beb0feebe2dd2ad3b8651a1dd814ccfb8048f 100644
--- a/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/arglist_contributor_test.dart
@@ -32,6 +32,20 @@ class ArgListContributorTest extends DartCompletionContributorTest {
}
}
+ /**
+ * Assert that there is a suggestion with the given parameter [name] that has
+ * the given [completion], [selectionOffset] and [selectionLength].
+ */
+ void assertSuggestArgumentAndCompletion(String name,
+ {String completion, int selectionOffset, int selectionLength: 0}) {
+ CompletionSuggestion suggestion =
+ suggestions.firstWhere((s) => s.parameterName == name);
+ expect(suggestion, isNotNull);
+ expect(suggestion.completion, completion);
+ expect(suggestion.selectionOffset, selectionOffset);
+ expect(suggestion.selectionLength, selectionLength);
+ }
+
void assertSuggestArgumentList(
List<String> paramNames, List<String> paramTypes) {
// DEPRECATED... argument lists are no longer suggested.
@@ -84,10 +98,15 @@ class ArgListContributorTest extends DartCompletionContributorTest {
* the only suggestions.
*/
void assertSuggestArgumentsAndTypes(
- {Map<String, String> namedArgumentsWithTypes, bool includeColon: true}) {
+ {Map<String, String> namedArgumentsWithTypes,
+ bool includeColon: true,
+ bool includeComma: false}) {
List<CompletionSuggestion> expected = new List<CompletionSuggestion>();
namedArgumentsWithTypes.forEach((String name, String type) {
String completion = includeColon ? '$name: ' : name;
+ if (includeComma) {
+ completion = '$completion,';
+ }
expected.add(assertSuggest(completion,
csKind: CompletionSuggestionKind.NAMED_ARGUMENT,
relevance: DART_RELEVANCE_NAMED_PARAMETER,
@@ -131,6 +150,32 @@ class A { const A({int one, String two: 'defaultValue'}); }
assertSuggestions([', one: ']);
}
+ test_ArgumentList_local_constructor_named_param_prepend() async {
+ //
+ addTestSource('''
+class A { A({int one, String two: 'defaultValue'}) { } }
+main() { new A(^ two: 'foo');}''');
+ await computeSuggestions();
+
+ assertSuggestArgumentsAndTypes(
+ namedArgumentsWithTypes: {'one': 'int'}, includeComma: true);
+ assertSuggestArgumentAndCompletion('one',
+ completion: 'one: ,', selectionOffset: 5);
+ }
+
+ test_ArgumentList_local_constructor_named_param_prefixed_prepend() async {
+ //
+ addTestSource('''
+class A { A({int one, String two: 'defaultValue'}) { } }
+main() { new A(o^ two: 'foo');}''');
danrubel 2017/04/27 14:04:13 I recommend two more tests... each with a trailing
pquitslund 2017/04/27 17:09:54 Thank you, yes! Done.
+ await computeSuggestions();
+
+ assertSuggestArgumentsAndTypes(
+ namedArgumentsWithTypes: {'one': 'int'}, includeComma: true);
+ assertSuggestArgumentAndCompletion('one',
+ completion: 'one: ,', selectionOffset: 5);
+ }
+
test_Annotation_imported_constructor_named_param() async {
addSource(
'/libA.dart',
@@ -543,8 +588,11 @@ main() {
class A { A({int one, String two: 'defaultValue'}) { } }
main() { new A(^);}''');
await computeSuggestions();
+
assertSuggestArgumentsAndTypes(
namedArgumentsWithTypes: {'one': 'int', 'two': 'String'});
+ assertSuggestArgumentAndCompletion('one',
+ completion: 'one: ', selectionOffset: 5);
danrubel 2017/04/27 14:04:13 And several more tests similar to this one. new A
pquitslund 2017/04/27 17:09:54 Done.
}
test_ArgumentList_local_constructor_named_param2() async {

Powered by Google App Engine
This is Rietveld 408576698