package com.windowtester.test.eclipse.locator;
import com.windowtester.runtime.IUIContext;
import com.windowtester.runtime.WaitTimedOutException;
import com.windowtester.runtime.WidgetSearchException;
import com.windowtester.runtime.swt.condition.shell.ShellDisposedCondition;
import com.windowtester.runtime.swt.condition.shell.ShellShowingCondition;
import com.windowtester.runtime.swt.locator.ButtonLocator;
import com.windowtester.runtime.swt.locator.CTabItemLocator;
import com.windowtester.runtime.swt.locator.FilteredTreeItemLocator;
import com.windowtester.runtime.swt.locator.MenuItemLocator;
import com.windowtester.runtime.swt.locator.TreeItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.ContributedToolItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.PullDownMenuItemLocator;
import com.windowtester.runtime.swt.locator.eclipse.ViewLocator;
import com.windowtester.test.eclipse.BaseTest;
import com.windowtester.test.util.TypingLinuxHelper;
/*******************************************************************************
* Copyright (c) 2012 Google, Inc.
* 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:
* Google, Inc. - initial API and implementation
*******************************************************************************/
public class ToolAndViewPullDownMenuSmokeTest extends BaseTest {
private static final String LAYOUT_VERTICAL_VIEW_ORIENTATION = "Layout/Vertical.*";
public void testOpenNewToolItemPullDown() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Navigator").isShowing());
// ui.click(new MenuItemLocator("&Window/Show &View/Navigator"));
ui.click(new PullDownMenuItemLocator("Project...", new ContributedToolItemLocator("newWizardDropDown")));
ui.click(new ButtonLocator("Cancel"));
}
//https://fogbugz.instantiations.com/fogbugz/default.asp?45879
public void testToolItemSelectionAssertion() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Expressions").isShowing());
ui.click(new PullDownMenuItemLocator(LAYOUT_VERTICAL_VIEW_ORIENTATION, new ViewLocator("org.eclipse.debug.ui.ExpressionView")));
ui.assertThat(new PullDownMenuItemLocator(LAYOUT_VERTICAL_VIEW_ORIENTATION, new ViewLocator("org.eclipse.debug.ui.ExpressionView")).isSelected());
}
public void testItemIndexAssertion() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Expressions").isShowing());
ui.assertThat(new PullDownMenuItemLocator("Layout", new ViewLocator("org.eclipse.debug.ui.ExpressionView")).hasIndex(0));
}
public void testToolItemSelectionAssertionFailure() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Expressions").isShowing());
ui.click(new PullDownMenuItemLocator(LAYOUT_VERTICAL_VIEW_ORIENTATION, new ViewLocator("org.eclipse.debug.ui.ExpressionView")));
try{
ui.assertThat(new PullDownMenuItemLocator(LAYOUT_VERTICAL_VIEW_ORIENTATION, new ViewLocator("org.eclipse.debug.ui.ExpressionView")).isSelected(false));
fail("should have thrown a WaitTimedOutException");
} catch(WaitTimedOutException e){
//pass
}
}
public void testToolItemEnablementAssertion() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Breakpoints").isShowing());
// IViewPart activeViewPartNoRetries = ViewFinder.getActiveViewPartNoRetries();
// ui.pause(2000);
ui.assertThat(new PullDownMenuItemLocator("Deselect Default Working Set", new ViewLocator("org.eclipse.debug.ui.BreakpointView")).isEnabled(false));
}
public void testOpenNavigatorViewPullDown() throws Exception {
IUIContext ui = getUI();
ui.ensureThat(ViewLocator.forName("Navigator").isShowing());
// ui.click(new MenuItemLocator("&Window/Show &View/Navigator"));
ui.click(new PullDownMenuItemLocator("Filters...", new ViewLocator("org.eclipse.ui.views.ResourceNavigator")));
ui.wait(new ShellShowingCondition("Navigator Filters"));
ui.click(new ButtonLocator("Cancel"));
ui.wait(new ShellDisposedCondition("Navigator Filters"));
}
/**
* This verifies nested menus.
* TODO: when an attempt is made to record this, the last line is
* <code>ui.click(new MenuItemLocator("Java/Show Constants"));</code>
* instead of the click below.
*
* @see Fogbugz case 41605
*/
public void testOpenVariableViewNestedPullDown() throws WidgetSearchException {
IUIContext ui = getUI();
ui.click(new MenuItemLocator("Window/Show View/Other..."));
ui.wait(new ShellShowingCondition("Show View"));
ui.click(2, new FilteredTreeItemLocator("Debug"));
ui.click(new FilteredTreeItemLocator("Debug/Variables"));
ui.click(new ButtonLocator("OK"));
ui.wait(new ShellDisposedCondition("Show View"));
ui.click(new CTabItemLocator("Variables"));
ui.click(new PullDownMenuItemLocator("Java/Show Constants", new ViewLocator("org.eclipse.debug.ui.VariableView")));
// However, the recorded click is:
//ui.click(new MenuItemLocator("Java/Show Constants"));
}
/**
* This test needs to be revisited -- its contents are the results of a recording
* (which produces a incorrect result).
*/
public void INVALIDtestCreateNewProjectPullDownMenu() throws Exception {
try{
TypingLinuxHelper.switchToInsertStrategyIfNeeded();
IUIContext ui = getUI();
ui.click(new PullDownMenuItemLocator("Project...", new MenuItemLocator("Project...")));
ui.wait(new ShellShowingCondition("New Project"));
ui.click(new TreeItemLocator("Java Project"));
ui.click(new ButtonLocator("&Next >"));
ui.enterText("pd2");
ui.click(new ButtonLocator("&Finish"));
ui.wait(new ShellDisposedCondition("New Java Project"));
}finally{
TypingLinuxHelper.restoreOriginalStrategy();
}
}
}