OLD | NEW |
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 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; | 7 import 'package:analysis_server/src/services/refactoring/refactoring.dart'; |
8 import 'package:test/test.dart'; | 8 import 'package:test/test.dart'; |
9 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 9 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
10 | 10 |
(...skipping 29 matching lines...) Expand all Loading... |
40 export '333/d.dart'; | 40 export '333/d.dart'; |
41 part 'a.dart'; | 41 part 'a.dart'; |
42 part '/absolute/uri.dart'; | 42 part '/absolute/uri.dart'; |
43 '''); | 43 '''); |
44 // perform refactoring | 44 // perform refactoring |
45 _createRefactoring('/project/000/1111/22/new_name.dart'); | 45 _createRefactoring('/project/000/1111/22/new_name.dart'); |
46 await _assertSuccessfulRefactoring(); | 46 await _assertSuccessfulRefactoring(); |
47 assertNoFileChange(pathA); | 47 assertNoFileChange(pathA); |
48 assertFileChangeResult(pathB, "import '22/new_name.dart';"); | 48 assertFileChangeResult(pathB, "import '22/new_name.dart';"); |
49 assertNoFileChange(pathC); | 49 assertNoFileChange(pathC); |
50 assertFileChangeResult( | 50 assertFileChangeResult(testFile, ''' |
51 testFile, | |
52 ''' | |
53 library lib; | 51 library lib; |
54 import 'dart:math'; | 52 import 'dart:math'; |
55 import 'c.dart'; | 53 import 'c.dart'; |
56 export '../333/d.dart'; | 54 export '../333/d.dart'; |
57 part '../a.dart'; | 55 part '../a.dart'; |
58 part '/absolute/uri.dart'; | 56 part '/absolute/uri.dart'; |
59 '''); | 57 '''); |
60 } | 58 } |
61 | 59 |
62 @failingTest | 60 @failingTest |
63 test_file_importedLibrary() async { | 61 test_file_importedLibrary() async { |
64 fail('The move file refactoring is not supported under the new driver'); | 62 fail('The move file refactoring is not supported under the new driver'); |
65 String pathA = '/project/000/1111/a.dart'; | 63 String pathA = '/project/000/1111/a.dart'; |
66 testFile = '/project/000/1111/sub/folder/test.dart'; | 64 testFile = '/project/000/1111/sub/folder/test.dart'; |
67 addSource( | 65 addSource(pathA, ''' |
68 pathA, | |
69 ''' | |
70 import 'sub/folder/test.dart'; | 66 import 'sub/folder/test.dart'; |
71 '''); | 67 '''); |
72 addTestSource(''); | 68 addTestSource(''); |
73 // perform refactoring | 69 // perform refactoring |
74 _createRefactoring('/project/000/new/folder/name/new_name.dart'); | 70 _createRefactoring('/project/000/new/folder/name/new_name.dart'); |
75 await _assertSuccessfulRefactoring(); | 71 await _assertSuccessfulRefactoring(); |
76 assertFileChangeResult( | 72 assertFileChangeResult(pathA, ''' |
77 pathA, | |
78 ''' | |
79 import '../new/folder/name/new_name.dart'; | 73 import '../new/folder/name/new_name.dart'; |
80 '''); | 74 '''); |
81 assertNoFileChange(testFile); | 75 assertNoFileChange(testFile); |
82 } | 76 } |
83 | 77 |
84 @failingTest | 78 @failingTest |
85 test_file_importedLibrary_down() async { | 79 test_file_importedLibrary_down() async { |
86 fail('The move file refactoring is not supported under the new driver'); | 80 fail('The move file refactoring is not supported under the new driver'); |
87 String pathA = '/project/000/1111/a.dart'; | 81 String pathA = '/project/000/1111/a.dart'; |
88 testFile = '/project/000/1111/test.dart'; | 82 testFile = '/project/000/1111/test.dart'; |
89 addSource( | 83 addSource(pathA, ''' |
90 pathA, | |
91 ''' | |
92 import 'test.dart'; | 84 import 'test.dart'; |
93 '''); | 85 '''); |
94 addTestSource(''); | 86 addTestSource(''); |
95 // perform refactoring | 87 // perform refactoring |
96 _createRefactoring('/project/000/1111/22/new_name.dart'); | 88 _createRefactoring('/project/000/1111/22/new_name.dart'); |
97 await _assertSuccessfulRefactoring(); | 89 await _assertSuccessfulRefactoring(); |
98 assertFileChangeResult( | 90 assertFileChangeResult(pathA, ''' |
99 pathA, | |
100 ''' | |
101 import '22/new_name.dart'; | 91 import '22/new_name.dart'; |
102 '''); | 92 '''); |
103 assertNoFileChange(testFile); | 93 assertNoFileChange(testFile); |
104 } | 94 } |
105 | 95 |
106 @failingTest | 96 @failingTest |
107 test_file_importedLibrary_package() async { | 97 test_file_importedLibrary_package() async { |
108 fail('The move file refactoring is not supported under the new driver'); | 98 fail('The move file refactoring is not supported under the new driver'); |
109 // configure packages | 99 // configure packages |
110 testFile = '/packages/my_pkg/lib/aaa/test.dart'; | 100 testFile = '/packages/my_pkg/lib/aaa/test.dart'; |
111 provider.newFile(testFile, ''); | 101 provider.newFile(testFile, ''); |
112 // TODO(brianwilkerson) Figure out what this should be replaced with. | 102 // TODO(brianwilkerson) Figure out what this should be replaced with. |
113 // Map<String, List<Folder>> packageMap = { | 103 // Map<String, List<Folder>> packageMap = { |
114 // 'my_pkg': <Folder>[provider.getResource('/packages/my_pkg/lib')] | 104 // 'my_pkg': <Folder>[provider.getResource('/packages/my_pkg/lib')] |
115 // }; | 105 // }; |
116 // context.sourceFactory = new SourceFactory([ | 106 // context.sourceFactory = new SourceFactory([ |
117 // new DartUriResolver(sdk), | 107 // new DartUriResolver(sdk), |
118 // new PackageMapUriResolver(provider, packageMap), | 108 // new PackageMapUriResolver(provider, packageMap), |
119 // resourceResolver | 109 // resourceResolver |
120 // ]); | 110 // ]); |
121 // do testing | 111 // do testing |
122 String pathA = '/project/bin/a.dart'; | 112 String pathA = '/project/bin/a.dart'; |
123 addSource( | 113 addSource(pathA, ''' |
124 pathA, | |
125 ''' | |
126 import 'package:my_pkg/aaa/test.dart'; | 114 import 'package:my_pkg/aaa/test.dart'; |
127 '''); | 115 '''); |
128 addTestSource('', Uri.parse('package:my_pkg/aaa/test.dart')); | 116 addTestSource('', Uri.parse('package:my_pkg/aaa/test.dart')); |
129 // perform refactoring | 117 // perform refactoring |
130 _createRefactoring('/packages/my_pkg/lib/bbb/ccc/new_name.dart'); | 118 _createRefactoring('/packages/my_pkg/lib/bbb/ccc/new_name.dart'); |
131 await _assertSuccessfulRefactoring(); | 119 await _assertSuccessfulRefactoring(); |
132 assertFileChangeResult( | 120 assertFileChangeResult(pathA, ''' |
133 pathA, | |
134 ''' | |
135 import 'package:my_pkg/bbb/ccc/new_name.dart'; | 121 import 'package:my_pkg/bbb/ccc/new_name.dart'; |
136 '''); | 122 '''); |
137 assertNoFileChange(testFile); | 123 assertNoFileChange(testFile); |
138 } | 124 } |
139 | 125 |
140 @failingTest | 126 @failingTest |
141 test_file_importedLibrary_up() async { | 127 test_file_importedLibrary_up() async { |
142 fail('The move file refactoring is not supported under the new driver'); | 128 fail('The move file refactoring is not supported under the new driver'); |
143 String pathA = '/project/000/1111/a.dart'; | 129 String pathA = '/project/000/1111/a.dart'; |
144 testFile = '/project/000/1111/22/test.dart'; | 130 testFile = '/project/000/1111/22/test.dart'; |
145 addSource( | 131 addSource(pathA, ''' |
146 pathA, | |
147 ''' | |
148 import '22/test.dart'; | 132 import '22/test.dart'; |
149 '''); | 133 '''); |
150 addTestSource(''); | 134 addTestSource(''); |
151 // perform refactoring | 135 // perform refactoring |
152 _createRefactoring('/project/000/1111/new_name.dart'); | 136 _createRefactoring('/project/000/1111/new_name.dart'); |
153 await _assertSuccessfulRefactoring(); | 137 await _assertSuccessfulRefactoring(); |
154 assertFileChangeResult( | 138 assertFileChangeResult(pathA, ''' |
155 pathA, | |
156 ''' | |
157 import 'new_name.dart'; | 139 import 'new_name.dart'; |
158 '''); | 140 '''); |
159 assertNoFileChange(testFile); | 141 assertNoFileChange(testFile); |
160 } | 142 } |
161 | 143 |
162 @failingTest | 144 @failingTest |
163 test_file_sourcedUnit() async { | 145 test_file_sourcedUnit() async { |
164 fail('The move file refactoring is not supported under the new driver'); | 146 fail('The move file refactoring is not supported under the new driver'); |
165 String pathA = '/project/000/1111/a.dart'; | 147 String pathA = '/project/000/1111/a.dart'; |
166 testFile = '/project/000/1111/22/test.dart'; | 148 testFile = '/project/000/1111/22/test.dart'; |
167 addSource( | 149 addSource(pathA, ''' |
168 pathA, | |
169 ''' | |
170 library lib; | 150 library lib; |
171 part '22/test.dart'; | 151 part '22/test.dart'; |
172 '''); | 152 '''); |
173 addTestSource(''' | 153 addTestSource(''' |
174 part of lib; | 154 part of lib; |
175 '''); | 155 '''); |
176 // perform refactoring | 156 // perform refactoring |
177 _createRefactoring('/project/000/1111/22/new_name.dart'); | 157 _createRefactoring('/project/000/1111/22/new_name.dart'); |
178 await _assertSuccessfulRefactoring(); | 158 await _assertSuccessfulRefactoring(); |
179 assertFileChangeResult( | 159 assertFileChangeResult(pathA, ''' |
180 pathA, | |
181 ''' | |
182 library lib; | 160 library lib; |
183 part '22/new_name.dart'; | 161 part '22/new_name.dart'; |
184 '''); | 162 '''); |
185 assertNoFileChange(testFile); | 163 assertNoFileChange(testFile); |
186 } | 164 } |
187 | 165 |
188 @failingTest | 166 @failingTest |
189 test_file_sourcedUnit_multipleLibraries() async { | 167 test_file_sourcedUnit_multipleLibraries() async { |
190 fail('The move file refactoring is not supported under the new driver'); | 168 fail('The move file refactoring is not supported under the new driver'); |
191 String pathA = '/project/000/1111/a.dart'; | 169 String pathA = '/project/000/1111/a.dart'; |
192 String pathB = '/project/000/b.dart'; | 170 String pathB = '/project/000/b.dart'; |
193 testFile = '/project/000/1111/22/test.dart'; | 171 testFile = '/project/000/1111/22/test.dart'; |
194 addSource( | 172 addSource(pathA, ''' |
195 pathA, | |
196 ''' | |
197 library lib; | 173 library lib; |
198 part '22/test.dart'; | 174 part '22/test.dart'; |
199 '''); | 175 '''); |
200 addSource( | 176 addSource(pathB, ''' |
201 pathB, | |
202 ''' | |
203 library lib; | 177 library lib; |
204 part '1111/22/test.dart'; | 178 part '1111/22/test.dart'; |
205 '''); | 179 '''); |
206 addTestSource(''' | 180 addTestSource(''' |
207 part of lib; | 181 part of lib; |
208 '''); | 182 '''); |
209 // perform refactoring | 183 // perform refactoring |
210 _createRefactoring('/project/000/1111/22/new_name.dart'); | 184 _createRefactoring('/project/000/1111/22/new_name.dart'); |
211 await _assertSuccessfulRefactoring(); | 185 await _assertSuccessfulRefactoring(); |
212 assertFileChangeResult( | 186 assertFileChangeResult(pathA, ''' |
213 pathA, | |
214 ''' | |
215 library lib; | 187 library lib; |
216 part '22/new_name.dart'; | 188 part '22/new_name.dart'; |
217 '''); | 189 '''); |
218 assertFileChangeResult( | 190 assertFileChangeResult(pathB, ''' |
219 pathB, | |
220 ''' | |
221 library lib; | 191 library lib; |
222 part '1111/22/new_name.dart'; | 192 part '1111/22/new_name.dart'; |
223 '''); | 193 '''); |
224 assertNoFileChange(testFile); | 194 assertNoFileChange(testFile); |
225 } | 195 } |
226 | 196 |
227 @failingTest | 197 @failingTest |
228 test_project() async { | 198 test_project() async { |
229 fail('The move file refactoring is not supported under the new driver'); | 199 fail('The move file refactoring is not supported under the new driver'); |
230 String pubspecPath = '/testName/pubspec.yaml'; | 200 String pubspecPath = '/testName/pubspec.yaml'; |
231 String appPath = '/testName/bin/myApp.dart'; | 201 String appPath = '/testName/bin/myApp.dart'; |
232 provider.newFile( | 202 provider.newFile(pubspecPath, ''' |
233 pubspecPath, | |
234 ''' | |
235 name: testName | 203 name: testName |
236 version: 0.0.1 | 204 version: 0.0.1 |
237 description: My pubspec file. | 205 description: My pubspec file. |
238 '''); | 206 '''); |
239 addSource('/testName/lib/myLib.dart', ''); | 207 addSource('/testName/lib/myLib.dart', ''); |
240 addSource( | 208 addSource(appPath, ''' |
241 appPath, | |
242 ''' | |
243 import 'package:testName/myLib.dart'; | 209 import 'package:testName/myLib.dart'; |
244 export 'package:testName/myLib.dart'; | 210 export 'package:testName/myLib.dart'; |
245 '''); | 211 '''); |
246 // configure Uri resolves | 212 // configure Uri resolves |
247 // TODO(brianwilkerson) Figure out what this should be replaced with. | 213 // TODO(brianwilkerson) Figure out what this should be replaced with. |
248 // context.sourceFactory = new SourceFactory([ | 214 // context.sourceFactory = new SourceFactory([ |
249 // new DartUriResolver(sdk), | 215 // new DartUriResolver(sdk), |
250 // new PackageMapUriResolver(provider, <String, List<Folder>>{ | 216 // new PackageMapUriResolver(provider, <String, List<Folder>>{ |
251 // 'testName': <Folder>[provider.getResource('/testName/lib')] | 217 // 'testName': <Folder>[provider.getResource('/testName/lib')] |
252 // }), | 218 // }), |
253 // resourceResolver, | 219 // resourceResolver, |
254 // ]); | 220 // ]); |
255 // perform refactoring | 221 // perform refactoring |
256 refactoring = new MoveFileRefactoring( | 222 refactoring = new MoveFileRefactoring( |
257 provider, searchEngine, null, null, '/testName'); | 223 provider, searchEngine, null, null, '/testName'); |
258 refactoring.newFile = '/newName'; | 224 refactoring.newFile = '/newName'; |
259 await _assertSuccessfulRefactoring(); | 225 await _assertSuccessfulRefactoring(); |
260 assertFileChangeResult( | 226 assertFileChangeResult(pubspecPath, ''' |
261 pubspecPath, | |
262 ''' | |
263 name: newName | 227 name: newName |
264 version: 0.0.1 | 228 version: 0.0.1 |
265 description: My pubspec file. | 229 description: My pubspec file. |
266 '''); | 230 '''); |
267 assertFileChangeResult( | 231 assertFileChangeResult(appPath, ''' |
268 appPath, | |
269 ''' | |
270 import 'package:newName/myLib.dart'; | 232 import 'package:newName/myLib.dart'; |
271 export 'package:newName/myLib.dart'; | 233 export 'package:newName/myLib.dart'; |
272 '''); | 234 '''); |
273 } | 235 } |
274 | 236 |
275 /** | 237 /** |
276 * Checks that all conditions are OK. | 238 * Checks that all conditions are OK. |
277 */ | 239 */ |
278 Future _assertSuccessfulRefactoring() async { | 240 Future _assertSuccessfulRefactoring() async { |
279 await assertRefactoringConditionsOK(); | 241 await assertRefactoringConditionsOK(); |
280 refactoringChange = await refactoring.createChange(); | 242 refactoringChange = await refactoring.createChange(); |
281 } | 243 } |
282 | 244 |
283 void _createRefactoring(String newName) { | 245 void _createRefactoring(String newName) { |
284 refactoring = | 246 refactoring = |
285 new MoveFileRefactoring(provider, searchEngine, null, testSource, null); | 247 new MoveFileRefactoring(provider, searchEngine, null, testSource, null); |
286 refactoring.newFile = newName; | 248 refactoring.newFile = newName; |
287 } | 249 } |
288 } | 250 } |
OLD | NEW |