Index: pkg/analysis_server/test/services/refactoring/extract_local_test.dart |
diff --git a/pkg/analysis_server/test/services/refactoring/extract_local_test.dart b/pkg/analysis_server/test/services/refactoring/extract_local_test.dart |
index 46a6e670122794d2646f24eb83b74b4b9a7dc137..cae09e7999dc7128f9fff5aafacddb4c519d4db7 100644 |
--- a/pkg/analysis_server/test/services/refactoring/extract_local_test.dart |
+++ b/pkg/analysis_server/test/services/refactoring/extract_local_test.dart |
@@ -5,6 +5,7 @@ |
library test.services.refactoring.extract_local; |
import 'dart:async'; |
+import 'dart:convert'; |
import 'package:analysis_server/plugin/protocol/protocol.dart'; |
import 'package:analysis_server/src/services/correction/status.dart'; |
@@ -534,7 +535,7 @@ main() { |
expect(refactoring.names, unorderedEquals(['helloBob', 'bob'])); |
} |
- test_occurrences_differentVariable() { |
+ test_occurrences_differentVariable() async { |
indexTestUnit(''' |
main() { |
{ |
@@ -550,7 +551,7 @@ main() { |
'''); |
_createRefactoringWithSuffix('v + 1', '); // marker'); |
// apply refactoring |
- return _assertSuccessfulRefactoring(''' |
+ await _assertSuccessfulRefactoring(''' |
main() { |
{ |
int v = 1; |
@@ -564,6 +565,8 @@ main() { |
} |
} |
'''); |
+ _assertSingleLinkedEditGroup( |
+ length: 3, offsets: [36, 59, 85], names: ['object', 'i']); |
} |
test_occurrences_disableOccurrences() { |
@@ -788,7 +791,7 @@ main(p) { |
'''); |
} |
- test_singleExpression_inExpressionBody() { |
+ test_singleExpression_inExpressionBody() async { |
indexTestUnit(''' |
main() { |
print((x) => x.y * x.y + 1); |
@@ -796,7 +799,7 @@ main() { |
'''); |
_createRefactoringForString('x.y'); |
// apply refactoring |
- return _assertSuccessfulRefactoring(''' |
+ await _assertSuccessfulRefactoring(''' |
main() { |
print((x) { |
var res = x.y; |
@@ -804,6 +807,8 @@ main() { |
}); |
} |
'''); |
+ _assertSingleLinkedEditGroup( |
+ length: 3, offsets: [31, 53, 59], names: ['y']); |
} |
test_singleExpression_inIfElseIf() { |
@@ -987,7 +992,7 @@ main() { |
'''); |
} |
- test_stringLiteral_part() { |
+ test_stringLiteral_part() async { |
indexTestUnit(''' |
main() { |
print('abcdefgh'); |
@@ -995,15 +1000,16 @@ main() { |
'''); |
_createRefactoringForString('cde'); |
// apply refactoring |
- return _assertSuccessfulRefactoring(r''' |
+ await _assertSuccessfulRefactoring(r''' |
main() { |
var res = 'cde'; |
print('ab${res}fgh'); |
} |
'''); |
+ _assertSingleLinkedEditGroup(length: 3, offsets: [15, 41], names: ['cde']); |
} |
- test_stringLiteral_whole() { |
+ test_stringLiteral_whole() async { |
indexTestUnit(''' |
main() { |
print('abc'); |
@@ -1011,15 +1017,17 @@ main() { |
'''); |
_createRefactoringForString("'abc'"); |
// apply refactoring |
- return _assertSuccessfulRefactoring(''' |
+ await _assertSuccessfulRefactoring(''' |
main() { |
var res = 'abc'; |
print(res); |
} |
'''); |
+ _assertSingleLinkedEditGroup( |
+ length: 3, offsets: [15, 36], names: ['object', 's']); |
} |
- test_stringLiteralPart() { |
+ test_stringLiteralPart() async { |
indexTestUnit(r''' |
main() { |
int x = 1; |
@@ -1029,7 +1037,7 @@ main() { |
'''); |
_createRefactoringForString(r'$x+$y'); |
// apply refactoring |
- return _assertSuccessfulRefactoring(r''' |
+ await _assertSuccessfulRefactoring(r''' |
main() { |
int x = 1; |
int y = 2; |
@@ -1037,6 +1045,7 @@ main() { |
print('${res}=${x+y}'); |
} |
'''); |
+ _assertSingleLinkedEditGroup(length: 3, offsets: [41, 67], names: ['xy']); |
} |
Future _assertInitialConditions_fatal_selection() async { |
@@ -1046,6 +1055,27 @@ main() { |
'Expression must be selected to activate this refactoring.'); |
} |
+ void _assertSingleLinkedEditGroup( |
+ {int length, List<int> offsets, List<String> names}) { |
+ String positionsString = offsets |
+ .map((offset) => '{"file": "$testFile", "offset": $offset}') |
+ .join(','); |
+ String suggestionsString = |
+ names.map((name) => '{"value": "$name", "kind": "VARIABLE"}').join(','); |
+ _assertSingleLinkedEditGroupJson(''' |
+{ |
+ "length": $length, |
+ "positions": [$positionsString], |
+ "suggestions": [$suggestionsString] |
+}'''); |
+ } |
+ |
+ void _assertSingleLinkedEditGroupJson(String expectedJsonString) { |
+ List<LinkedEditGroup> editGroups = refactoringChange.linkedEditGroups; |
+ expect(editGroups, hasLength(1)); |
+ expect(editGroups.first.toJson(), JSON.decode(expectedJsonString)); |
+ } |
+ |
/** |
* Checks that all conditions are OK and the result of applying the |
* [SourceChange] to [testUnit] is [expectedCode]. |