Skip to content

Commit 216eb0b

Browse files
DanTupCommit Queue
authored andcommitted
[analysis_server] Migrate some tests from indexOf() to TestCode.parse()
See #60234 Change-Id: Ia5c110b40088982368512688195d70c2b51a2d50 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/421121 Reviewed-by: Brian Wilkerson <[email protected]> Reviewed-by: Phil Quitslund <[email protected]> Commit-Queue: Phil Quitslund <[email protected]>
1 parent 106009e commit 216eb0b

File tree

12 files changed

+58
-95
lines changed

12 files changed

+58
-95
lines changed

pkg/analysis_server/test/client/impl/completion_driver.dart

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:analysis_server/protocol/protocol.dart';
88
import 'package:analysis_server/protocol/protocol_constants.dart';
99
import 'package:analysis_server/protocol/protocol_generated.dart'
1010
hide AnalysisOptions;
11+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
1112
import 'package:analyzer_plugin/protocol/protocol_common.dart';
1213
import 'package:meta/meta.dart';
1314
import 'package:test/test.dart';
@@ -36,21 +37,16 @@ class CompletionDriver with ExpectMixin {
3637
}
3738

3839
void addTestFile(String content, {int? offset}) {
39-
completionOffset = content.indexOf('^');
40+
var code = TestCode.parse(content);
41+
4042
if (offset != null) {
41-
expect(completionOffset, -1, reason: 'cannot supply offset and ^');
43+
expect(code.positions, isEmpty, reason: 'cannot supply offset and ^');
4244
completionOffset = offset;
43-
server.newFile(server.testFilePath, content);
4445
} else {
45-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
46-
var nextOffset = content.indexOf('^', completionOffset + 1);
47-
expect(nextOffset, equals(-1), reason: 'too many ^');
48-
server.newFile(
49-
server.testFilePath,
50-
content.substring(0, completionOffset) +
51-
content.substring(completionOffset + 1),
52-
);
46+
completionOffset = code.position.offset;
5347
}
48+
49+
server.newFile(server.testFilePath, code.code);
5450
}
5551

