Lines 26-31
Link Here
|
26 |
import org.eclipse.core.resources.ResourceAttributes; |
26 |
import org.eclipse.core.resources.ResourceAttributes; |
27 |
import org.eclipse.core.resources.ResourcesPlugin; |
27 |
import org.eclipse.core.resources.ResourcesPlugin; |
28 |
|
28 |
|
|
|
29 |
import org.eclipse.ltk.core.refactoring.Refactoring; |
30 |
import org.eclipse.ltk.core.refactoring.RefactoringStatus; |
31 |
import org.eclipse.ltk.core.refactoring.participants.MoveArguments; |
32 |
import org.eclipse.ltk.core.refactoring.participants.RenameArguments; |
33 |
import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring; |
34 |
|
29 |
import org.eclipse.jdt.core.ICompilationUnit; |
35 |
import org.eclipse.jdt.core.ICompilationUnit; |
30 |
import org.eclipse.jdt.core.IJavaProject; |
36 |
import org.eclipse.jdt.core.IJavaProject; |
31 |
import org.eclipse.jdt.core.IPackageFragment; |
37 |
import org.eclipse.jdt.core.IPackageFragment; |
Lines 33-48
Link Here
|
33 |
import org.eclipse.jdt.core.JavaCore; |
39 |
import org.eclipse.jdt.core.JavaCore; |
34 |
|
40 |
|
35 |
import org.eclipse.jdt.internal.corext.refactoring.rename.RenamePackageProcessor; |
41 |
import org.eclipse.jdt.internal.corext.refactoring.rename.RenamePackageProcessor; |
|
|
42 |
import org.eclipse.jdt.internal.corext.refactoring.util.JavaElementUtil; |
43 |
|
36 |
import org.eclipse.jdt.testplugin.JavaProjectHelper; |
44 |
import org.eclipse.jdt.testplugin.JavaProjectHelper; |
37 |
|
45 |
|
38 |
import org.eclipse.jdt.ui.tests.refactoring.infra.DebugUtils; |
46 |
import org.eclipse.jdt.ui.tests.refactoring.infra.DebugUtils; |
39 |
|
47 |
|
40 |
import org.eclipse.ltk.core.refactoring.Refactoring; |
|
|
41 |
import org.eclipse.ltk.core.refactoring.RefactoringStatus; |
42 |
import org.eclipse.ltk.core.refactoring.participants.MoveArguments; |
43 |
import org.eclipse.ltk.core.refactoring.participants.RenameArguments; |
44 |
import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring; |
45 |
|
46 |
|
48 |
|
47 |
public class RenamePackageTests extends RefactoringTest { |
49 |
public class RenamePackageTests extends RefactoringTest { |
48 |
private static final boolean BUG_6054= true; |
50 |
private static final boolean BUG_6054= true; |
Lines 52-57
Link Here
|
52 |
private static final String REFACTORING_PATH= "RenamePackage/"; |
54 |
private static final String REFACTORING_PATH= "RenamePackage/"; |
53 |
|
55 |
|
54 |
private boolean fUpdateTextualMatches; |
56 |
private boolean fUpdateTextualMatches; |
|
|
57 |
private boolean fRenameSubpackages; |
55 |
|
58 |
|
56 |
public RenamePackageTests(String name) { |
59 |
public RenamePackageTests(String name) { |
57 |
super(name); |
60 |
super(name); |
Lines 68-73
Link Here
|
68 |
protected void setUp() throws Exception { |
71 |
protected void setUp() throws Exception { |
69 |
super.setUp(); |
72 |
super.setUp(); |
70 |
fUpdateTextualMatches= false; |
73 |
fUpdateTextualMatches= false; |
|
|
74 |
fRenameSubpackages= false; |
71 |
} |
75 |
} |
72 |
|
76 |
|
73 |
protected String getRefactoringPath() { |
77 |
protected String getRefactoringPath() { |
Lines 174-189
Link Here
|
174 |
} |
178 |
} |
175 |
} |
179 |
} |
176 |
String[] moveHandles= ParticipantTesting.createHandles(movedObjects.toArray()); |
180 |
String[] moveHandles= ParticipantTesting.createHandles(movedObjects.toArray()); |
177 |
String[] renameHandles= ParticipantTesting.createHandles(thisPackage); |
181 |
String[] renameHandles= fRenameSubpackages |
|
|
182 |
? ParticipantTesting.createHandles(JavaElementUtil.getAllSubpackages(thisPackage)) |
183 |
: ParticipantTesting.createHandles(thisPackage); |
178 |
RenameRefactoring ref= createRefactoring(thisPackage, newPackageName); |
184 |
RenameRefactoring ref= createRefactoring(thisPackage, newPackageName); |
179 |
((RenamePackageProcessor)ref.getProcessor()).setUpdateReferences(updateReferences); |
185 |
RenamePackageProcessor processor= (RenamePackageProcessor) ref.getProcessor(); |
180 |
((RenamePackageProcessor) ref.getProcessor()).setUpdateTextualMatches(fUpdateTextualMatches); |
186 |
processor.setUpdateReferences(updateReferences); |
|
|
187 |
processor.setUpdateTextualMatches(fUpdateTextualMatches); |
188 |
processor.setRenameSubpackages(fRenameSubpackages); |
181 |
RefactoringStatus result= performRefactoring(ref); |
189 |
RefactoringStatus result= performRefactoring(ref); |
182 |
assertEquals("preconditions were supposed to pass", null, result); |
190 |
assertEquals("preconditions were supposed to pass", null, result); |
183 |
|
191 |
|
184 |
ParticipantTesting.testRename(renameHandles, |
192 |
RenameArguments[] renameArguments; |
185 |
new RenameArguments[] { |
193 |
if (fRenameSubpackages) { |
186 |
new RenameArguments(newPackageName, updateReferences)}); |
194 |
List arguments= new ArrayList(); |
|
|
195 |
for (int i= 0; i < packageNames.length; i++) { |
196 |
if (packageNames[i].startsWith(thisPackage.getElementName())) |
197 |
arguments.add(new RenameArguments(processor.getNewSubPackageName(packageNames[i]), updateReferences)); |
198 |
} |
199 |
renameArguments= (RenameArguments[]) arguments.toArray(new RenameArguments[arguments.size()]); |
200 |
} else { |
201 |
renameArguments= new RenameArguments[] { new RenameArguments(newPackageName, updateReferences) }; |
202 |
} |
203 |
ParticipantTesting.testRename(renameHandles, renameArguments); |
187 |
|
204 |
|
188 |
if (!targetExists) { |
205 |
if (!targetExists) { |
189 |
ParticipantTesting.testCreate(createHandles); |
206 |
ParticipantTesting.testCreate(createHandles); |
Lines 205-224
Link Here
|
205 |
|
222 |
|
206 |
//--- |
223 |
//--- |
207 |
|
224 |
|
208 |
assertTrue("package not renamed", ! getRoot().getPackageFragment(packageNames[0]).exists()); |
225 |
assertTrue("package not renamed: " + packageNames[0], ! getRoot().getPackageFragment(packageNames[0]).exists()); |
209 |
IPackageFragment newPackage= getRoot().getPackageFragment(newPackageName); |
226 |
IPackageFragment newPackage= getRoot().getPackageFragment(newPackageName); |
210 |
assertTrue("new package does not exist", newPackage.exists()); |
227 |
assertTrue("new package does not exist", newPackage.exists()); |
211 |
|
228 |
|
212 |
for (int i= 0; i < packageFileNames.length; i++){ |
229 |
for (int i= 0; i < packageFileNames.length; i++){ |
213 |
String packageName= (i == 0) |
230 |
String packageName; |
214 |
? newPackageName.replace('.', '/') + "/" |
231 |
if (i == 0) { |
215 |
: packageNames[i].replace('.', '/') + "/"; |
232 |
packageName= newPackageName; |
|
|
233 |
} else if (fRenameSubpackages) { |
234 |
String oldName= packageNames[i]; |
235 |
if (oldName.startsWith(packageNames[0])) |
236 |
packageName= newPackageName + oldName.substring(packageNames[0].length()); |
237 |
else |
238 |
packageName= oldName; |
239 |
} else { |
240 |
packageName= packageNames[i]; |
241 |
} |
242 |
String packagePath= packageName.replace('.', '/') + "/"; |
243 |
|
216 |
for (int j= 0; j < packageFileNames[i].length; j++){ |
244 |
for (int j= 0; j < packageFileNames[i].length; j++){ |
217 |
String s1= getFileContents(getOutputTestFileName(packageFileNames[i][j], packageName)); |
245 |
String s1= getFileContents(getOutputTestFileName(packageFileNames[i][j], packagePath)); |
218 |
ICompilationUnit cu= |
246 |
|
219 |
(i == 0) |
247 |
//XXX: bug |
220 |
? newPackage.getCompilationUnit(packageFileNames[i][j] + ".java") |
248 |
ICompilationUnit cu= getRoot().getPackageFragment(packagePath).getCompilationUnit(packageFileNames[i][j] + ".java"); //does not work |
221 |
: cus[i][j]; |
249 |
// ICompilationUnit cu= getRoot().getPackageFragment(packageName).getCompilationUnit(packageFileNames[i][j] + ".java"); //works |
|
|
250 |
|
222 |
//DebugUtils.dump("cu:" + cu.getElementName()); |
251 |
//DebugUtils.dump("cu:" + cu.getElementName()); |
223 |
String s2= cu.getSource(); |
252 |
String s2= cu.getSource(); |
224 |
|
253 |
|
Lines 229-242
Link Here
|
229 |
} |
258 |
} |
230 |
} finally{ |
259 |
} finally{ |
231 |
performDummySearch(); |
260 |
performDummySearch(); |
232 |
try { |
|
|
233 |
getRoot().getPackageFragment(newPackageName).delete(true, null); |
234 |
for (int i= 1; i < packageNames.length; i++) { |
235 |
getRoot().getPackageFragment(packageNames[i]).delete(true, null); |
236 |
} |
237 |
} catch (Exception e) { |
238 |
e.printStackTrace(); |
239 |
} |
240 |
} |
261 |
} |
241 |
} |
262 |
} |
242 |
|
263 |
|
Lines 353-358
Link Here
|
353 |
} |
374 |
} |
354 |
|
375 |
|
355 |
// ---------- tests ------------- |
376 |
// ---------- tests ------------- |
|
|
377 |
public void testHierarchical01() throws Exception { |
378 |
fRenameSubpackages= true; |
379 |
helper2(new String[]{"my", "my.a", "my.b"}, new String[][]{{"MyA"},{"ATest"},{"B"}}, "your"); |
380 |
} |
381 |
|
356 |
public void testFail0() throws Exception{ |
382 |
public void testFail0() throws Exception{ |
357 |
helper1(new String[]{"r"}, new String[][]{{"A"}}, "9"); |
383 |
helper1(new String[]{"r"}, new String[][]{{"A"}}, "9"); |
358 |
} |
384 |
} |