blob: 8ff71a81767b7406a429e2e4249eff2561b24666 [file] [log] [blame]
package org.eclipse.ui.tests.api;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.core.resources.*;
import org.eclipse.ui.*;
import org.eclipse.ui.IWorkbenchPage;
public abstract class AbstractTestCase extends TestCase {
protected IWorkbench fWorkbench;
private List testWindows;
protected static int DEF_PAGETOTAL = 3, DEF_WINTOTAL = 3;
public AbstractTestCase(String testName) {
super(testName);
fWorkbench = PlatformUI.getWorkbench();
testWindows = new ArrayList(DEF_WINTOTAL);
}
/**
* Tear down. May be overridden.
*/
public void tearDown() {
cleanUp();
}
/**
* Cleanup after the test.
*/
public void cleanUp() {
closeAllTestWindows();
}
/**
* Open a test window.
*/
public IWorkbenchWindow openTestWindow() {
try {
IWorkbenchWindow win =
fWorkbench.openWorkbenchWindow(
EmptyPerspective.PERSP_ID,
ResourcesPlugin.getWorkspace());
testWindows.add(win);
return win;
} catch (WorkbenchException e) {
fail();
return null;
}
}
/**
* Close all test windows.
*/
public void closeAllTestWindows() {
Iterator iter = testWindows.iterator();
IWorkbenchWindow win;
while (iter.hasNext()) {
win = (IWorkbenchWindow) iter.next();
win.close();
}
testWindows.clear();
}
public IWorkbenchPage openTestPage(IWorkbenchWindow win)
{
IWorkbenchPage[] pages = openTestPage(win, 1);
if( pages != null )
return pages[0];
else
return null;
}
/**
* opens test pages in an existing Workbench window
*/
public IWorkbenchPage[] openTestPage(IWorkbenchWindow win, int pageTotal) {
try{
IWorkbenchPage[] pages = new IWorkbenchPage[pageTotal];
IWorkspace work = ResourcesPlugin.getWorkspace();
for (int i = 0; i < pageTotal; i++)
pages[i] = win.openPage(EmptyPerspective.PERSP_ID, work);
return pages;
}
catch( WorkbenchException e )
{
fail();
return null;
}
}
/**
* @param window a TestWindow
*/
public void closeAllPages(IWorkbenchWindow window) {
IWorkbenchPage[] pages = window.getPages();
for (int i = 0; i < pages.length; i++)
pages[i].close();
}
}