blob: 3a3076ffd5e0a40eeea5a284739018ef696882eb [file] [log] [blame]
///*******************************************************************************
// * Copyright (c) 2000, 2006 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.multipageeditor;
//
//import java.io.ByteArrayInputStream;
//import java.util.Collection;
//
//import org.eclipse.core.resources.IFile;
//import org.eclipse.core.resources.IProject;
//import org.eclipse.core.resources.IWorkspace;
//import org.eclipse.core.resources.ResourcesPlugin;
//import org.eclipse.core.runtime.CoreException;
//import org.eclipse.jface.text.TextSelection;
//import org.eclipse.jface.viewers.IPostSelectionProvider;
//import org.eclipse.jface.viewers.ISelection;
//import org.eclipse.jface.viewers.ISelectionChangedListener;
//import org.eclipse.jface.viewers.ISelectionProvider;
//import org.eclipse.jface.viewers.SelectionChangedEvent;
//import org.eclipse.swt.widgets.Control;
//import org.eclipse.ui.IEditorPart;
//import org.eclipse.ui.IWorkbenchPage;
//import org.eclipse.ui.PartInitException;
//import org.eclipse.ui.contexts.IContextService;
//import org.eclipse.ui.ide.IDE;
//import org.eclipse.ui.tests.harness.util.UITestCase;
//
///**
// * <p>
// * Test that the MultiPageEditorPart is acting on events and changes. These
// * tests are for making sure that selection events and page change events are
// * handled.
// * </p>
// * <p>
// * It also checks for changing Contexts.
// * </p>
// *
// * @since 3.2
// */
//public class MultiVariablePageTest extends UITestCase {
//
// private static final String FILE_CONTENTS = "#section01\nsection 1\n#section02\nsection 2\nwith info\n#section03\nLast page\n";
//
// private static final String MTEST01_FILE = "mtest01.multivar";
//
// private static final String MULTI_VARIABLE_PROJ = "MultiVariableTest";
//
// private int fPostCalled;
//
// public MultiVariablePageTest(String testName) {
// super(testName);
// }
//
// /**
// * Make sure that setting the active page programmatically calls
// * pageChanged(int) on the way. This method is overridden in a lot of
// * editors to provide their functionality on page changes.
// *
// * @throws Throwable
// */
// public void testSetActivePage() throws Throwable {
// // Open a new test window.
// // Create and open a blurb file.
// IEditorPart part = openMultivarFile();
//
// MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
//
// editor.setPage(1);
// ISelection selection = editor.getEditorSite().getSelectionProvider()
// .getSelection();
// TextSelection text = (TextSelection) selection;
// // when we change to the second page, the selection should be
// // updated.
// assertEquals("#section02", text.getText());
//
// editor.setPage(0);
// selection = editor.getEditorSite().getSelectionProvider()
// .getSelection();
// text = (TextSelection) selection;
// // when we change back to the first page, the selection should be
// // updated.
// assertEquals("#section01", text.getText());
// }
//
// /**
// * Make sure that removing a page that is a Control (instead of an editor)
// * disposes of the Control immediately.
// *
// * @throws Throwable
// */
// public void testRemovePage() throws Throwable {
// // Open a new test window.
// // Create and open a blurb file.
// IEditorPart part = openMultivarFile();
//
// MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
// editor.addLastPage();
// Control c = editor.getLastPage();
// assertFalse(c.isDisposed());
// editor.removeLastPage();
// assertTrue(c.isDisposed());
//
// c = editor.getTestControl(2);
// assertFalse(c.isDisposed());
// editor.removeLastPage();
// assertTrue(c.isDisposed());
// editor.setPage(0);
// editor.getSite().getPage().activate(editor);
// }
//
// /**
// * Now the MPEP site's selection provider should by default support post
// * selection listeners. Since the MVPE is based on Text editors, we should
// * be getting the post selection events when we change pages.
// *
// * @throws Throwable
// * on error cases
// */
// public void testPostSelection() throws Throwable {
// // Open a new test window.
// // Create and open a blurb file.
// IEditorPart part = openMultivarFile();
//
// MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
// ISelectionProvider sp = editor.getEditorSite().getSelectionProvider();
// assertTrue(sp instanceof IPostSelectionProvider);
//
// IPostSelectionProvider postProvider = (IPostSelectionProvider) sp;
//
// fPostCalled = 0;
// ISelectionChangedListener listener = new ISelectionChangedListener() {
// public void selectionChanged(SelectionChangedEvent event) {
// ++fPostCalled;
// }
// };
//
// try {
// postProvider.addPostSelectionChangedListener(listener);
// editor.setPage(1);
// assertEquals(1, fPostCalled);
// editor.setPage(0);
// assertEquals(2, fPostCalled);
// } finally {
// postProvider.removePostSelectionChangedListener(listener);
// }
// }
//
// private IEditorPart openMultivarFile() throws CoreException,
// PartInitException {
// IWorkbenchPage page = openTestWindow().getActivePage();
// IWorkspace workspace = ResourcesPlugin.getWorkspace();
// IProject testProject = workspace.getRoot().getProject(
// MULTI_VARIABLE_PROJ);
// if (!testProject.exists()) {
// testProject.create(null);
// }
// testProject.open(null);
// IFile multiFile = testProject.getFile(MTEST01_FILE);
// if (!multiFile.exists()) {
// multiFile.create(
// new ByteArrayInputStream(FILE_CONTENTS.getBytes()), true,
// null);
// }
//
// // I can't be bothered to use the ID, but this editor has an
// // extention registered against it.
// IEditorPart part = IDE.openEditor(page, multiFile);
// assertTrue("Should have opened our multi variable page editor",
// part instanceof MultiVariablePageEditor);
// return part;
// }
//
// /**
// * Make sure that contexts are activated-deactivated by pages changes and
// * other editors.
// *
// * @throws Throwable
// * on error
// */
// public void testContextActivation() throws Throwable {
// IContextService globalService = (IContextService) getWorkbench()
// .getService(IContextService.class);
//
// // Open a new test window.
// // Create and open a blurb file.
// IEditorPart part = openMultivarFile();
//
// MultiVariablePageEditor editor = (MultiVariablePageEditor) part;
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
// checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
// true);
//
// editor.setPage(1);
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
// checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
// true);
//
// editor.setPage(2);
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, true);
// checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
// true);
//
// editor.setPage(1);
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
// checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
// true);
//
// editor.setPage(2);
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, true);
// editor.removeLastPage();
// checkActiveContext(globalService, ContextTextEditor.CONTEXT_ID, false);
// checkActiveContext(globalService, ContextTextEditor.TEXT_CONTEXT_ID,
// true);
// }
//
// /**
// * Assert if the contextId is active in the contextService.
// *
// * @param contextService
// * @param contextId
// * @param isActive
// */
// private void checkActiveContext(IContextService contextService,
// String contextId, boolean isActive) {
// Collection activeContexts = contextService.getActiveContextIds();
// assertEquals(contextId, isActive, activeContexts.contains(contextId));
// }
//}