blob: 6c3459869d45784e696b1bcd7a563bf8a78153c5 [file] [log] [blame]
// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analysis_server/src/services/correction/assist.dart';
import 'package:analysis_server/src/services/linter/lint_names.dart';
import 'package:analyzer_plugin/utilities/assist/assist.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'assist_processor.dart';
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ConvertToSingleQuotedStringTest);
});
}
@reflectiveTest
class ConvertToSingleQuotedStringTest extends AssistProcessorTest {
@override
AssistKind get kind => DartAssistKind.CONVERT_TO_SINGLE_QUOTED_STRING;
test_one_embeddedTarget() async {
await resolveTestUnit('''
main() {
print("a'b'c");
}
''');
await assertNoAssistAt('"a');
}
test_one_enclosingTarget() async {
await resolveTestUnit('''
main() {
print('abc');
}
''');
await assertNoAssistAt("'ab");
}
test_one_interpolation() async {
await resolveTestUnit(r'''
main() {
var b = 'b';
var c = 'c';
print("a $b-${c} d");
}
''');
await assertHasAssistAt(r'"a $b', r'''
main() {
var b = 'b';
var c = 'c';
print('a $b-${c} d');
}
''');
}
test_one_raw() async {
await resolveTestUnit('''
main() {
print(r"abc");
}
''');
await assertHasAssistAt('"ab', '''
main() {
print(r'abc');
}
''');
}
test_one_simple() async {
await resolveTestUnit('''
main() {
print("abc");
}
''');
await assertHasAssistAt('"ab', '''
main() {
print('abc');
}
''');
}
test_one_simple_noAssistWithLint() async {
createAnalysisOptionsFile(lints: [LintNames.prefer_single_quotes]);
verifyNoTestUnitErrors = false;
await resolveTestUnit('''
main() {
print("abc");
}
''');
await assertNoAssist();
}
test_three_embeddedTarget() async {
await resolveTestUnit('''
main() {
print("""a''\'bc""");
}
''');
await assertNoAssistAt('"a');
}
test_three_enclosingTarget() async {
await resolveTestUnit("""
main() {
print('''abc''');
}
""");
await assertNoAssistAt("'ab");
}
test_three_interpolation() async {
await resolveTestUnit(r'''
main() {
var b = 'b';
var c = 'c';
print("""a $b-${c} d""");
}
''');
await assertHasAssistAt(r'"a $b', r"""
main() {
var b = 'b';
var c = 'c';
print('''a $b-${c} d''');
}
""");
}
test_three_raw() async {
await resolveTestUnit('''
main() {
print(r"""abc""");
}
''');
await assertHasAssistAt('"ab', """
main() {
print(r'''abc''');
}
""");
}
test_three_simple() async {
await resolveTestUnit('''
main() {
print("""abc""");
}
''');
await assertHasAssistAt('"ab', """
main() {
print('''abc''');
}
""");
}
}