View | Details | Raw Unified | Return to bug 108456 | Differences between
and this patch

Collapse All | Expand All

(-)test cases/org/eclipse/jdt/ui/tests/refactoring/ParticipantTesting.java (-2 / +2 lines)
Lines 75-81 Link Here
75
	}
75
	}
76
	
76
	
77
	public static void testRename(String[] handles, RenameArguments[] args) {
77
	public static void testRename(String[] handles, RenameArguments[] args) {
78
		Assert.assertTrue(handles.length == args.length);
78
		Assert.assertEquals(handles.length, args.length);
79
		if (handles.length == 0) {
79
		if (handles.length == 0) {
80
			TestRenameParticipantShared.testNumberOfElements(0);
80
			TestRenameParticipantShared.testNumberOfElements(0);
81
			TestRenameParticipantSingle.testNumberOfInstances(0);
81
			TestRenameParticipantSingle.testNumberOfInstances(0);
Lines 90-96 Link Here
90
	}
90
	}
91
	
91
	
92
	public static void testMove(String[] handles, MoveArguments[] args) {
92
	public static void testMove(String[] handles, MoveArguments[] args) {
93
		Assert.assertTrue(handles.length == args.length);
93
		Assert.assertEquals(handles.length, args.length);
94
		if (handles.length == 0) {
94
		if (handles.length == 0) {
95
			TestMoveParticipantShared.testNumberOfElements(0);
95
			TestMoveParticipantShared.testNumberOfElements(0);
96
			TestMoveParticipantSingle.testNumberOfInstances(0);
96
			TestMoveParticipantSingle.testNumberOfInstances(0);
(-)test cases/org/eclipse/jdt/ui/tests/refactoring/RenamePackageTests.java (-29 / +55 lines)
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
	}
(-)resources/RenamePackage/testHierarchical01/in/my/MyA.java (+11 lines)
Added Link Here
1
package my;
2
3
4
import my.b.B;
5
import my.a.ATest;
6
import my.b.B;
7
import my.a.ATest;
8
import my.b.B;
9
10
public class MyA {
11
}
(-)resources/RenamePackage/testHierarchical01/in/my/a/ATest.java (+5 lines)
Added Link Here
1
package my.a;
2
3
public class ATest {
4
5
}
(-)resources/RenamePackage/testHierarchical01/in/my/b/B.java (+4 lines)
Added Link Here
1
package my.b;
2
3
public class B {
4
}
(-)resources/RenamePackage/testHierarchical01/out/your/MyA.java (+8 lines)
Added Link Here
1
package your;
2
3
4
import your.a.ATest;
5
import your.b.B;
6
7
public class MyA {
8
}
(-)resources/RenamePackage/testHierarchical01/out/your/a/ATest.java (+5 lines)
Added Link Here
1
package your.a;
2
3
public class ATest {
4
5
}
(-)resources/RenamePackage/testHierarchical01/out/your/b/B.java (+4 lines)
Added Link Here
1
package your.b;
2
3
public class B {
4
}

Return to bug 108456