Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Side by Side Diff: pkg/analysis_server/test/edit/refactoring_test.dart

Issue 481173002: When user renames 'prefix' in 'prefix.Class' she actually wants to rename ImportElement. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Tweak for test - reference ambiguous prefix name. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library test.edit.refactoring; 5 library test.edit.refactoring;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart'; 9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/edit/edit_domain.dart'; 10 import 'package:analysis_server/src/edit/edit_domain.dart';
11 import 'package:analysis_server/src/protocol.dart'; 11 import 'package:analysis_server/src/protocol.dart';
12 import 'package:analysis_testing/reflective_tests.dart'; 12 import 'package:analysis_testing/reflective_tests.dart';
13 import 'package:unittest/unittest.dart' hide ERROR; 13 import 'package:unittest/unittest.dart' hide ERROR;
14 14
15 import '../analysis_abstract.dart'; 15 import '../analysis_abstract.dart';
16 16
17 17
18 main() { 18 main() {
19 groupSep = ' | '; 19 groupSep = ' | ';
20 runReflectiveTests(GetAvailableRefactoringsTest); 20 runReflectiveTests(GetAvailableRefactoringsTest);
21 } 21 }
22 22
23 23
24 @ReflectiveTestCase() 24 @ReflectiveTestCase()
25 class GetAvailableRefactoringsTest extends AbstractAnalysisTest { 25 class GetAvailableRefactoringsTest extends AbstractAnalysisTest {
26 /**
27 * Tests that there is a RENAME refactoring available at the [search] offset.
28 */
26 Future assertHasRenameRefactoring(String code, String search) { 29 Future assertHasRenameRefactoring(String code, String search) {
27 addTestFile(code); 30 addTestFile(code);
28 return waitForTasksFinished().then((_) { 31 return waitForTasksFinished().then((_) {
29 List<String> kinds = getAvailableRefactorings(search); 32 List<String> kinds = getAvailableRefactorings(search);
30 expect(kinds, contains(RefactoringKind.RENAME)); 33 expect(kinds, contains(RefactoringKind.RENAME));
31 }); 34 });
32 } 35 }
33 36
37 /**
38 * Returns the list of available refactorings of the offset of [search] with
39 * [length] characters selected.
40 */
34 List<String> getAvailableRefactorings(String search, [int length = 0]) { 41 List<String> getAvailableRefactorings(String search, [int length = 0]) {
35 Request request = new Request('0', EDIT_GET_AVAILABLE_REFACTORINGS); 42 Request request = new Request('0', EDIT_GET_AVAILABLE_REFACTORINGS);
36 request.setParameter(FILE, testFile); 43 request.setParameter(FILE, testFile);
37 request.setParameter(OFFSET, findOffset(search)); 44 request.setParameter(OFFSET, findOffset(search));
38 request.setParameter(LENGTH, length); 45 request.setParameter(LENGTH, length);
39 Response response = handleSuccessfulRequest(request); 46 Response response = handleSuccessfulRequest(request);
40 return response.getResult(KINDS); 47 return response.getResult(KINDS);
41 } 48 }
42 49
43 @override 50 @override
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 85
79 Future test_rename_hasElement_importElement_directive() { 86 Future test_rename_hasElement_importElement_directive() {
80 return assertHasRenameRefactoring(''' 87 return assertHasRenameRefactoring('''
81 import 'dart:math' as math; 88 import 'dart:math' as math;
82 main() { 89 main() {
83 math.PI; 90 math.PI;
84 } 91 }
85 ''', 'import '); 92 ''', 'import ');
86 } 93 }
87 94
95 Future test_rename_hasElement_importElement_prefixDecl() {
96 return assertHasRenameRefactoring('''
97 import 'dart:math' as math;
98 main() {
99 math.PI;
100 }
101 ''', 'math;');
102 }
103
104 Future test_rename_hasElement_importElement_prefixRef() {
105 return assertHasRenameRefactoring('''
106 import 'dart:async' as test;
107 import 'dart:math' as test;
108 main() {
109 test.PI;
110 }
111 ''', 'test.PI;');
112 }
113
88 Future test_rename_hasElement_instanceGetter() { 114 Future test_rename_hasElement_instanceGetter() {
89 return assertHasRenameRefactoring(''' 115 return assertHasRenameRefactoring('''
90 class A { 116 class A {
91 get test => 0; 117 get test => 0;
92 } 118 }
93 main(A a) { 119 main(A a) {
94 a.test; 120 a.test;
95 } 121 }
96 ''', 'test;'); 122 ''', 'test;');
97 } 123 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 main() { 164 main() {
139 // not an element 165 // not an element
140 } 166 }
141 '''); 167 ''');
142 return waitForTasksFinished().then((_) { 168 return waitForTasksFinished().then((_) {
143 List<String> kinds = getAvailableRefactorings('// not an element'); 169 List<String> kinds = getAvailableRefactorings('// not an element');
144 expect(kinds, isNot(contains(RefactoringKind.RENAME))); 170 expect(kinds, isNot(contains(RefactoringKind.RENAME)));
145 }); 171 });
146 } 172 }
147 } 173 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698