Add some additional tests for variable name completions for variable naming inside of for-statements
Change-Id: Ifbc06485a7378f917770ec41e8f0f602bbc2bd1e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101624
Reviewed-by: Jaime Wren <jwren@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
index 2d776e06..cf71397 100644
--- a/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/variable_name_contributor_test.dart
@@ -146,6 +146,88 @@
assertNotSuggested('_a');
}
+ @failingTest
+ test_ForStatement() async {
+ addTestSource('''
+ f() { for(AbstractCrazyNonsenseClassName ^) {} }
+ ''');
+ await computeSuggestions();
+ expect(replacementOffset, completionOffset);
+ expect(replacementLength, 0);
+ assertSuggestName('abstractCrazyNonsenseClassName');
+ assertSuggestName('crazyNonsenseClassName');
+ assertSuggestName('nonsenseClassName');
+ assertSuggestName('className');
+ assertSuggestName('name');
+ // private versions
+ assertNotSuggested('_abstractCrazyNonsenseClassName');
+ assertNotSuggested('_crazyNonsenseClassName');
+ assertNotSuggested('_nonsenseClassName');
+ assertNotSuggested('_className');
+ assertNotSuggested('_name');
+ }
+
+ test_ForStatement_partial() async {
+ addTestSource('''
+ f() { for(AbstractCrazyNonsenseClassName a^) {} }
+ ''');
+ await computeSuggestions();
+ expect(replacementOffset, completionOffset - 1);
+ expect(replacementLength, 1);
+ assertSuggestName('abstractCrazyNonsenseClassName');
+ assertSuggestName('crazyNonsenseClassName');
+ assertSuggestName('nonsenseClassName');
+ assertSuggestName('className');
+ assertSuggestName('name');
+ // private versions
+ assertNotSuggested('_abstractCrazyNonsenseClassName');
+ assertNotSuggested('_crazyNonsenseClassName');
+ assertNotSuggested('_nonsenseClassName');
+ assertNotSuggested('_className');
+ assertNotSuggested('_name');
+ }
+
+ @failingTest
+ test_ForStatement_prefixed() async {
+ addTestSource('''
+ f() { for(prefix.AbstractCrazyNonsenseClassName ^) {} }
+ ''');
+ await computeSuggestions();
+ expect(replacementOffset, completionOffset - 1);
+ expect(replacementLength, 1);
+ assertSuggestName('abstractCrazyNonsenseClassName');
+ assertSuggestName('crazyNonsenseClassName');
+ assertSuggestName('nonsenseClassName');
+ assertSuggestName('className');
+ assertSuggestName('name');
+ // private versions
+ assertNotSuggested('_abstractCrazyNonsenseClassName');
+ assertNotSuggested('_crazyNonsenseClassName');
+ assertNotSuggested('_nonsenseClassName');
+ assertNotSuggested('_className');
+ assertNotSuggested('_name');
+ }
+
+ test_ForStatement_prefixed_partial() async {
+ addTestSource('''
+ f() { for(prefix.AbstractCrazyNonsenseClassName a^) {} }
+ ''');
+ await computeSuggestions();
+ expect(replacementOffset, completionOffset - 1);
+ expect(replacementLength, 1);
+ assertSuggestName('abstractCrazyNonsenseClassName');
+ assertSuggestName('crazyNonsenseClassName');
+ assertSuggestName('nonsenseClassName');
+ assertSuggestName('className');
+ assertSuggestName('name');
+ // private versions
+ assertNotSuggested('_abstractCrazyNonsenseClassName');
+ assertNotSuggested('_crazyNonsenseClassName');
+ assertNotSuggested('_nonsenseClassName');
+ assertNotSuggested('_className');
+ assertNotSuggested('_name');
+ }
+
test_TopLevelVariableDeclaration_dont_suggest_type() async {
addTestSource('''
a ^