package com.windowtester.test.gef.tests.smoke; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Tree; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.WidgetSearchException; import com.windowtester.runtime.internal.concurrent.VoidCallable; import com.windowtester.runtime.locator.IWidgetLocator; import com.windowtester.runtime.locator.IWidgetReference; import com.windowtester.runtime.swt.condition.shell.ShellDisposedCondition; import com.windowtester.runtime.swt.condition.shell.ShellShowingCondition; import com.windowtester.runtime.swt.internal.widgets.DisplayReference; import com.windowtester.runtime.swt.locator.ButtonLocator; import com.windowtester.runtime.swt.locator.ComboItemLocator; import com.windowtester.runtime.swt.locator.MenuItemLocator; import com.windowtester.runtime.swt.locator.SWTWidgetLocator; import com.windowtester.runtime.swt.locator.TreeItemLocator; import com.windowtester.runtime.swt.locator.eclipse.EclipseLocators; import com.windowtester.runtime.swt.locator.eclipse.ViewLocator; import com.windowtester.test.eclipse.BaseTest; /** * Repro for: http://fogbugz.instantiations.com//default.php?32726 * * NOTE [12/28/2009 pq]: Intermittent failures being tracked here: https://fogbugz.instantiations.com/default.php?44684 * * <p> * Copyright (c) 2007, Instantiations, Inc.<br> * All Rights Reserved * * @author Phil Quitslund * */ public class LogicComboMagnifyTest extends BaseTest { //NOTE: in his test this is: "GEF (Graphical Editing Framework)/Logic Diagram" private static final String LOGIC_DIAGRAM_EXAMPLE_PATH = "GEF Team Examples/Logic Diagram"; @Override protected void setUp() throws Exception { super.setUp(); getUI().ensureThat(EclipseLocators.view("Package Explorer").isShowing()); // getUI().wait(TimeElapsedCondition.seconds(3)); } public void testBroken_Combo() throws Exception { IUIContext ui = getUI(); ui.contextClick(new SWTWidgetLocator(Tree.class, new ViewLocator("org.eclipse.jdt.ui.PackageExplorer")), "Ne&w/P&roject..."); ui.wait(new ShellShowingCondition("New Project")); ui.click(new TreeItemLocator("General/Project")); ui.click(new ButtonLocator("&Next >")); ui.enterText("stuff"); ui.click(new ButtonLocator("&Finish")); ui.wait(new ShellDisposedCondition("Progress Information")); ui.wait(new ShellDisposedCondition("New Project")); ui.click(new MenuItemLocator("File/New/Example...")); ui.wait(new ShellShowingCondition("New Example")); ui.click(new TreeItemLocator(LOGIC_DIAGRAM_EXAMPLE_PATH)); ui.click(new ButtonLocator("&Next >")); ui.click(new ButtonLocator("&Finish")); ui.wait(new ShellDisposedCondition("Progress Information")); comboClick(ui, "75%"); comboClick(ui, "150%"); comboClick(ui, "200%"); comboClick(ui, "300%"); comboClick(ui, "50%"); } private void comboClick(IUIContext ui, String item) throws WidgetSearchException { // ui.pause(2000); // new WidgetPrinter().print(); // System.out.println("---------------------------------------"); // new DebugHelper().printWidgets(); // fail(); IWidgetLocator clicked = ui.click(new ComboItemLocator(item)); Combo combo = (Combo) ((IWidgetReference)clicked).getWidget(); assertEquals(item, getText(combo)); } private String getText(final Combo combo) { final String [] text = new String[1]; DisplayReference.getDefault().execute(new VoidCallable() { public void call() throws Exception { text[0] = combo.getText(); } }); return text[0]; } }