blob: 1c0d053a5b5576ce6672a19928a6ab1bf7884a27 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.api;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.part.FileEditorInput;
import org.eclipse.ui.tests.harness.util.EmptyPerspective;
import org.eclipse.ui.tests.harness.util.FileUtil;
import org.eclipse.ui.tests.harness.util.UITestCase;
/**
* SessionCreateTest runs the first half of our session
* presistance tests.
*
*/
public class SessionCreateTest extends UITestCase {
private IWorkbenchWindow[] oldWindows;
public static String TEST_PROJ = "sessionTest";
public static String TEST_FILE_1 = "one.mock1";
public static String TEST_FILE_2 = "two.mock1";
public static String TEST_FILE_3 = "three.mock1";
/**
* Construct an instance.
*/
public SessionCreateTest(String arg) {
super(arg);
}
/**
* Generates a session state in the workbench.
*/
public void testSessionCreation() throws Throwable {
IWorkbenchWindow window;
IWorkbenchPage page;
// Save the original windows. We close all of
// these at the end, after the test windows have
// been created.
saveOriginalWindows();
// Create test window with empty perspective.
window = fWorkbench.openWorkbenchWindow(EmptyPerspective.PERSP_ID, getPageInput());
// Create test window with empty perspective and
// session perspective.
window = fWorkbench.openWorkbenchWindow(EmptyPerspective.PERSP_ID, getPageInput());
page = window.openPage(SessionPerspective.ID, getPageInput());
// Create test window with two session perspectives.
window = fWorkbench.openWorkbenchWindow(SessionPerspective.ID, getPageInput());
page = window.openPage(SessionPerspective.ID, getPageInput());
// Open 3 editors in last page.
IProject proj = FileUtil.createProject(TEST_PROJ);
IFile file = FileUtil.createFile(TEST_FILE_1, proj);
page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
file = FileUtil.createFile(TEST_FILE_2, proj);
page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
file = FileUtil.createFile(TEST_FILE_3, proj);
page.openEditor(new FileEditorInput(file), MockEditorPart.ID1);
// Close the original windows.
closeOriginalWindows();
}
/**
* Saves the original window set.
*/
private void saveOriginalWindows() {
oldWindows = fWorkbench.getWorkbenchWindows();
}
/**
* Closes the original window set.
*/
private void closeOriginalWindows() {
for (int nX = 0; nX < oldWindows.length; nX++) {
oldWindows[nX].close();
}
}
}