Author: dazarov
Date: 2010-08-25 07:05:42 -0400 (Wed, 25 Aug 2010)
New Revision: 24412
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/input.xhtml
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/tmp.xhtml
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/JSF2RefactoringTest.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF
trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/RefactoringChangesFactory.java
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/pages/inputname.xhtml
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java
trunk/tests/plugins/org.jboss.tools.tests/src/org/jboss/tools/tests/AbstractRefactorTest.java
Log:
https://jira.jboss.org/browse/JBIDE-6732
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF 2010-08-25 10:52:41 UTC
(rev 24411)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/META-INF/MANIFEST.MF 2010-08-25 11:05:42 UTC
(rev 24412)
@@ -9,6 +9,7 @@
org.jboss.tools.jsf.el.refactoring,
org.jboss.tools.jsf.facelet.model,
org.jboss.tools.jsf.jsf2.model,
+ org.jboss.tools.jsf.jsf2.refactoring,
org.jboss.tools.jsf.messages,
org.jboss.tools.jsf.model,
org.jboss.tools.jsf.model.handlers,
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-08-25 10:52:41 UTC (rev 24411)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/plugin.xml 2010-08-25 11:05:42 UTC (rev 24412)
@@ -618,9 +618,10 @@
</with>
<with
variable="element">
- <instanceof
- value="org.eclipse.core.resources.IFile">
- </instanceof>
+ <or>
+ <instanceof value="org.eclipse.core.resources.IFile" />
+ <instanceof value="org.eclipse.core.resources.IFolder" />
+ </or>
</with>
</enablement>
</renameParticipant>
@@ -643,9 +644,10 @@
</with>
<with
variable="element">
- <instanceof
- value="org.eclipse.core.resources.IFolder">
- </instanceof>
+ <or>
+ <instanceof value="org.eclipse.core.resources.IFile" />
+ <instanceof value="org.eclipse.core.resources.IFolder" />
+ </or>
</with>
</enablement>
</moveParticipant>
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSF2RenameParticipant.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -11,7 +11,10 @@
package org.jboss.tools.jsf.jsf2.refactoring;
+import java.util.Map;
+
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
@@ -38,6 +41,9 @@
private IProject project;
private String URI;
private String oldFileName;
+ private Object element;
+
+ private Map<String, String> urisMap;
@Override
public RefactoringStatus checkConditions(IProgressMonitor pm,
@@ -49,6 +55,15 @@
public Change createChange(IProgressMonitor pm) throws CoreException,
OperationCanceledException {
String newFileName = getArguments().getNewName();
+ if(element instanceof IFolder){
+ IFolder folder = (IFolder)element;
+ IPath newPath = folder.getFullPath().removeLastSegments(1).append(newFileName);
+ if (JSf2MoveParticipant.checkDistFolderPath(newPath)) {
+ urisMap = JSf2MoveParticipant.invokePossibleURIs(folder, newPath, false);
+ return RefactoringChangesFactory.createRenameURIChanges(project, urisMap);
+ }
+ return null;
+ }
if (project == null || newFileName == null || oldFileName == null) {
return null;
}
@@ -70,6 +85,7 @@
@Override
protected boolean initialize(Object element) {
+ this.element = element;
if (element instanceof IFile) {
IFile file = (IFile) element;
URI = calcURIFromPath(file.getFullPath());
@@ -78,6 +94,14 @@
oldFileName = file.getName();
return true;
}
+ }else if(element instanceof IFolder){
+ IFolder folder = (IFolder) element;
+ if (JSf2MoveParticipant.checkResourceFolderPath(folder.getFullPath())) {
+ project = folder.getProject();
+ oldFileName = folder.getName();
+ return true;
+ }
+
}
return false;
}
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/JSf2MoveParticipant.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -15,6 +15,8 @@
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
@@ -40,6 +42,7 @@
private IProject project;
private Map<String, String> urisMap;
+ private static boolean isMoveFolder = true;
@Override
public RefactoringStatus checkConditions(IProgressMonitor pm,
@@ -63,26 +66,35 @@
@Override
protected boolean initialize(Object element) {
- if (element instanceof IFolder) {
- IFolder folder = (IFolder) element;
- if (checkResourceFolderPath(folder.getFullPath())) {
- Object object = getArguments().getDestination();
- if (object instanceof IFolder) {
- if (folder.getProject() != ((IFolder) object).getProject()) {
- return false;
- }
- if (checkDistFolderPath(((IFolder) object).getFullPath())) {
- project = folder.getProject();
- invokePossibleURIs(folder, (IFolder) object);
- return true;
- }
+ if(!(element instanceof IFolder) && !(element instanceof IFile))
+ return false;
+
+ IFolder folder = null;
+ isMoveFolder = true;
+ if(element instanceof IFile){
+ IFile file = (IFile)element;
+
+ folder = (IFolder)file.getParent();
+ isMoveFolder = false;
+ }else
+ folder = (IFolder) element;
+ if (checkResourceFolderPath(folder.getFullPath())) {
+ Object object = getArguments().getDestination();
+ if (object instanceof IFolder) {
+ if (folder.getProject() != ((IFolder) object).getProject()) {
+ return false;
}
+ if (checkDistFolderPath(((IFolder) object).getFullPath())) {
+ project = folder.getProject();
+ urisMap = invokePossibleURIs(folder, (IFolder) object);
+ return true;
+ }
}
}
return false;
}
- private boolean checkDistFolderPath(IPath fullPath) {
+ public static boolean checkDistFolderPath(IPath fullPath) {
String[] segments = fullPath.segments();
if (segments.length > 2) {
if (segments[2].equals("resources")) { //$NON-NLS-1$
@@ -91,11 +103,17 @@
}
return false;
}
+
+ public static Map<String, String> invokePossibleURIs(IFolder srcFolder, IFolder
distFolder){
+ return invokePossibleURIs(srcFolder, distFolder.getFullPath(), isMoveFolder);
+ }
- private void invokePossibleURIs(IFolder srcFolder, IFolder distFolder) {
- String newFirstURIPart = createJSF2URIFromPath(distFolder.getFullPath());
+ public static Map<String, String> invokePossibleURIs(IFolder srcFolder, IPath
distPath, boolean isMoveFolder) {
+ Map<String, String> urisMap;
+ String newFirstURIPart = createJSF2URIFromPath(distPath);
String oldFirstURIPart = createJSF2URIFromPath(srcFolder.getFullPath());
- oldFirstURIPart = oldFirstURIPart.substring(0, oldFirstURIPart
+ if(isMoveFolder)
+ oldFirstURIPart = oldFirstURIPart.substring(0, oldFirstURIPart
.lastIndexOf('/'));
Set<String> oldURIs = new HashSet<String>();
invokeOldPossibleURIs(srcFolder, oldURIs);
@@ -104,9 +122,10 @@
urisMap.put(oldURI, newFirstURIPart
+ oldURI.replaceFirst(oldFirstURIPart, "")); //$NON-NLS-1$
}
+ return urisMap;
}
-
- private void invokeOldPossibleURIs(IFolder srcFolder, Set<String> uris) {
+
+ private static void invokeOldPossibleURIs(IFolder srcFolder, Set<String> uris) {
uris.add(createJSF2URIFromPath(srcFolder.getFullPath()));
try {
IResource[] children = srcFolder.members();
@@ -122,7 +141,7 @@
}
}
- private boolean checkResourceFolderPath(IPath path) {
+ public static boolean checkResourceFolderPath(IPath path) {
String[] segments = path.segments();
if (segments.length > 3) {
if (segments[2].equals("resources")) { //$NON-NLS-1$
@@ -132,7 +151,7 @@
return false;
}
- private String createJSF2URIFromPath(IPath path) {
+ private static String createJSF2URIFromPath(IPath path) {
StringBuilder uri = new StringBuilder(""); //$NON-NLS-1$
String[] segments = path.segments();
if (segments.length > 3) {
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/RefactoringChangesFactory.java
===================================================================
---
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/RefactoringChangesFactory.java 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/jsf2/refactoring/RefactoringChangesFactory.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -214,6 +214,13 @@
if (file == null) {
return false;
}
+ if(!file.isSynchronized(IResource.DEPTH_ZERO)){
+ return false;
+ }else if(file.isPhantom()){
+ return false;
+ }else if(file.isReadOnly()){
+ return false;
+ }
if (!"xhtml".equals(file.getFileExtension()) &&
!"jsp".equals(file.getFileExtension())) { //$NON-NLS-1$ //$NON-NLS-2$
IContentType contentType = IDE.getContentType(file);
if (contentType == null) {
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/pages/inputname.xhtml
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/pages/inputname.xhtml 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/pages/inputname.xhtml 2010-08-25
11:05:42 UTC (rev 24412)
@@ -3,7 +3,8 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
-
xmlns:c="http://java.sun.com/jstl/core">
+
xmlns:c="http://java.sun.com/jstl/core"
+
xmlns:ez="http://java.sun.com/jsf/composite/demo">
<f:loadBundle basename="resources" var="msg" />
@@ -16,7 +17,7 @@
<ui:define name="pageHeader">Facelets Hello
Application</ui:define>
<ui:define name="body">
-
+ <ez:input id="inputname" label="${msgs.prompt}"
value="#{user.name}" action="#{user.sayHello}" submitlabel="Say
Hello"/>
<form>
<jar:echo1 echo="Hello" />
<jar:echo echo="Hello" />
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/input.xhtml
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/input.xhtml
(rev 0)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/input.xhtml 2010-08-25
11:05:42 UTC (rev 24412)
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:composite="http://java.sun.com/jsf/composite">
+
+ <composite:interface>
+ <composite:attribute name="label"/>
+ <composite:attribute name="value" required="true"/>
+ <composite:attribute name="action" required="true"
method-signature="java.lang.String f()"/>
+ <composite:attribute name="submitlabel"/>
+ </composite:interface>
+
+ <composite:implementation>
+ <h:form>
+ <h:outputText value="#{cc.attrs.label}" />
+ <h:inputText value="#{cc.attrs.value}" />
+ <h:commandButton action="#{cc.attrs.action}"
value="#{cc.attrs.submitlabel}" />
+ </h:form>
+ </composite:implementation>
+</html>
\ No newline at end of file
Property changes on:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/demo/input.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/tmp.xhtml
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/tmp.xhtml
(rev 0)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/tmp.xhtml 2010-08-25
11:05:42 UTC (rev 24412)
@@ -0,0 +1,8 @@
+<?xml version="1.0"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:composite="http://java.sun.com/jsf/composite">
+
+</html>
\ No newline at end of file
Property changes on:
trunk/jsf/tests/org.jboss.tools.jsf.test/projects/JSF2ComponentsValidator/WebContent/resources/new/tmp.xhtml
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -19,6 +19,7 @@
import org.jboss.tools.jsf.kb.test.FaceletsKbModelTest;
import org.jboss.tools.jsf.model.pv.test.JSFPromptingProviderTest;
import org.jboss.tools.jsf.test.refactoring.ELVariableRefactoringTest;
+import org.jboss.tools.jsf.test.refactoring.JSF2RefactoringTest;
import org.jboss.tools.jsf.test.refactoring.MessagePropertyRefactoringTest;
import org.jboss.tools.jsf.test.validation.JSF2ComponentsValidatorTest;
import org.jboss.tools.test.util.ProjectImportTestSetup;
@@ -57,6 +58,11 @@
JSF2ComponentsValidatorTest.class), "org.jboss.tools.jsf.test",
//$NON-NLS-1$
new String[] { "projects/JSF2ComponentsValidator" }, //$NON-NLS-1$
new String[] { "JSF2ComponentsValidator" })); //$NON-NLS-1$
+ suite.addTest(new ProjectImportTestSetup(new TestSuite(
+ JSF2RefactoringTest.class), "org.jboss.tools.jsf.test", //$NON-NLS-1$
+ new String[] { "projects/JSF2ComponentsValidator" }, //$NON-NLS-1$
+ new String[] { "JSF2ComponentsValidator" })); //$NON-NLS-1$
+
return new DisableJavaIndexingSetup(suite);
}
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/JSF2RefactoringTest.java
===================================================================
---
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/JSF2RefactoringTest.java
(rev 0)
+++
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/JSF2RefactoringTest.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -0,0 +1,102 @@
+package org.jboss.tools.jsf.test.refactoring;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.ltk.internal.core.refactoring.resource.MoveResourcesProcessor;
+import org.eclipse.ltk.internal.core.refactoring.resource.RenameResourceProcessor;
+import org.jboss.tools.jsf.jsf2.refactoring.JSF2RenameParticipant;
+import org.jboss.tools.jsf.jsf2.refactoring.JSf2MoveParticipant;
+import org.jboss.tools.test.util.ProjectImportTestSetup;
+import org.jboss.tools.tests.AbstractRefactorTest;
+
+public class JSF2RefactoringTest extends AbstractRefactorTest {
+ static String projectName = "JSF2ComponentsValidator";
+ static IProject project;
+
+ public JSF2RefactoringTest(){
+ super("Refactor JSF2 Composite Components Test");
+ }
+
+ protected void setUp() throws Exception {
+ project = ProjectImportTestSetup.loadProject(projectName);
+ project.build(IncrementalProjectBuilder.FULL_BUILD, new NullProgressMonitor());
+ }
+
+ public void testRenameCompositeComponentFile() throws CoreException {
+ ArrayList<TestChangeStructure> list = new
ArrayList<TestChangeStructure>();
+
+ TestChangeStructure structure = new TestChangeStructure(project.getProject(),
"/WebContent/pages/inputname.xhtml");
+ TestTextChange change = new TestTextChange(776, 6, "input2");
+ structure.addTextChange(change);
+ list.add(structure);
+
+ IFile sourceFile =
project.getProject().getFile("/WebContent/resources/demo/input.xhtml");
+
+ RenameResourceProcessor processor = new RenameResourceProcessor(sourceFile);
+
+ JSF2RenameParticipant participant = new JSF2RenameParticipant();
+
+ checkRename(processor, sourceFile, "input2.xhtml", participant, list);
+ }
+
+ public void testRenameCompositeComponentFolder() throws CoreException {
+ ArrayList<TestChangeStructure> list = new
ArrayList<TestChangeStructure>();
+
+ TestChangeStructure structure = new TestChangeStructure(project.getProject(),
"/WebContent/pages/inputname.xhtml");
+ TestTextChange change = new TestTextChange(382, 5, "demo2");
+ structure.addTextChange(change);
+ list.add(structure);
+
+ IFolder sourceFolder =
project.getProject().getFolder("/WebContent/resources/demo");
+
+ RenameResourceProcessor processor = new RenameResourceProcessor(sourceFolder);
+
+ JSF2RenameParticipant participant = new JSF2RenameParticipant();
+
+ checkRename(processor, sourceFolder, "demo2", participant, list);
+ }
+
+ public void testMoveCompositeComponentFile() throws CoreException {
+ ArrayList<TestChangeStructure> list = new
ArrayList<TestChangeStructure>();
+
+ TestChangeStructure structure = new TestChangeStructure(project.getProject(),
"/WebContent/pages/inputname.xhtml");
+ TestTextChange change = new TestTextChange(776, 6, "input2");
+ structure.addTextChange(change);
+ list.add(structure);
+
+ IFile sourceFile =
project.getProject().getFile("/WebContent/resources/demo/input.xhtml");
+ IFolder destinationFolder =
project.getProject().getFolder("/WebContent/resources/new");
+
+ MoveResourcesProcessor processor = new MoveResourcesProcessor(new
IResource[]{sourceFile});
+
+ JSf2MoveParticipant participant = new JSf2MoveParticipant();
+
+ checkMove(processor, sourceFile, destinationFolder, participant, list);
+ }
+
+ public void testMoveCompositeComponentFolder() throws CoreException {
+ ArrayList<TestChangeStructure> list = new
ArrayList<TestChangeStructure>();
+
+ TestChangeStructure structure = new TestChangeStructure(project.getProject(),
"/WebContent/pages/inputname.xhtml");
+ TestTextChange change = new TestTextChange(776, 6, "input2");
+ structure.addTextChange(change);
+ list.add(structure);
+
+ IFolder sourceFolder =
project.getProject().getFolder("/WebContent/resources/demo");
+ IFolder destinationFolder =
project.getProject().getFolder("/WebContent/resources/new");
+
+ MoveResourcesProcessor processor = new MoveResourcesProcessor(new
IResource[]{sourceFolder});
+
+ JSf2MoveParticipant participant = new JSf2MoveParticipant();
+
+ checkMove(processor, sourceFolder, destinationFolder, participant, list);
+ }
+
+}
Property changes on:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/refactoring/JSF2RefactoringTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/tests/plugins/org.jboss.tools.tests/src/org/jboss/tools/tests/AbstractRefactorTest.java
===================================================================
---
trunk/tests/plugins/org.jboss.tools.tests/src/org/jboss/tools/tests/AbstractRefactorTest.java 2010-08-25
10:52:41 UTC (rev 24411)
+++
trunk/tests/plugins/org.jboss.tools.tests/src/org/jboss/tools/tests/AbstractRefactorTest.java 2010-08-25
11:05:42 UTC (rev 24412)
@@ -9,10 +9,16 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.ltk.core.refactoring.CompositeChange;
import org.eclipse.ltk.core.refactoring.TextFileChange;
+import org.eclipse.ltk.core.refactoring.participants.MoveArguments;
+import org.eclipse.ltk.core.refactoring.participants.MoveParticipant;
+import org.eclipse.ltk.core.refactoring.participants.RefactoringProcessor;
+import org.eclipse.ltk.core.refactoring.participants.RenameArguments;
+import org.eclipse.ltk.core.refactoring.participants.RenameParticipant;
import org.eclipse.ltk.core.refactoring.participants.RenameProcessor;
import org.eclipse.text.edits.MultiTextEdit;
import org.jboss.tools.test.util.JobUtils;
@@ -27,6 +33,49 @@
JobUtils.waitForIdle(2000);
// Test before renaming
+ checkBeforeRefactoring(changeList);
+
+ // Rename
+ processor.checkInitialConditions(new NullProgressMonitor());
+ processor.checkFinalConditions(new NullProgressMonitor(), null);
+ CompositeChange rootChange = (CompositeChange)processor.createChange(new
NullProgressMonitor());
+
+ checkChanges(rootChange, changeList);
+ }
+
+ protected void checkMove(RefactoringProcessor processor, IResource oldObject, IResource
destinationObject, MoveParticipant participant, List<TestChangeStructure>
changeList) throws CoreException {
+ JobUtils.waitForIdle(2000);
+
+ // Test before moving
+ checkBeforeRefactoring(changeList);
+
+ // Move
+ MoveArguments arguments = new MoveArguments(destinationObject, true);
+ participant.initialize(processor, oldObject, arguments);
+ participant.checkConditions(new NullProgressMonitor(), null);
+
+ CompositeChange rootChange = (CompositeChange)participant.createChange(new
NullProgressMonitor());
+
+ checkChanges(rootChange, changeList);
+ }
+
+ protected void checkRename(RefactoringProcessor processor, IResource oldObject, String
newName, RenameParticipant participant, List<TestChangeStructure> changeList) throws
CoreException {
+ JobUtils.waitForIdle(2000);
+
+ // Test before renaming
+ checkBeforeRefactoring(changeList);
+
+ // Rename
+ RenameArguments arguments = new RenameArguments(newName, true);
+ participant.initialize(processor, oldObject, arguments);
+ participant.checkConditions(new NullProgressMonitor(), null);
+
+ CompositeChange rootChange = (CompositeChange)participant.createChange(new
NullProgressMonitor());
+
+ checkChanges(rootChange, changeList);
+ }
+
+ private void checkBeforeRefactoring(List<TestChangeStructure> changeList){
for(TestChangeStructure changeStructure : changeList){
IFile file = changeStructure.getProject().getFile(changeStructure.getFileName());
String content = null;
@@ -41,12 +90,10 @@
assertNotSame(change.getText(), content.substring(change.getOffset(),
change.getOffset()+change.getLength()));
}
}
-
- // Rename
- processor.checkInitialConditions(new NullProgressMonitor());
- processor.checkFinalConditions(new NullProgressMonitor(), null);
- CompositeChange rootChange = (CompositeChange)processor.createChange(new
NullProgressMonitor());
-
+ }
+
+ private void checkChanges(CompositeChange rootChange, List<TestChangeStructure>
changeList) throws CoreException {
+ assertNotNull("Root change is null",rootChange);
assertEquals("There is unexpected number of changes",changeList.size(),
rootChange.getChildren().length);
for(int i = 0; i < rootChange.getChildren().length;i++){
@@ -62,7 +109,6 @@
rootChange.perform(new NullProgressMonitor());
JobUtils.waitForIdle(2000);
-
// Test results
for(TestChangeStructure changeStructure : changeList){
@@ -74,7 +120,6 @@
}
}
}
-
protected TestChangeStructure findChange(List<TestChangeStructure> changeList,
IFile file){
for(TestChangeStructure tcs : changeList){