package org.jboss.tools.jsf.ui.test; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IPath; import org.eclipse.ui.IWorkbenchWindow; import org.jboss.tools.common.model.XModelObject; import org.jboss.tools.common.model.project.IModelNature; import org.jboss.tools.common.model.ui.ModelUIPlugin; import org.jboss.tools.common.model.util.EclipseResourceUtil; import org.jboss.tools.jsf.ui.JsfUiPlugin; import org.jboss.tools.jsf.ui.operation.JSFProjectCreationOperation; import org.jboss.tools.jsf.web.helpers.context.NewProjectWizardContext; import org.jboss.tools.jst.web.model.helpers.WebAppHelper; import org.jboss.tools.test.util.ResourcesUtils; import junit.framework.TestCase; public class NewJSFProjectTest extends TestCase { static String PROJECT_NAME = "NewTestProject"; public void testNewJSFProjectOperation() throws Exception { try { NewProjectWizardContext context = new NewProjectWizardContext(); IProject project = getProjectHandle(); context.setProject(project); IPath defaultPath = ModelUIPlugin.getWorkspace().getRoot().getLocation(); IPath locationPath = defaultPath.append(PROJECT_NAME); context.setServletVersion("2.5"); context.setProjectLocation(locationPath.toOSString()); context.setProjectTemplate("JSFKickStartWithoutLibs"); context.setJSFVersion("JSF 1.2"); JSFProjectCreationOperation operation = new JSFProjectCreationOperation(context); IWorkbenchWindow window = JsfUiPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); window.run(false, false, operation); IModelNature nature = EclipseResourceUtil.getModelNature(project); assertNotNull(nature); XModelObject webxml = nature.getModel().getByPath("/web.xml"); assertNotNull(webxml); XModelObject[] s = WebAppHelper.getServlets(webxml); assertTrue(s.length > 0); String servletName = s[0].getAttributeValue("servlet-name"); assertEquals("Faces Servlet", servletName); XModelObject facesConfig = nature.getModel().getByPath("/faces-config.xml"); assertNotNull(facesConfig); assertEquals("1.2", facesConfig.getAttributeValue("version")); XModelObject userBean = facesConfig.getChildByPath("Managed Beans/user"); assertNotNull(userBean); } finally { ResourcesUtils.deleteProject(PROJECT_NAME); } } public void testNewJSFProject21Operation() throws Exception { try { NewProjectWizardContext context = new NewProjectWizardContext(); IProject project = getProjectHandle(); context.setProject(project); IPath defaultPath = ModelUIPlugin.getWorkspace().getRoot().getLocation(); IPath locationPath = defaultPath.append(PROJECT_NAME); context.setServletVersion("2.5"); context.setProjectLocation(locationPath.toOSString()); context.setProjectTemplate("JSFKickStartWithoutLibs"); context.setJSFVersion("JSF 2.1"); JSFProjectCreationOperation operation = new JSFProjectCreationOperation(context); IWorkbenchWindow window = JsfUiPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow(); window.run(false, false, operation); IModelNature nature = EclipseResourceUtil.getModelNature(project); assertNotNull(nature); XModelObject webxml = nature.getModel().getByPath("/web.xml"); assertNotNull(webxml); XModelObject[] s = WebAppHelper.getServlets(webxml); assertTrue(s.length > 0); String servletName = s[0].getAttributeValue("servlet-name"); assertEquals("Faces Servlet", servletName); XModelObject facesConfig = nature.getModel().getByPath("/faces-config.xml"); assertNotNull(facesConfig); assertEquals("2.1", facesConfig.getAttributeValue("version")); } finally { ResourcesUtils.deleteProject(PROJECT_NAME); } } private IProject getProjectHandle() { return ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME); } }