blob: 16bd7b367feab599be711866dc0851faa873cd4d [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.
// @dart = 2.9
import 'package:analysis_server/src/services/correction/assist.dart';
import 'package:analyzer_plugin/utilities/assist/assist.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import 'assist_processor.dart';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(ConvertToDoubleQuotedStringTest);
});
}
@reflectiveTest
class ConvertToDoubleQuotedStringTest extends AssistProcessorTest {
@override
AssistKind get kind => DartAssistKind.CONVERT_TO_DOUBLE_QUOTED_STRING;
Future<void> test_one_embeddedTarget() async {
await resolveTestCode('''
main() {
print('a"b"c');
}
''');
await assertNoAssistAt("'a");
}
Future<void> test_one_enclosingTarget() async {
await resolveTestCode('''
main() {
print("abc");
}
''');
await assertNoAssistAt('"ab');
}
Future<void> test_one_interpolation() async {
await resolveTestCode(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");
}
''');
}
Future<void> test_one_interpolation_unterminated() async {
verifyNoTestUnitErrors = false;
await resolveTestCode(r'''
void f(int a) {
'$a
}
''');
await assertNoAssistAt("'");
}
Future<void> test_one_raw() async {
await resolveTestCode('''
main() {
print(r'abc');
}
''');
await assertHasAssistAt("'ab", '''
main() {
print(r"abc");
}
''');
}
Future<void> test_one_simple() async {
await resolveTestCode('''
main() {
print('abc');
}
''');
await assertHasAssistAt("'ab", '''
main() {
print("abc");
}
''');
}
Future<void> test_one_simple_unterminated_empty() async {
verifyNoTestUnitErrors = false;
await resolveTestCode('''
void f() {
'
}
''');
await assertNoAssistAt("'");
}
Future<void> test_three_embeddedTarget() async {
await resolveTestCode("""
main() {
print('''a""\"c''');
}
""");
await assertNoAssistAt("'a");
}
Future<void> test_three_enclosingTarget() async {
await resolveTestCode('''
main() {
print("""abc""");
}
''');
await assertNoAssistAt('"ab');
}
Future<void> test_three_interpolation() async {
await resolveTestCode(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""");
}
''');
}
Future<void> test_three_raw() async {
await resolveTestCode("""
main() {
print(r'''abc''');
}
""");
await assertHasAssistAt("'ab", '''
main() {
print(r"""abc""");
}
''');
}
Future<void> test_three_simple() async {
await resolveTestCode("""
main() {
print('''abc''');
}
""");
await assertHasAssistAt("'ab", '''
main() {
print("""abc""");
}
''');
}
}