blob: 898fc92b2000b249876a222b4fc0b49dde477a7e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2008 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.views.properties.tabbed;
import junit.framework.TestCase;
import org.eclipse.jface.text.IDocument;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IViewPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsLabelSection;
import org.eclipse.ui.tests.views.properties.tabbed.text.TextTestsView;
import org.eclipse.ui.tests.views.properties.tabbed.views.TestsPerspective;
import org.eclipse.ui.views.properties.tabbed.ISection;
import org.eclipse.ui.views.properties.tabbed.ITabDescriptor;
import org.eclipse.ui.views.properties.tabbed.TabContents;
/**
* Tests for the text tests view.
*
* @author Anthony Hunter
* @since 3.4
*/
public class TabbedPropertySheetPageTextTest extends TestCase {
private TextTestsView textTestsView;
protected void setUp() throws Exception {
super.setUp();
/**
* Close the existing perspectives.
*/
IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
.getActiveWorkbenchWindow();
assertNotNull(workbenchWindow);
IWorkbenchPage workbenchPage = workbenchWindow.getActivePage();
assertNotNull(workbenchPage);
workbenchPage.closeAllPerspectives(false, false);
/**
* Open the tests perspective.
*/
PlatformUI.getWorkbench().showPerspective(
TestsPerspective.TESTS_PERSPECTIVE_ID, workbenchWindow);
/**
* Open the dynamic tests view.
*/
IViewPart view = workbenchPage
.showView(TextTestsView.TEXT_TESTS_VIEW_ID);
assertNotNull(view);
assertTrue(view instanceof TextTestsView);
textTestsView = (TextTestsView) view;
}
protected void tearDown() throws Exception {
super.tearDown();
/**
* Bug 175070: Make sure the views have finished painting.
*/
while (Display.getCurrent().readAndDispatch()) {
//
}
}
/**
* When text is selected, there is one tab for each selected word.
*/
public void test_tabForSelectedTextDisplay() {
IDocument document = textTestsView.getViewer().getDocument();
document.set("This is a test");
textTestsView.getViewer().setSelectedRange(0, 14);
ITabDescriptor[] tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
/**
* First tab is "This"
*/
assertEquals("This", tabDescriptors[0].getLabel());//$NON-NLS-1$
/**
* Second tab is "is"
*/
assertEquals("is", tabDescriptors[1].getLabel());//$NON-NLS-1$
/**
* Third tab is "a"
*/
assertEquals("a", tabDescriptors[2].getLabel());//$NON-NLS-1$
/**
* Third tab is "test"
*/
assertEquals("test", tabDescriptors[3].getLabel());//$NON-NLS-1$
/**
* No fifth tab
*/
assertEquals(4, tabDescriptors.length);
}
/**
* Test changing the selected tab through API (Bug 119085).
*/
public void test_tabSelectedTab() {
IDocument document = textTestsView.getViewer().getDocument();
document.set("The fifth tab is selected");
textTestsView.getViewer().setSelectedRange(0, 26);
ITabDescriptor[] tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
/**
* First tab is "the" and is selected.
*/
assertEquals("The", tabDescriptors[0].getLabel());//$NON-NLS-1$
assertEquals("The", textTestsView.getTabbedPropertySheetPage()
.getSelectedTab().getLabel());
/**
* Fifth tab is "selected"
*/
assertEquals("selected", tabDescriptors[4].getLabel());//$NON-NLS-1$
/**
* Set the new selected tab.
*/
textTestsView.getTabbedPropertySheetPage().setSelectedTab(tabDescriptors[4].getId());
tabDescriptors = textTestsView.getTabbedPropertySheetPage().getActiveTabs();
/**
* First tab is "the"
*/
assertEquals("The", tabDescriptors[0].getLabel());//$NON-NLS-1$
/**
* Fifth tab is "selected" and is selected.
*/
assertEquals("selected", tabDescriptors[4].getLabel());//$NON-NLS-1$
assertEquals("selected", textTestsView.getTabbedPropertySheetPage()
.getSelectedTab().getLabel());
}
/**
* This test makes sure that the list of sections has only one section. The
* TextTestsTabDescriptor returns two sections and one section is always
* filtered (Bug 245690).
*/
public void test_listOfSections() {
IDocument document = textTestsView.getViewer().getDocument();
document.set("This is a test");
textTestsView.getViewer().setSelectedRange(0, 14);
/**
* each tab has one section.
*/
TabContents tabContents = textTestsView.getTabbedPropertySheetPage().getCurrentTab();
ISection[] sections = tabContents.getSections();
assertEquals(1, sections.length);
assertEquals(TextTestsLabelSection.class, sections[0].getClass());
}
}