5652
void assertValidId(String id) {

pkg/analysis_server/test/domain_completion_test.dart

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'dart:async';
77
import 'package:analysis_server/src/protocol_server.dart';
88
import 'package:analyzer/file_system/file_system.dart';
99
import 'package:analyzer/src/test_utilities/package_config_file_builder.dart';
10+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
1011
import 'package:test/test.dart';
1112
import 'package:test_reflective_loader/test_reflective_loader.dart';
1213

@@ -198,17 +199,10 @@ completion: Test
198199
required String completion,
199200
required String libraryUri,
200201
}) async {
201-
var completionOffset = content.indexOf('^');
202-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
202+
var code = TestCode.parse(content);
203+
var completionOffset = code.position.offset;
203204

204-
var nextOffset = content.indexOf('^', completionOffset + 1);
205-
expect(nextOffset, equals(-1), reason: 'too many ^');
206-
207-
newFile(
208-
path,
209-
content.substring(0, completionOffset) +
210-
content.substring(completionOffset + 1),
211-
);
205+
newFile(path, code.code);
212206

213207
return await _getDetails(
214208
path: path,
@@ -2152,17 +2146,10 @@ suggestions
21522146
required String content,
21532147
int maxResults = 1 << 10,
21542148
}) async {
2155-
var completionOffset = content.indexOf('^');
2156-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
2149+
var code = TestCode.parse(content);
2150+
var completionOffset = code.position.offset;
21572151

2158-
var nextOffset = content.indexOf('^', completionOffset + 1);
2159-
expect(nextOffset, equals(-1), reason: 'too many ^');
2160-
2161-
newFile(
2162-
path,
2163-
content.substring(0, completionOffset) +
2164-
content.substring(completionOffset + 1),
2165-
);
2152+
newFile(path, code.code);
21662153

21672154
return await _getSuggestions(
21682155
path: path,

pkg/analysis_server/test/domain_completion_util.dart

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'dart:async';
77
import 'package:analysis_server/protocol/protocol.dart';
88
import 'package:analysis_server/protocol/protocol_constants.dart';
99
import 'package:analysis_server/protocol/protocol_generated.dart';
10+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
1011
import 'package:analyzer_plugin/protocol/protocol_common.dart';
1112
import 'package:test/test.dart';
1213

@@ -82,17 +83,10 @@ class AbstractCompletionDomainTest extends PubPackageAnalysisServerTest {
8283
required String content,
8384
int maxResults = 1 << 10,
8485
}) async {
85-
completionOffset = content.indexOf('^');
86-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
86+
var code = TestCode.parse(content);
87+
var completionOffset = code.position.offset;
8788

88-
var nextOffset = content.indexOf('^', completionOffset + 1);
89-
expect(nextOffset, equals(-1), reason: 'too many ^');
90-
91-
newFile(
92-
path,
93-
content.substring(0, completionOffset) +
94-
content.substring(completionOffset + 1),
95-
);
89+
newFile(path, code.code);
9690

9791
return await getSuggestions(
9892
path: path,

pkg/analysis_server/test/integration/completion/get_suggestions_test.dart

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analysis_server/protocol/protocol_generated.dart';
6+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
67
import 'package:analyzer_plugin/protocol/protocol_common.dart';
78
import 'package:test/test.dart';
89
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -29,15 +30,10 @@ class GetSuggestions2Test extends AbstractAnalysisServerIntegrationTest {
2930

3031
path = sourcePath(relPath);
3132

32-
completionOffset = content.indexOf('^');
33-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
33+
var code = TestCode.parse(content);
34+
completionOffset = code.position.offset;
3435

35-
var nextOffset = content.indexOf('^', completionOffset + 1);
36-
expect(nextOffset, equals(-1), reason: 'too many ^');
37-
38-
this.content =
39-
content.substring(0, completionOffset) +
40-
content.substring(completionOffset + 1);
36+
this.content = code.code;
4137
}
4238

4339
Future<void> test_getSuggestions() async {

pkg/analysis_server/test/src/cider/assists_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import 'package:analysis_server/src/services/correction/assist.dart';
77
import 'package:analysis_server/src/services/correction/assist_internal.dart';
88
import 'package:analysis_server_plugin/edit/assist/assist.dart';
99
import 'package:analyzer/source/line_info.dart';
10+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
1011
import 'package:analyzer_plugin/protocol/protocol_common.dart' show SourceEdit;
1112
import 'package:analyzer_plugin/utilities/assist/assist.dart';
1213
import 'package:analyzer_utilities/test/mock_packages/mock_packages.dart';
@@ -123,14 +124,13 @@ void f() {
123124
}
124125

125126
void _updateFile(String content) {
126-
var offset = content.indexOf('^');
127-
expect(offset, isPositive, reason: 'Expected to find ^');
128-
expect(content.indexOf('^', offset + 1), -1, reason: 'Expected only one ^');
127+
var code = TestCode.parse(content);
128+
var offset = code.position.offset;
129129

130+
content = code.code;
130131
var lineInfo = LineInfo.fromContent(content);
131132
var location = lineInfo.getLocation(offset);
132133

133-
content = content.substring(0, offset) + content.substring(offset + 1);
134134
newFile(testPath, content);
135135

136136
_correctionContext = _CorrectionContext(

pkg/analysis_server/test/src/cider/completion_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:analysis_server/src/cider/completion.dart';
66
import 'package:analyzer/source/line_info.dart';
77
import 'package:analyzer/src/dart/analysis/results.dart';
88
import 'package:analyzer/src/test_utilities/function_ast_visitor.dart';
9+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
910
import 'package:analyzer_plugin/protocol/protocol_common.dart'
1011
show CompletionSuggestion, CompletionSuggestionKind, ElementKind;
1112
import 'package:test/test.dart';
@@ -855,14 +856,13 @@ import 'a.dart';
855856
}
856857

857858
_CompletionContext _updateFile(String content) {
858-
var offset = content.indexOf('^');
859-
expect(offset, isPositive, reason: 'Expected to find ^');
860-
expect(content.indexOf('^', offset + 1), -1, reason: 'Expected only one ^');
859+
var code = TestCode.parse(content);
860+
var offset = code.position.offset;
861861

862+
content = code.code;
862863
var lineInfo = LineInfo.fromContent(content);
863864
var location = lineInfo.getLocation(offset);
864865

865-
content = content.substring(0, offset) + content.substring(offset + 1);
866866
newFile(testPath, content);
867867

868868
return _CompletionContext(

pkg/analysis_server/test/src/cider/fixes_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:analysis_server/src/cider/fixes.dart';
66
import 'package:analysis_server/src/services/correction/fix.dart';
77
import 'package:analysis_server_plugin/edit/fix/fix.dart';
88
import 'package:analyzer/source/line_info.dart';
9+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
910
import 'package:analyzer_plugin/protocol/protocol_common.dart' show SourceEdit;
1011
import 'package:analyzer_plugin/utilities/fixes/fixes.dart';
1112
import 'package:test/test.dart';
@@ -219,14 +220,13 @@ var v = 0;
219220
}
220221

221222
void _updateFile(String content) {
222-
var offset = content.indexOf('^');
223-
expect(offset, isPositive, reason: 'Expected to find ^');
224-
expect(content.indexOf('^', offset + 1), -1, reason: 'Expected only one ^');
223+
var code = TestCode.parse(content);
224+
content = code.code;
225225

226+
var offset = code.position.offset;
226227
var lineInfo = LineInfo.fromContent(content);
227228
var location = lineInfo.getLocation(offset);
228229

229-
content = content.substring(0, offset) + content.substring(offset + 1);
230230
newFile(testPath, content);
231231

232232
_correctionContext = _CorrectionContext(

pkg/analysis_server/test/src/cider/rename_test.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import 'package:analysis_server/src/cider/rename.dart';
66
import 'package:analyzer/source/line_info.dart';
7+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
78
import 'package:analyzer_plugin/protocol/protocol_common.dart';
89
import 'package:analyzer_utilities/test/mock_packages/mock_packages.dart';
910
import 'package:test/test.dart';
@@ -927,14 +928,13 @@ void f(bar a) {}
927928
}
928929

929930
void _updateFile(String content) {
930-
var offset = content.indexOf('^');
931-
expect(offset, isPositive, reason: 'Expected to find ^');
932-
expect(content.indexOf('^', offset + 1), -1, reason: 'Expected only one ^');
931+
var code = TestCode.parse(content);
932+
var offset = code.position.offset;
933933

934-
var lineInfo = LineInfo.fromContent(content);
934+
_testCode = code.code;
935+
var lineInfo = LineInfo.fromContent(_testCode);
935936
var location = lineInfo.getLocation(offset);
936937

937-
_testCode = content.substring(0, offset) + content.substring(offset + 1);
938938
newFile(testPath, _testCode);
939939

940940
_correctionContext = _CorrectionContext(

pkg/analysis_server/test/src/cider/signature_help_test.dart

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'package:analysis_server/lsp_protocol/protocol.dart';
66
import 'package:analysis_server/src/cider/signature_help.dart';
77
import 'package:analyzer/source/line_info.dart';
8+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
89
import 'package:collection/collection.dart';
910
import 'package:test/test.dart';
1011
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -202,14 +203,13 @@ class Foo {
202203
}
203204

204205
void _updateFile(String content) {
205-
var offset = content.indexOf('^');
206-
expect(offset, isPositive, reason: 'Expected to find ^');
207-
expect(content.indexOf('^', offset + 1), -1, reason: 'Expected only one ^');
206+
var code = TestCode.parse(content);
207+
var offset = code.position.offset;
208208

209+
content = code.code;
209210
var lineInfo = LineInfo.fromContent(content);
210211
var location = lineInfo.getLocation(offset);
211212

212-
content = content.substring(0, offset) + content.substring(offset + 1);
213213
newFile(testPath, content);
214214

215215
_correctionContext = _CorrectionContext(

pkg/analysis_server/test/src/services/completion/dart/feature_computer_test.dart

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
// BSD-style license that can be found in the LICENSE file.
44

55
import 'package:analysis_server/src/services/completion/dart/feature_computer.dart';
6+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
67
import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart';
78
import 'package:test/test.dart';
89
import 'package:test_reflective_loader/test_reflective_loader.dart';
@@ -1095,13 +1096,11 @@ abstract class FeatureComputerTest extends AbstractSingleUnitTest {
10951096
bool verifyNoTestUnitErrors = false;
10961097

10971098
Future<void> completeIn(String content) async {
1098-
cursorIndex = content.indexOf('^');
1099-
if (cursorIndex < 0) {
1100-
fail('Missing node offset marker (^) in content');
1101-
}
1102-
content =
1103-
content.substring(0, cursorIndex) + content.substring(cursorIndex + 1);
1104-
await resolveTestCode(content);
1099+
var code = TestCode.parse(content);
1100+
cursorIndex = code.position.offset;
1101+
1102+
content = code.code;
1103+
await resolveTestCode(code.code);
11051104
completionTarget = CompletionTarget.forOffset(testUnit, cursorIndex);
11061105
}
11071106
}

pkg/analysis_server/test/src/services/completion/yaml/yaml_generator_test_support.dart

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'package:analysis_server/src/protocol_server.dart';
66
import 'package:analysis_server/src/services/completion/yaml/yaml_completion_generator.dart';
77
import 'package:analyzer/src/test_utilities/resource_provider_mixin.dart';
8+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
89
import 'package:test/test.dart';
910

1011
abstract class YamlGeneratorTest with ResourceProviderMixin {
@@ -52,13 +53,10 @@ abstract class YamlGeneratorTest with ResourceProviderMixin {
5253
/// completion request is encoded in the content as a caret (`^`).
5354
void getCompletions(String content) {
5455
// Extract the completion location from the [content].
55-
var completionOffset = content.indexOf('^');
56-
expect(completionOffset, isNot(equals(-1)), reason: 'missing ^');
57-
var nextOffset = content.indexOf('^', completionOffset + 1);
58-
expect(nextOffset, equals(-1), reason: 'too many ^');
59-
content =
60-
content.substring(0, completionOffset) +
61-
content.substring(completionOffset + 1);
56+
var code = TestCode.parse(content);
57+
var completionOffset = code.position.offset;
58+
59+
content = code.code;
6260
// Add the file to the file system.
6361
var file = newFile('/home/test/$fileName', content);
6462
// Generate completions.

pkg/analysis_server/tool/code_completion/benchmark/flutter.dart

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import 'package:analyzer/dart/analysis/results.dart';
88
import 'package:analyzer/file_system/overlay_file_system.dart';
99
import 'package:analyzer/file_system/physical_file_system.dart';
1010
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart';
11+
import 'package:analyzer/src/test_utilities/test_code_format.dart';
1112
import 'package:analyzer/src/util/performance/operation_performance.dart';
1213

1314
import 'sliding_statistics.dart';
@@ -45,22 +46,14 @@ Future<void> _runForever({
4546
required String path,
4647
required String markedCode,
4748
}) async {
48-
var offset = markedCode.indexOf('^');
49-
if (offset == -1) {
50-
throw ArgumentError('No ^ marker');
51-
}
52-
53-
var rawCode =
54-
markedCode.substring(0, offset) + markedCode.substring(offset + 1);
55-
if (rawCode.contains('^')) {
56-
throw ArgumentError('Duplicate ^ marker');
57-
}
49+
var code = TestCode.parse(markedCode);
50+
var offset = code.position.offset;
5851

5952
var resourceProvider = OverlayResourceProvider(
6053
PhysicalResourceProvider.INSTANCE,
6154
);
6255

63-
resourceProvider.setOverlay(path, content: rawCode, modificationStamp: -1);
56+
resourceProvider.setOverlay(path, content: code.code, modificationStamp: -1);
6457

6558
var collection = AnalysisContextCollectionImpl(
6659
resourceProvider: resourceProvider,

0 commit comments

Comments
 (0)