| /******************************************************************************* |
| * Copyright (c) 2000, 2016 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.stress; |
| |
| import java.util.HashMap; |
| |
| import org.eclipse.core.commands.Command; |
| import org.eclipse.core.commands.ExecutionException; |
| import org.eclipse.core.commands.NotEnabledException; |
| import org.eclipse.core.commands.NotHandledException; |
| import org.eclipse.core.commands.ParameterizedCommand; |
| import org.eclipse.core.commands.common.NotDefinedException; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.resources.ResourcesPlugin; |
| import org.eclipse.ui.IEditorInput; |
| import org.eclipse.ui.IEditorPart; |
| import org.eclipse.ui.IViewPart; |
| import org.eclipse.ui.IWorkbenchCommandConstants; |
| import org.eclipse.ui.IWorkbenchPage; |
| import org.eclipse.ui.IWorkbenchWindow; |
| import org.eclipse.ui.PlatformUI; |
| import org.eclipse.ui.WorkbenchException; |
| import org.eclipse.ui.commands.ICommandService; |
| import org.eclipse.ui.handlers.IHandlerService; |
| import org.eclipse.ui.internal.WorkbenchWindow; |
| import org.eclipse.ui.intro.IIntroPart; |
| import org.eclipse.ui.part.FileEditorInput; |
| import org.eclipse.ui.tests.harness.util.FileUtil; |
| import org.eclipse.ui.tests.harness.util.UITestCase; |
| |
| /** |
| * Test opening and closing of items. |
| */ |
| public class OpenCloseTest extends UITestCase { |
| /** |
| * |
| */ |
| private static final String ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE = "org.eclipse.jdt.ui.JavaPerspective"; |
| |
| private static int index; |
| |
| private static final int numIterations = 10; |
| |
| private WorkbenchWindow workbenchWindow; |
| |
| /** |
| * Constructor. |
| * |
| * @param testName |
| * Test's name. |
| */ |
| public OpenCloseTest(String testName) { |
| super(testName); |
| workbenchWindow = (WorkbenchWindow) PlatformUI.getWorkbench().getActiveWorkbenchWindow(); |
| } |
| |
| /** |
| * Test the opening and closing of a file. |
| * |
| */ |
| public void testOpenCloseFile() { |
| IWorkbenchPage page = workbenchWindow.getActivePage(); |
| try { |
| FileUtil.createProject("TestProject"); |
| IProject testProject = ResourcesPlugin.getWorkspace().getRoot().getProject("TestProject"); //$NON-NLS-1$ |
| FileUtil.createFile("tempFile.txt", testProject); |
| testProject.open(null); |
| IEditorInput editorInput = new FileEditorInput(testProject.getFile("tempFile.txt")); |
| IEditorPart editorPart = null; |
| for (index = 0; index < numIterations; index++) { |
| editorPart = page.openEditor(editorInput, "org.eclipse.ui.DefaultTextEditor"); //$NON-NLS-1$ |
| page.closeEditor(editorPart, false); |
| } |
| FileUtil.deleteProject(testProject); |
| } catch (Exception e) { |
| e.printStackTrace(System.err); |
| } |
| } |
| |
| /** |
| * Test opening and closing of workbench window. |
| * |
| */ |
| public void testOpenCloseWorkbenchWindow() { |
| IWorkbenchWindow secondWorkbenchWindow = null; |
| try { |
| for (index = 0; index < numIterations; index++) { |
| secondWorkbenchWindow = PlatformUI.getWorkbench().openWorkbenchWindow(getPageInput()); |
| secondWorkbenchWindow.close(); |
| } |
| } catch (WorkbenchException e) { |
| e.printStackTrace(System.err); |
| } |
| } |
| |
| /** |
| * Test open and close of perspective. |
| * |
| */ |
| public void testOpenClosePerspective() { |
| ICommandService commandService = fWorkbench.getService(ICommandService.class); |
| Command command = commandService.getCommand("org.eclipse.ui.window.closePerspective"); |
| |
| HashMap parameters = new HashMap(); |
| parameters.put(IWorkbenchCommandConstants.WINDOW_CLOSE_PERSPECTIVE_PARM_ID, |
| ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE); |
| |
| ParameterizedCommand pCommand = ParameterizedCommand.generateCommand(command, parameters); |
| |
| IHandlerService handlerService = workbenchWindow.getService(IHandlerService.class); |
| |
| for (index = 0; index < numIterations; index++) { |
| try { |
| PlatformUI.getWorkbench().showPerspective(ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE, workbenchWindow); |
| try { |
| handlerService.executeCommand(pCommand, null); |
| } catch (ExecutionException e1) { |
| } catch (NotDefinedException e1) { |
| } catch (NotEnabledException e1) { |
| } catch (NotHandledException e1) { |
| } |
| } catch (WorkbenchException e) { |
| e.printStackTrace(); |
| } |
| } |
| } |
| |
| /** |
| * Test open and close of view. |
| * |
| */ |
| public void testOpenCloseView() { |
| IViewPart consoleView = null; |
| try { |
| IWorkbenchPage page = PlatformUI.getWorkbench().showPerspective(ORG_ECLIPSE_JDT_UI_JAVA_PERSPECTIVE, |
| workbenchWindow); |
| for (index = 0; index < numIterations; index++) { |
| consoleView = page.showView("org.eclipse.ui.views.ResourceNavigator"); |
| page.hideView(consoleView); |
| } |
| } catch (WorkbenchException e) { |
| e.printStackTrace(); |
| } |
| } |
| |
| /** |
| * Test open and close intro. |
| * |
| */ |
| public void testOpenCloseIntro() { |
| IIntroPart introPart = null; |
| for (index = 0; index < numIterations; index++) { |
| introPart = PlatformUI.getWorkbench().getIntroManager().showIntro(workbenchWindow, false); |
| PlatformUI.getWorkbench().getIntroManager().closeIntro(introPart); |
| } |
| } |
| } |