blob: 180345edd14a01f4e09eaa2258c5b02a8c12d3bf [file] [log] [blame]
package org.eclipse.ui.tests.api;
import org.eclipse.ui.*;
/**
* Tests the site for an IWorkbenchPart.
*/
public abstract class IWorkbenchPartSiteTest extends AbstractTestCase {
protected IWorkbenchWindow fWindow;
protected IWorkbenchPage fPage;
/**
* Constructor for IWorkbenchPartSiteTest
*/
public IWorkbenchPartSiteTest(String testName) {
super(testName);
}
public void setUp() {
fWindow = openTestWindow();
fPage = fWindow.getActivePage();
}
public void testGetId() throws Throwable {
// From Javadoc: "Returns the part registry extension id for
// this workbench site's part."
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(getTestPartId(), site.getId());
}
public void testGetPage() throws Throwable {
// From Javadoc: "Returns the page containing this workbench
// site's part."
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(fPage, site.getPage());
}
public void testGetPluginId() throws Throwable {
// From Javadoc: "Returns the unique identifier of the
// plug-in that defines this workbench site's part."
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(getTestPartPluginId(), site.getPluginId());
}
public void testGetRegisteredName() throws Throwable {
// From Javadoc: "Returns the registered name for this
// workbench site's part."
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(getTestPartName(), site.getRegisteredName());
}
public void testGetShell() throws Throwable {
// From Javadoc: "Returns the shell containing this
// workbench site's part"
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(fWindow.getShell(), site.getShell());
}
public void testGetWorkbenchWindow() throws Throwable {
// From Javadoc: "Returns the workbench window
// containing this workbench site's part."
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assertEquals(fWindow, site.getWorkbenchWindow());
}
public void testGetSelectionProvider() throws Throwable {
// From Javadoc: "'Get' returns the selection provider
// for this workbench site's part.
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
assert(part instanceof MockWorkbenchPart);
MockWorkbenchPart mock = (MockWorkbenchPart)part;
assertEquals(mock.getSelectionProvider(), site.getSelectionProvider());
}
public void testSetSelectionProvider() throws Throwable {
// From Javadoc: 'Set' sets the selection provider.
// Set selection provider to null.
IWorkbenchPart part = createTestPart(fPage);
IWorkbenchPartSite site = part.getSite();
site.setSelectionProvider(null);
assertNull(site.getSelectionProvider());
// Set selection provider to real.
MockSelectionProvider provider = new MockSelectionProvider();
site.setSelectionProvider(provider);
assertEquals(provider, site.getSelectionProvider());
}
/**
* Creates a test part in the page.
*/
abstract protected IWorkbenchPart createTestPart(IWorkbenchPage page)
throws Throwable;
/**
* Returns the expected id for a test part.
*/
abstract protected String getTestPartId() throws Throwable;
/**
* Returns the expected name for a test part.
*/
abstract protected String getTestPartName() throws Throwable;
/**
* Returns the expected id for a test part plugin. Subclasses may
* override this.
*/
protected String getTestPartPluginId() throws Throwable {
return "org.eclipse.ui.tests";
}
}