[jbosstools-commits] JBoss Tools SVN: r24412 - in trunk: jsf/plugins/org.jboss.tools.jsf/META-INF and 9 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Aug 25 07:05:43 EDT 2010


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){



More information about the jbosstools-commits mailing list