blob: 5d41cab8b2557211122e337bb11f9ea66a2db60d [file] [log] [blame]
package org.eclipse.jst.pagedesigner.tests.tabbed.properties.sections;
import java.io.IOException;
import junit.framework.TestCase;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.StructuredSelection;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IDOMContextResolver;
import org.eclipse.jst.jsf.context.resolver.structureddocument.IStructuredDocumentContextResolverFactory;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContext;
import org.eclipse.jst.jsf.context.structureddocument.IStructuredDocumentContextFactory;
import org.eclipse.jst.jsf.test.util.JSFTestUtil;
import org.eclipse.jst.jsf.test.util.WebProjectTestEnvironment;
import org.eclipse.jst.jsp.core.internal.domdocument.DOMModelForJSP;
import org.eclipse.jst.pagedesigner.editors.HTMLEditor;
import org.eclipse.jst.pagedesigner.properties.WPETabbedPropertySheetPage;
import org.eclipse.jst.pagedesigner.tests.PageDesignerTestsPlugin;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PartInitException;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.views.properties.IPropertySheetPage;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
import org.eclipse.wst.sse.core.StructuredModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.w3c.dom.Node;
public class BaseTestCase extends TestCase {
private static final String HTML_EDITOR_ID = "org.eclipse.jst.pagedesigner.PageDesignerEditor";
protected WebProjectTestEnvironment _webProjectTestEnv;
protected WebProjectTestEnvironment _webProjectTestEnv2;
@Override
protected void setUp() throws Exception
{
super.setUp();
JSFTestUtil.setValidationEnabled(false);
_webProjectTestEnv = new WebProjectTestEnvironment(
getClass().getName()+"_" + getName());
_webProjectTestEnv.createProject(false);
assertNotNull(_webProjectTestEnv);
assertNotNull(_webProjectTestEnv.getTestProject());
assertTrue(_webProjectTestEnv.getTestProject().isAccessible());
_webProjectTestEnv.loadResourceInWebRoot(PageDesignerTestsPlugin.getDefault().getBundle()
, "/testdata/propertypages/testPropPages.tld.data"
, "/META-INF/testPropPages.tld");
}
protected IFile getJSPFile(String srcFileName, String destFileName) throws IOException, CoreException {
return getJSPFile(srcFileName, destFileName, _webProjectTestEnv);
}
private IFile getJSPFile(String srcFileName, String destFileName, WebProjectTestEnvironment webProjectTestEnv) throws IOException, CoreException {
return (IFile)webProjectTestEnv.loadResourceInWebRoot(
PageDesignerTestsPlugin.getDefault().getBundle(),
srcFileName, destFileName);
}
protected IFile getJSPFileFromSecondProject(String srcFileName, String destFileName) throws IOException, CoreException {
_webProjectTestEnv2 = new WebProjectTestEnvironment(
getClass().getName()+"_" + getName()+"_2");
_webProjectTestEnv2.createProject(false);
assertNotNull(_webProjectTestEnv2);
assertNotNull(_webProjectTestEnv2.getTestProject());
assertTrue(_webProjectTestEnv2.getTestProject().isAccessible());
_webProjectTestEnv2.loadResourceInWebRoot(PageDesignerTestsPlugin.getDefault().getBundle()
, "/testdata/propertypages/testPropPages.tld.data"
, "/META-INF/testPropPages.tld");
return getJSPFile(srcFileName, destFileName, _webProjectTestEnv2);
}
private ContextWrapper getDocumentContext(IFile jspFile, int offset) throws Exception {
assertTrue(jspFile.exists());
final IModelManager modelManager =
StructuredModelManager.getModelManager();
IStructuredModel model = null;
model = modelManager.getModelForRead(jspFile);
assertTrue(model instanceof DOMModelForJSP);
final IStructuredDocumentContext context =
IStructuredDocumentContextFactory.INSTANCE.getContext(
model.getStructuredDocument(),
offset);
return new ContextWrapper(context, model);
}
protected IStructuredSelection getSelection(Node node){
return new StructuredSelection(node);
}
protected ITabbedPropertySheetPageContributor getTabbedPropertyCont() {
return new ITabbedPropertySheetPageContributor(){
public String getContributorId() {
return HTMLEditor.TABBED_PROPERTIES_CONTRIBUTOR_ID;
}
};
}
protected WPETabbedPropertySheetPage getWPETabbedPropertySheetPage(HTMLEditor ed){
return (WPETabbedPropertySheetPage)ed.getAdapter(IPropertySheetPage.class);
// return new MockWPETabbedPropertySheet(getTabbedPropertyCont(), ed);
}
protected HTMLEditor openHTMLEditor(IFile file) {
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
assertNotNull(workbenchWindow);
IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
try {
IEditorInput input = new FileEditorInput(file);
return (HTMLEditor)workbenchPage.openEditor(input, HTML_EDITOR_ID);
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected IEditorPart openXSDEditor(IFile file) {
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
assertNotNull(workbenchWindow);
IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
try {
IEditorInput input = new FileEditorInput(file);
return workbenchPage.openEditor(input, "org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor");
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
protected IViewPart showPropertiesView() {
IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart view = null;
try {
view = workbenchPage.showView(IPageLayout.ID_PROP_SHEET);
} catch (PartInitException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return view;
}
protected Node getNode(IFile file, int offset) throws Exception {
ContextWrapper wrapper = null;
Node node = null;
try {
wrapper = getDocumentContext(file, offset);
assertNotNull(wrapper);
IStructuredDocumentContext context = wrapper.getContext();
IDOMContextResolver resolver =
IStructuredDocumentContextResolverFactory.INSTANCE.
getDOMContextResolver(context);
node = resolver.getNode();
} finally {
if (wrapper != null)
wrapper.dispose();
}
return node;
}
protected void closeEditor(final IEditorPart ed) {
IWorkbenchPage page = ed.getEditorSite().getPage();
page.closeEditor(ed, false);
}
public static class ContextWrapper
{
private final IStructuredDocumentContext context;
private final IStructuredModel model;
public ContextWrapper(final IStructuredDocumentContext context,
final IStructuredModel model) {
super();
this.context = context;
this.model = model;
}
public IStructuredDocumentContext getContext() {
return context;
}
public IStructuredModel getModel() {
return model;
}
void dispose()
{
model.releaseFromRead();
}
}
// private class LifecycleListener implements ITestTracker {
//
// public void fireEvent(Event event, long seqId, String eventLabel) {
//
//
// }
//
// }
}