| Index: pkg/analysis_server/test/edit/refactoring_test.dart
|
| diff --git a/pkg/analysis_server/test/edit/refactoring_test.dart b/pkg/analysis_server/test/edit/refactoring_test.dart
|
| index bc3656e4c7d39a47b8f4a593b7006567bdfd2469..76350befedc40c6a66bf5343ad231ebb8330151e 100644
|
| --- a/pkg/analysis_server/test/edit/refactoring_test.dart
|
| +++ b/pkg/analysis_server/test/edit/refactoring_test.dart
|
| @@ -300,6 +300,25 @@ main() {
|
| ''');
|
| }
|
|
|
| + test_names() {
|
| + addTestFile('''
|
| +class TreeItem {}
|
| +TreeItem getSelectedItem() => null;
|
| +main() {
|
| + var a = getSelectedItem();
|
| +}
|
| +''');
|
| + return getRefactoringResult(() {
|
| + return sendStringSuffixRequest('getSelectedItem()', ';', null, true);
|
| + }).then((result) {
|
| + ExtractLocalVariableFeedback feedback = result.feedback;
|
| + expect(
|
| + feedback.names,
|
| + unorderedEquals(['treeItem', 'item', 'selectedItem']));
|
| + expect(result.change, isNull);
|
| + });
|
| + }
|
| +
|
| test_nameWarning() {
|
| addTestFile('''
|
| main() {
|
| @@ -322,25 +341,6 @@ main() {
|
| });
|
| }
|
|
|
| - test_names() {
|
| - addTestFile('''
|
| -class TreeItem {}
|
| -TreeItem getSelectedItem() => null;
|
| -main() {
|
| - var a = getSelectedItem();
|
| -}
|
| -''');
|
| - return getRefactoringResult(() {
|
| - return sendStringSuffixRequest('getSelectedItem()', ';', null, true);
|
| - }).then((result) {
|
| - ExtractLocalVariableFeedback feedback = result.feedback;
|
| - expect(
|
| - feedback.names,
|
| - unorderedEquals(['treeItem', 'item', 'selectedItem']));
|
| - expect(result.change, isNull);
|
| - });
|
| - }
|
| -
|
| test_offsetsLengths() {
|
| addTestFile('''
|
| main() {
|
| @@ -733,24 +733,6 @@ main() {
|
|
|
| @ReflectiveTestCase()
|
| class InlineLocalTest extends _AbstractGetRefactoring_Test {
|
| - test_OK() {
|
| - addTestFile('''
|
| -main() {
|
| - int test = 42;
|
| - int a = test + 2;
|
| - print(test);
|
| -}
|
| -''');
|
| - return assertSuccessfulRefactoring(() {
|
| - return _sendInlineRequest('test + 2');
|
| - }, '''
|
| -main() {
|
| - int a = 42 + 2;
|
| - print(42);
|
| -}
|
| -''');
|
| - }
|
| -
|
| test_feedback() {
|
| addTestFile('''
|
| main() {
|
| @@ -781,6 +763,24 @@ main() {
|
| });
|
| }
|
|
|
| + test_OK() {
|
| + addTestFile('''
|
| +main() {
|
| + int test = 42;
|
| + int a = test + 2;
|
| + print(test);
|
| +}
|
| +''');
|
| + return assertSuccessfulRefactoring(() {
|
| + return _sendInlineRequest('test + 2');
|
| + }, '''
|
| +main() {
|
| + int a = 42 + 2;
|
| + print(42);
|
| +}
|
| +''');
|
| + }
|
| +
|
| Future<Response> _sendInlineRequest(String search) {
|
| Request request = new EditGetRefactoringParams(
|
| RefactoringKind.INLINE_LOCAL_VARIABLE,
|
| @@ -969,19 +969,102 @@ class RenameTest extends _AbstractGetRefactoring_Test {
|
|
|
| test_class() {
|
| addTestFile('''
|
| -class Test {}
|
| +class Test {
|
| + Test() {}
|
| + Test.named() {}
|
| +}
|
| main() {
|
| Test v;
|
| + new Test();
|
| + new Test.named();
|
| }
|
| ''');
|
| return assertSuccessfulRefactoring(() {
|
| - return sendRenameRequest('Test {}', 'NewName');
|
| + return sendRenameRequest('Test {', 'NewName');
|
| }, '''
|
| +class NewName {
|
| + NewName() {}
|
| + NewName.named() {}
|
| +}
|
| +main() {
|
| + NewName v;
|
| + new NewName();
|
| + new NewName.named();
|
| +}
|
| +''');
|
| + }
|
| +
|
| + test_class_options_fatalError() {
|
| + addTestFile('''
|
| +class Test {}
|
| +main() {
|
| + Test v;
|
| +}
|
| +''');
|
| + return getRefactoringResult(() {
|
| + return sendRenameRequest('Test {}', '');
|
| + }).then((result) {
|
| + assertResultProblemsFatal(
|
| + result.optionsProblems,
|
| + 'Class name must not be empty.');
|
| + // ...there is no any change
|
| + expect(result.change, isNull);
|
| + });
|
| + }
|
| +
|
| + test_class_validateOnly() {
|
| + addTestFile('''
|
| +class Test {}
|
| +main() {
|
| + Test v;
|
| +}
|
| +''');
|
| + return getRefactoringResult(() {
|
| + return sendRenameRequest('Test {}', 'NewName', true);
|
| + }).then((result) {
|
| + RenameFeedback feedback = result.feedback;
|
| + assertResultProblemsOK(result);
|
| + expect(feedback.elementKindName, 'class');
|
| + expect(feedback.oldName, 'Test');
|
| + expect(result.change, isNull);
|
| + });
|
| + }
|
| +
|
| + test_class_warning() {
|
| + addTestFile('''
|
| +class Test {}
|
| +main() {
|
| + Test v;
|
| +}
|
| +''');
|
| + return getRefactoringResult(() {
|
| + return sendRenameRequest('Test {}', 'newName');
|
| + }).then((result) {
|
| + assertResultProblemsWarning(
|
| + result.optionsProblems,
|
| + 'Class name should start with an uppercase letter.');
|
| + // ...but there is still a change
|
| + assertTestRefactoringResult(result, '''
|
| +class newName {}
|
| +main() {
|
| + newName v;
|
| +}
|
| +''');
|
| + }).then((_) {
|
| + // "NewName" is a perfectly valid name
|
| + return getRefactoringResult(() {
|
| + return sendRenameRequest('Test {}', 'NewName');
|
| + }).then((result) {
|
| + assertResultProblemsOK(result);
|
| + // ...and there is a new change
|
| + assertTestRefactoringResult(result, '''
|
| class NewName {}
|
| main() {
|
| NewName v;
|
| }
|
| ''');
|
| + });
|
| + });
|
| }
|
|
|
| test_classMember_field() {
|
| @@ -1101,115 +1184,59 @@ class A {
|
| ''');
|
| }
|
|
|
| - test_class_fromInstanceCreation() {
|
| + test_constructor_fromInstanceCreation() {
|
| addTestFile('''
|
| -class Test {
|
| - Test() {}
|
| - Test.named() {}
|
| +class A {
|
| + A.test() {}
|
| }
|
| main() {
|
| - new Test();
|
| - new Test.named();
|
| + new A.test();
|
| }
|
| ''');
|
| return assertSuccessfulRefactoring(() {
|
| - return sendRenameRequest('Test();', 'NewName');
|
| + return sendRenameRequest('test();', 'newName');
|
| }, '''
|
| -class NewName {
|
| - NewName() {}
|
| - NewName.named() {}
|
| +class A {
|
| + A.newName() {}
|
| }
|
| main() {
|
| - new NewName();
|
| - new NewName.named();
|
| -}
|
| -''');
|
| - }
|
| -
|
| - test_class_options_fatalError() {
|
| - addTestFile('''
|
| -class Test {}
|
| -main() {
|
| - Test v;
|
| + new A.newName();
|
| }
|
| ''');
|
| - return getRefactoringResult(() {
|
| - return sendRenameRequest('Test {}', '');
|
| - }).then((result) {
|
| - assertResultProblemsFatal(
|
| - result.optionsProblems,
|
| - 'Class name must not be empty.');
|
| - // ...there is no any change
|
| - expect(result.change, isNull);
|
| - });
|
| }
|
|
|
| - test_class_validateOnly() {
|
| + test_constructor_fromInstanceCreation_default_onClassName() {
|
| addTestFile('''
|
| -class Test {}
|
| -main() {
|
| - Test v;
|
| +class A {
|
| + A() {}
|
| }
|
| -''');
|
| - return getRefactoringResult(() {
|
| - return sendRenameRequest('Test {}', 'NewName', true);
|
| - }).then((result) {
|
| - RenameFeedback feedback = result.feedback;
|
| - assertResultProblemsOK(result);
|
| - expect(feedback.elementKindName, 'class');
|
| - expect(feedback.oldName, 'Test');
|
| - expect(result.change, isNull);
|
| - });
|
| - }
|
| -
|
| - test_class_warning() {
|
| - addTestFile('''
|
| -class Test {}
|
| main() {
|
| - Test v;
|
| + new A();
|
| }
|
| ''');
|
| - return getRefactoringResult(() {
|
| - return sendRenameRequest('Test {}', 'newName');
|
| - }).then((result) {
|
| - assertResultProblemsWarning(
|
| - result.optionsProblems,
|
| - 'Class name should start with an uppercase letter.');
|
| - // ...but there is still a change
|
| - assertTestRefactoringResult(result, '''
|
| -class newName {}
|
| -main() {
|
| - newName v;
|
| + return assertSuccessfulRefactoring(() {
|
| + return sendRenameRequest('A();', 'newName');
|
| + }, '''
|
| +class A {
|
| + A.newName() {}
|
| }
|
| -''');
|
| - }).then((_) {
|
| - // "NewName" is a perfectly valid name
|
| - return getRefactoringResult(() {
|
| - return sendRenameRequest('Test {}', 'NewName');
|
| - }).then((result) {
|
| - assertResultProblemsOK(result);
|
| - // ...and there is a new change
|
| - assertTestRefactoringResult(result, '''
|
| -class NewName {}
|
| main() {
|
| - NewName v;
|
| + new A.newName();
|
| }
|
| ''');
|
| - });
|
| - });
|
| }
|
|
|
| - test_constructor_fromInstanceCreation() {
|
| + test_constructor_fromInstanceCreation_default_onNew() {
|
| addTestFile('''
|
| class A {
|
| - A.test() {}
|
| + A() {}
|
| }
|
| main() {
|
| - new A.test();
|
| + new A();
|
| }
|
| ''');
|
| return assertSuccessfulRefactoring(() {
|
| - return sendRenameRequest('test();', 'newName');
|
| + return sendRenameRequest('new A();', 'newName');
|
| }, '''
|
| class A {
|
| A.newName() {}
|
|
|