diff options
Diffstat (limited to 'org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets')
41 files changed, 800 insertions, 451 deletions
diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/AbstractSWTBotTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/AbstractSWTBotTest.java index 1ca615a9..8b95aaf2 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/AbstractSWTBotTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/AbstractSWTBotTest.java @@ -15,9 +15,9 @@ import static org.junit.Assert.fail; import org.eclipse.swt.widgets.Shell; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; import org.eclipse.swtbot.swt.finder.results.WidgetResult; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; import org.junit.Test; /** @@ -25,7 +25,7 @@ import org.junit.Test; * @version $Id$ */ @SuppressWarnings("all") -public class AbstractSWTBotTest extends AbstractSWTTestCase { +public class AbstractSWTBotTest extends AbstractControlExampleTest { @Test public void throwsExceptionOnNullObjectPassedIntoConstructor() throws Exception { diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotArrowButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotArrowButtonTest.java new file mode 100644 index 00000000..87a7ad15 --- /dev/null +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotArrowButtonTest.java @@ -0,0 +1,80 @@ +/******************************************************************************* + * Copyright (c) 2008,2010 Ketan Padegaonkar 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: + * Ketan Padegaonkar - initial API and implementation + *******************************************************************************/ +package org.eclipse.swtbot.swt.finder.widgets; + +import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertTextContains; +import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType; +import static org.eclipse.swtbot.swt.finder.utils.SWTUtils.hasStyle; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Button; +import org.eclipse.swt.widgets.Text; +import org.eclipse.swtbot.swt.finder.finders.ControlFinder; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +/** + * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> + * @version $Id$ + */ +public class SWTBotArrowButtonTest extends AbstractControlExampleTest { + + private long oldTimeout; + + @Before + public void lowerTimeout() { + this.oldTimeout = SWTBotPreferences.TIMEOUT; + SWTBotPreferences.TIMEOUT = 2000; + } + + @After + public void resetTimeout() { + SWTBotPreferences.TIMEOUT = oldTimeout; + } + + @Test + public void findsArrowButtons() throws Exception { + assertEquals(Button.class, bot.arrowButton(0).widget.getClass()); + assertTrue(hasStyle(bot.arrowButton(0).widget, SWT.ARROW)); + } + + @Test + public void clicksArrowButton() throws Exception { + try { + List<Text> findControls = new ControlFinder().findControls(widgetOfType(Text.class)); + SWTBotText text = new SWTBotText(findControls.get(0)); + text.setText(""); + assertFalse(bot.checkBox("Listen").isChecked()); + bot.checkBox("Listen").click(); + assertTrue(bot.checkBox("Listen").isChecked()); + bot.arrowButton(0).click(); + assertTextContains("Selection [13]: SelectionEvent{Button {}", text); + } finally { + bot.checkBox("Listen").click(); + bot.button("Clear").click(); + } + } + + @Before + public void prepareExample() throws Exception { + bot.tabItem("Button").activate(); + bot.radio("SWT.ARROW").click(); + } + +} diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotBrowserTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotBrowserTest.java new file mode 100644 index 00000000..6a45b3d0 --- /dev/null +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotBrowserTest.java @@ -0,0 +1,78 @@ +/******************************************************************************* + * Copyright (c) 2010 Red Hat, Inc. 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: + * Libor Zoubek, Red Hat - initial API and implementation + * Ketan Padegaonkar - cleanup to conform to SWTBot standards + *******************************************************************************/ +package org.eclipse.swtbot.swt.finder.widgets; + +import static org.eclipse.swtbot.swt.finder.SWTBotAssert.assertContains; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import org.eclipse.swtbot.swt.finder.test.AbstractBrowserExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.Ignore; +import org.junit.Test; + +/** + * @author Libor Zoubek <lzoubek [at] redhat [dot] com> + */ +@Ignore +public class SWTBotBrowserTest extends AbstractBrowserExampleTest { + + @Test + public void findBrowser() throws Exception { + SWTBotBrowser browser = bot.browser(); + assertNotNull(browser); + } + + @Test + public void navigation() throws Exception { + SWTBotBrowser browser = bot.browser(); + assertNotNull(browser); + assertFalse(browser.isBackEnabled()); + assertFalse(browser.isForwardEnabled()); + browser.setUrl("http://www.eclipse.org"); + assertContains("Eclipse", browser.getText()); + browser.setUrl("http://www.eclipse.org/swtbot/"); + assertContains("swtbot", browser.getUrl()); + assertTrue(browser.isBackEnabled()); + assertFalse(browser.isForwardEnabled()); + browser.back(); + assertContains("eclipse", browser.getUrl()); + assertTrue(browser.isForwardEnabled()); + assertFalse(browser.isBackEnabled()); + } + + @Test(expected = TimeoutException.class) + public void smallTimeout() throws Exception { + long oldTimeout = SWTBotPreferences.TIMEOUT; + try { + SWTBotPreferences.TIMEOUT = 10; + SWTBotBrowser browser = bot.browser(); + assertNotNull(browser); + browser.setUrl("http://www.eclipse.org"); + assertContains("Eclipse", browser.getText()); + } finally { + SWTBotPreferences.TIMEOUT = oldTimeout; + } + } + + @Test + public void executeJavaScript() throws Exception { + SWTBotBrowser browser = bot.browser(); + assertNotNull(browser); + browser.setUrl("http://www.eclipse.org"); + assertContains("Eclipse", browser.getText()); + browser.execute("document.getElementsByTagName('body')[0].innerHTML='<p>JavaScript works</p>';"); + assertContains("JavaScript works", browser.getText()); + } + +} diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotButtonTest.java index 2435bae8..0ee6f5a0 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotButtonTest.java @@ -13,17 +13,15 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotButtonTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotButtonTest extends AbstractControlExampleTest { @Test public void findsButtons() throws Exception { @@ -56,10 +54,10 @@ public class SWTBotButtonTest extends AbstractSWTTestCase { assertNotNull(bot.button("One").foregroundColor()); } + @Before public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); bot.tabItem("Button").activate(); + bot.radio("SWT.PUSH").click(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCComboTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCComboTest.java index 242364da..8d133647 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCComboTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCComboTest.java @@ -16,18 +16,15 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import org.eclipse.swt.widgets.Combo; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractCustomControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Cedric Chabanois <cchabanois [at] no-log [dot] org> * @version $Id$ */ -public class SWTBotCComboTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotCComboTest extends AbstractCustomControlExampleTest { @Test public void findCCombo() throws Exception { @@ -108,16 +105,11 @@ public class SWTBotCComboTest extends AbstractSWTTestCase { assertEquals(Combo.LIMIT, ccombo.textLimit()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("CCombo").activate(); bot.checkBox("SWT.FLAT").deselect(); bot.checkBox("SWT.READ_ONLY").deselect(); } - protected Shell getFocusShell() { - return customControlShell; - } - } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCLabelTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCLabelTest.java index ccc803fa..fce41a9a 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCLabelTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCLabelTest.java @@ -14,18 +14,15 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractCustomControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotCLabelTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotCLabelTest extends AbstractCustomControlExampleTest { @Test public void findsCLabel() throws Exception { @@ -51,14 +48,9 @@ public class SWTBotCLabelTest extends AbstractSWTTestCase { assertNotNull(bot.clabel("One").image()); } + @Before public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); bot.tabItem("CLabel").activate(); } - protected Shell getFocusShell() { - return customControlShell; - } - } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCTabItemTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCTabItemTest.java index fa561bf6..e74d516b 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCTabItemTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCTabItemTest.java @@ -13,8 +13,7 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotAssert.pass; import static org.junit.Assert.fail; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractCustomControlExampleTest; import org.junit.Before; import org.junit.Test; @@ -22,11 +21,10 @@ import org.junit.Test; * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotCTabItemTest extends AbstractSWTTestCase { +public class SWTBotCTabItemTest extends AbstractCustomControlExampleTest { @Before - public void setUp() throws Exception { - super.setUp(); + public void prepareExample() throws Exception { bot.tabItem("CTabFolder").activate(); bot.checkBox("SWT.CLOSE").deselect(); bot.checkBox("SWT.CLOSE").select(); @@ -51,8 +49,4 @@ public class SWTBotCTabItemTest extends AbstractSWTTestCase { } } - protected Shell getFocusShell() { - return customControlShell; - } - } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCheckBoxTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCheckBoxTest.java index 0bf230e0..67ae9dec 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCheckBoxTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotCheckBoxTest.java @@ -21,19 +21,33 @@ import static org.junit.Assert.fail; import java.util.List; import org.eclipse.swt.widgets.Text; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.ControlFinder; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotCheckBoxTest extends AbstractSWTTestCase { +public class SWTBotCheckBoxTest extends AbstractControlExampleTest { - private SWTBot bot; + + private long oldTimeout; + + @Before + public void lowerTimeout() { + this.oldTimeout = SWTBotPreferences.TIMEOUT; + SWTBotPreferences.TIMEOUT = 2000; + } + + @After + public void resetTimeout() { + SWTBotPreferences.TIMEOUT = oldTimeout; + } @Test public void clicksCheckBox() throws Exception { @@ -84,10 +98,9 @@ public class SWTBotCheckBoxTest extends AbstractSWTTestCase { pass(); } } - - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + + @Before + public void prepareExample() throws Exception { bot.tabItem("Button").activate(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotComboTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotComboTest.java index 607ac82c..49515ed7 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotComboTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotComboTest.java @@ -4,13 +4,14 @@ * 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: * Ketan Padegaonkar - initial API and implementation * Cédric Chabanois - http://swtbot.org/bugzilla/show_bug.cgi?id=17 *******************************************************************************/ package org.eclipse.swtbot.swt.finder.widgets; +import static org.eclipse.swtbot.swt.finder.utils.SWTUtils.isCocoa; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -19,17 +20,15 @@ import static org.junit.Assert.fail; import java.util.Arrays; import java.util.List; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotComboTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotComboTest extends AbstractControlExampleTest { @Test public void findsCombo() throws Exception { @@ -96,6 +95,27 @@ public class SWTBotComboTest extends AbstractSWTTestCase { } @Test + public void typeAndVerifiesTextInCombo() throws Exception { + bot.checkBox("SWT.READ_ONLY").deselect(); + + bot.checkBox("Listen").select(); + bot.button("Clear").click(); + + SWTBotCombo comboBox = bot.comboBoxInGroup("Combo"); + comboBox.setText(""); + comboBox.typeText("New typed Text"); + assertEquals("New typed Text", comboBox.getText()); + + if (!isCocoa()) + assertEventMatches(bot.textInGroup("Listeners"), "KeyDown [1]: KeyEvent{Combo {} time=490981104 data=null character='\\0' keyCode=131072 stateMask=0 doit=true}"); + assertEventMatches(bot.textInGroup("Listeners"), "KeyDown [1]: KeyEvent{Combo {} time=490981272 data=null character='N' keyCode=110 stateMask=131072 doit=true}"); + assertEventMatches(bot.textInGroup("Listeners"), "Verify [25]: VerifyEvent{Combo {} time=490981272 data=null character='N' keyCode=110 stateMask=131072 doit=true start=0 end=0 text=N}"); + assertEventMatches(bot.textInGroup("Listeners"), "KeyUp [2]: KeyEvent{Combo {N} time=490981352 data=null character='N' keyCode=110 stateMask=131072 doit=true}"); + if (!isCocoa()) + assertEventMatches(bot.textInGroup("Listeners"), "KeyUp [2]: KeyEvent{Combo {N} time=490981457 data=null character='\\0' keyCode=131072 stateMask=131072 doit=true}"); + } + + @Test public void throwsExceptionInCaseOfChangeTextOfReadOnlyCombo() throws Exception { bot.checkBox("SWT.READ_ONLY").select(); SWTBotCombo comboBox = bot.comboBoxInGroup("Combo"); @@ -109,9 +129,8 @@ public class SWTBotComboTest extends AbstractSWTTestCase { } } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Combo").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotDateTimeTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotDateTimeTest.java index 1ec96773..b865ae83 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotDateTimeTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotDateTimeTest.java @@ -20,17 +20,16 @@ import java.util.Calendar; import java.util.Date; import org.eclipse.swt.widgets.DateTime; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotDateTimeTest extends AbstractSWTTestCase { +public class SWTBotDateTimeTest extends AbstractControlExampleTest { - private SWTBot bot; private SWTBotDateTime dateTime; @Test @@ -51,6 +50,39 @@ public class SWTBotDateTimeTest extends AbstractSWTTestCase { } @Test + public void shouldHandleInvalidDates() throws Exception { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(0); + calendar.set(2011, 1, 3, 0, 0, 0); + Date expected = calendar.getTime(); + assertFalse(expected.equals(dateTime.getDate())); + dateTime.setDate(expected); + + calendar = Calendar.getInstance(); + calendar.setTimeInMillis(0); + calendar.set(2010, 11, 31, 0, 0, 0); + dateTime.setDate(calendar.getTime()); + assertEquals(calendar.getTime(), dateTime.getDate()); + } + + @Test + public void bug347824() throws Exception { + Calendar calendar = Calendar.getInstance(); + calendar.setTimeInMillis(0); + calendar.set(2011, Calendar.MAY, 31, 0, 0, 0); + Date expected = calendar.getTime(); + assertFalse(expected.equals(dateTime.getDate())); + dateTime.setDate(expected); + assertEquals(expected, dateTime.getDate()); + + calendar = Calendar.getInstance(); + calendar.setTimeInMillis(0); + calendar.set(2010, Calendar.SEPTEMBER, 28, 0, 0, 0); + dateTime.setDate(calendar.getTime()); + assertEquals(calendar.getTime(), dateTime.getDate()); + } + + @Test public void sendsNotification() throws Exception { bot.checkBox("Listen").click(); SWTBotDateTime dateTime = bot.dateTimeInGroup("DateTime"); @@ -64,9 +96,8 @@ public class SWTBotDateTimeTest extends AbstractSWTTestCase { assertThat(text, containsString(" data=null item=null detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=null doit=true}")); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("DateTime").activate(); dateTime = bot.dateTimeInGroup("DateTime"); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotExpandBarTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotExpandBarTest.java new file mode 100644 index 00000000..f664d90a --- /dev/null +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotExpandBarTest.java @@ -0,0 +1,98 @@ +/******************************************************************************* + * Copyright (c) 2011 Ketan Padegaonkar 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: + * Ketan Padegaonkar - initial API and implementation + *******************************************************************************/ +package org.eclipse.swtbot.swt.finder.widgets; + +import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withText; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.util.List; + +import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; +import org.junit.Test; + +/** + * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> + */ +public class SWTBotExpandBarTest extends AbstractControlExampleTest { + + @Test + public void shouldGetExpandItemCount() throws Exception { + assertEquals(2, bot.expandBar().itemCount()); + } + + @Test + public void shouldGetExpandedAndCollapsedItemCount() throws Exception { + SWTBotExpandBar expandBar = bot.expandBar(); + assertEquals(1, expandBar.expandedItemCount()); + assertEquals(1, expandBar.collapsedItemCount()); + } + + @Test + public void shouldExpandAnItem() throws Exception { + SWTBotExpandBar expandBar = bot.expandBar(); + SWTBotExpandItem item1 = expandBar.expandItem("What is your favorite button?"); + SWTBotExpandItem item2 = expandBar.expandItem("What is your favorite icon?"); + assertEquals(2, expandBar.expandedItemCount()); + assertEquals(0, expandBar.collapsedItemCount()); + + assertTrue(item1.isExpanded()); + assertTrue(item2.isExpanded()); + + assertFalse(item1.isCollapsed()); + assertFalse(item2.isCollapsed()); + } + + @Test + public void shouldCollapseAnItem() throws Exception { + SWTBotExpandBar expandBar = bot.expandBar(); + SWTBotExpandItem item1 = expandBar.collapseItem("What is your favorite button?"); + SWTBotExpandItem item2 = expandBar.collapseItem("What is your favorite icon?"); + assertEquals(0, expandBar.expandedItemCount()); + assertEquals(2, expandBar.collapsedItemCount()); + + assertFalse(item1.isExpanded()); + assertFalse(item2.isExpanded()); + + assertTrue(item1.isCollapsed()); + assertTrue(item2.isCollapsed()); + } + + @Test + public void shouldGetAllExpandBarItems() throws Exception { + List<SWTBotExpandItem> items = bot.expandBar().getAllItems(); + assertEquals(2, items.size()); + assertEquals("What is your favorite button?", items.get(0).getText()); + assertEquals("What is your favorite icon?", items.get(1).getText()); + } + + @Test + public void shouldThrowExceptionWhenItemIsNotFound() throws Exception { + try { + bot.expandBar().getExpandItem(withText("some text")); + fail("Expected WNFE"); + } catch (WidgetNotFoundException e) { + assertEquals("Could not find widget.", e.getMessage()); + assertEquals("Timeout after: 5000 ms.: Could not find widget matching: (of type 'ExpandItem' and with text 'some text')", e + .getCause().getMessage()); + } + } + + @Before + public void prepareExample() throws Exception { + bot.tabItem("ExpandBar").activate(); + } + +} diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLabelTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLabelTest.java index 4cf558e7..a7b443bf 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLabelTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLabelTest.java @@ -14,17 +14,15 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import org.eclipse.swt.SWT; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotLabelTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotLabelTest extends AbstractControlExampleTest { @Test public void findsLabel() throws Exception { @@ -45,9 +43,8 @@ public class SWTBotLabelTest extends AbstractSWTTestCase { assertNotNull(bot.label("").image()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Label").activate(); bot.checkBox("Horizontal Fill").select(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLinkTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLinkTest.java index b2160ddc..64589209 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLinkTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotLinkTest.java @@ -10,14 +10,15 @@ *******************************************************************************/ package org.eclipse.swtbot.swt.finder.widgets; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotLinkTest extends AbstractSWTTestCase { +public class SWTBotLinkTest extends AbstractControlExampleTest { private SWTBotText listeners; @@ -33,7 +34,7 @@ public class SWTBotLinkTest extends AbstractSWTTestCase { public void clicksOnALinkWithHyperlinkTextAndHREF() throws Exception { SWTBotLink link = bot.link(); link.click("SWT"); - assertEventMatches(listeners, "MouseDown [3]: MouseEvent{Link {Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt\">SWT</A> homepage or <a>Foo</a>.} time=1561910868 data=null button=1 stateMask=0 x=234 y=10 count=1}"); + assertEventMatches(listeners, "MouseDown [3]: MouseEvent{Link {Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt\">SWT</A> homepage or <a>Foo</a>.} time=1561910868 data=null button=1 stateMask=0 x=234 y=10 count=1}"); assertEventMatches(listeners, "Selection [13]: SelectionEvent{Link {Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt\">SWT</A> homepage or <a>Foo</a>.} time=1561910872 data=null item=null detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=www.eclipse.org\\swt doit=true}"); assertEventMatches(listeners, "MouseUp [4]: MouseEvent{Link {Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt\">SWT</A> homepage or <a>Foo</a>.} time=1561910872 data=null button=1 stateMask=524288 x=234 y=10 count=1}"); } @@ -47,8 +48,8 @@ public class SWTBotLinkTest extends AbstractSWTTestCase { assertEventMatches(listeners, "MouseUp [4]: MouseEvent{Link {Visit the <A HREF=\"www.eclipse.org\">Eclipse.org</A> project and the <A HREF=\"www.eclipse.org\\swt\">SWT</A> homepage or <a>Foo</a>.} time=1561910872 data=null button=1 stateMask=524288 x=234 y=10 count=1}"); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Link").activate(); bot.checkBox("Listen").select(); bot.button("Clear").click(); diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotListTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotListTest.java index 2d58d9de..3a40474a 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotListTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotListTest.java @@ -18,14 +18,15 @@ import static org.junit.Assert.fail; import org.eclipse.swt.widgets.List; import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotListTest extends AbstractSWTTestCase { +public class SWTBotListTest extends AbstractControlExampleTest { @Test public void findsAListWithoutLabel() throws Exception { @@ -154,9 +155,8 @@ public class SWTBotListTest extends AbstractSWTTestCase { } } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("List").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest.java index f35ad0e8..e09dd745 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest.java @@ -18,8 +18,7 @@ import java.util.List; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.TableItem; -import org.eclipse.swtbot.swt.finder.AbstractMenuExampleTest; -import org.eclipse.swtbot.swt.finder.SWTBot; +import org.eclipse.swtbot.swt.finder.test.AbstractMenuExampleTest; import org.junit.Test; /** @@ -28,8 +27,6 @@ import org.junit.Test; */ public class SWTBotMenuTest extends AbstractMenuExampleTest { - private SWTBot bot; - @Test public void findsMenus() throws Exception { assertText("&File", bot.menu("File").widget); @@ -45,11 +42,11 @@ public class SWTBotMenuTest extends AbstractMenuExampleTest { public void clicksSubMenus() throws Exception { display.syncExec(new Runnable() { public void run() { - menuExample + addressBook .addAddressBook(new String[] { "last2", "first", "business phone", "home phone", "email@addres.ss", "fax number" }); - menuExample + addressBook .addAddressBook(new String[] { "last6", "first", "business phone", "home phone", "email@addres.ss", "fax number" }); - menuExample + addressBook .addAddressBook(new String[] { "last4", "first", "business phone", "home phone", "email@addres.ss", "fax number" }); } }); @@ -63,7 +60,7 @@ public class SWTBotMenuTest extends AbstractMenuExampleTest { final TableItem[][] treeItems = new TableItem[][] { null }; display.syncExec(new Runnable() { public void run() { - treeItems[0] = menuExample.getTreeItems(); + treeItems[0] = addressBook.getTreeItems(); } }); TableItem[] tableItems = treeItems[0]; @@ -76,7 +73,7 @@ public class SWTBotMenuTest extends AbstractMenuExampleTest { display.syncExec(new Runnable() { public void run() { - treeItems[0] = menuExample.getTreeItems(); + treeItems[0] = addressBook.getTreeItems(); } }); @@ -86,8 +83,4 @@ public class SWTBotMenuTest extends AbstractMenuExampleTest { assertText("last2", tableItems[2]); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); - } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest2.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest2.java index 655e205b..d749cd82 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest2.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotMenuTest2.java @@ -14,14 +14,17 @@ import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertTextContains; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; -public class SWTBotMenuTest2 extends AbstractSWTTestCase { +public class SWTBotMenuTest2 extends AbstractControlExampleTest { private SWTBotText listeners; @Test + @Ignore("Broken on cocoa") public void clicksCheckMenus() throws Exception { SWTBotMenu menu = bot.menu("Cascade").menu("Check"); assertFalse(menu.isChecked()); @@ -30,8 +33,8 @@ public class SWTBotMenuTest2 extends AbstractSWTTestCase { assertTextContains("Selection [13]: SelectionEvent{MenuItem {&Check Ctrl+Shift+C}", listeners); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Menu").activate(); listeners = bot.textInGroup("Listeners"); @@ -56,25 +59,4 @@ public class SWTBotMenuTest2 extends AbstractSWTTestCase { bot.shell("Title:0").activate(); } - public void tearDown() throws Exception { - bot.shell("SWT Controls").activate(); - bot.button("Close All Shells").click(); - - bot.checkBox("SWT.BAR").deselect(); - bot.checkBox("SWT.DROP_DOWN").deselect(); - - bot.checkBox("SWT.CASCADE").deselect(); - bot.checkBox("SWT.CHECK").deselect(); - bot.checkBox("SWT.PUSH").deselect(); - bot.checkBox("SWT.RADIO").deselect(); - bot.checkBox("SWT.SEPARATOR").deselect(); - - bot.checkBox("Images").deselect(); - bot.checkBox("Accelerators").deselect(); - bot.checkBox("Mnemonics").deselect(); - bot.checkBox("Sub-Sub-Menu").deselect(); - bot.checkBox("Sub-Menu").deselect(); - - super.tearDown(); - } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotPopupMenuTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotPopupMenuTest.java index 44e394c2..9ef81bfc 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotPopupMenuTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotPopupMenuTest.java @@ -19,16 +19,17 @@ import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertNotNull; import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotPopupMenuTest extends AbstractSWTTestCase { +public class SWTBotPopupMenuTest extends AbstractControlExampleTest { - private SWTBot bot; private SWTBotShell popupShell; private SWTBotShell activeShell; @@ -62,8 +63,8 @@ public class SWTBotPopupMenuTest extends AbstractSWTTestCase { assertTextContains("Selection [13]: SelectionEvent{MenuItem {Push} time=", bot.textInGroup("Listeners").widget); } + @Before public void setUp() throws Exception { - super.setUp(); bot = new SWTBot(); activeShell = bot.activeShell(); bot.tabItem("Menu").activate(); @@ -85,6 +86,7 @@ public class SWTBotPopupMenuTest extends AbstractSWTTestCase { popupShell.activate(); } + @After public void tearDown() throws Exception { popupShell.close(); bot.button("Close All Shells").click(); @@ -101,7 +103,5 @@ public class SWTBotPopupMenuTest extends AbstractSWTTestCase { bot.checkBox("Sub-Sub-Menu").deselect(); bot.checkBox("Sub-Menu").deselect(); bot.checkBox("SWT.BAR").deselect(); - - super.tearDown(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotRadioTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotRadioTest.java index 255281f5..2887ad16 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotRadioTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotRadioTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Ketan Padegaonkar and others. + * Copyright (c) 2008,2010 Ketan Padegaonkar 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 @@ -10,57 +10,74 @@ *******************************************************************************/ package org.eclipse.swtbot.swt.finder.widgets; -import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertTextContains; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.pass; -import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.widgetOfType; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import java.util.List; - -import org.eclipse.swt.widgets.Text; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; -import org.eclipse.swtbot.swt.finder.finders.ControlFinder; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotRadioTest extends AbstractSWTTestCase { +public class SWTBotRadioTest extends AbstractControlExampleTest { + + private long oldTimeout; + private SWTBotText listeners; + + @Before + public void lowerTimeout() { + this.oldTimeout = SWTBotPreferences.TIMEOUT; + SWTBotPreferences.TIMEOUT = 2000; + } - private SWTBot bot; + @After + public void resetTimeout() { + SWTBotPreferences.TIMEOUT = oldTimeout; + } @Test public void clicksCheckBox() throws Exception { - try { - List<Text> findControls = new ControlFinder().findControls(widgetOfType(Text.class)); - SWTBotText text = new SWTBotText(findControls.get(0)); - text.setText(""); - - bot.checkBox("Listen").click(); - bot.button("One").click(); - assertTextContains("Selection [13]: SelectionEvent{Button {One}", text); - } finally { - bot.checkBox("Listen").click(); - bot.button("Clear").click(); - } + bot.radio("Three").click(); + listeners.setText(""); + + bot.radio("One").click(); + assertEventMatches(listeners, "Activate [26]: ShellEvent{Button {One} time=557343275 data=null doit=true}"); + assertEventMatches(listeners, "MouseDown [3]: MouseEvent{Button {One} time=557343275 data=null button=1 stateMask=0 x=31 y=13 count=1}"); + assertEventMatches(listeners, "MouseUp [4]: MouseEvent{Button {One} time=557343275 data=null button=1 stateMask=524288 x=31 y=12 count=1}"); + assertEventMatches(listeners, "Selection [13]: SelectionEvent{Button {One} time=557343275 data=null item=null detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=null doit=true}"); + } + + @Test + public void clickingOneRadioDeselectsOthers() throws Exception { + bot.radio("One").click(); + listeners.setText(""); + bot.radio("Two").click(); + assertEventMatches(listeners, "Deactivate [27]: ShellEvent{Button {One} time=557347515 data=null doit=true}"); + assertEventMatches(listeners, "Activate [26]: ShellEvent{Button {Two} time=557347515 data=null doit=true}"); + assertEventMatches(listeners, "MouseDown [3]: MouseEvent{Button {Two} time=557347515 data=null button=1 stateMask=0 x=16 y=13 count=1}"); + assertEventMatches(listeners, "MouseUp [4]: MouseEvent{Button {Two} time=557347515 data=null button=1 stateMask=524288 x=16 y=13 count=1}"); + assertEventMatches(listeners, "Selection [13]: SelectionEvent{Button {One} time=557347515 data=null item=null detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=null doit=true}"); + assertEventMatches(listeners, "Selection [13]: SelectionEvent{Button {Two} time=557347515 data=null item=null detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=null doit=true}"); } @Test - public void doesNotMatchRadioButtons() throws Exception { + public void doesNotMatchCheckboxButtons() throws Exception { try { - assertNull(bot.checkBox("SWT.PUSH").widget); + assertNull(bot.radio("SWT.FLAT").widget); fail("Expecting WidgetNotFoundException"); } catch (WidgetNotFoundException e) { pass(); } try { - assertNull(bot.checkBox("Preferred").widget); + assertNull(bot.radio("Horizontal Fill").widget); fail("Expecting WidgetNotFoundException"); } catch (WidgetNotFoundException e) { pass(); @@ -70,13 +87,13 @@ public class SWTBotRadioTest extends AbstractSWTTestCase { @Test public void doesNotMatchRegularButtons() throws Exception { try { - assertNull(bot.checkBox("One").widget); + assertNull(bot.radio("Clear").widget); fail("Expecting WidgetNotFoundException"); } catch (WidgetNotFoundException e) { pass(); } try { - assertNull(bot.checkBox("Change").widget); + assertNull(bot.radio("Select Listeners").widget); fail("Expecting WidgetNotFoundException"); } catch (WidgetNotFoundException e) { pass(); @@ -101,10 +118,13 @@ public class SWTBotRadioTest extends AbstractSWTTestCase { assertFalse(bot.radio("SWT.CHECK").isSelected()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Button").activate(); + bot.radio("SWT.RADIO").click(); + listeners = bot.textInGroup("Listeners"); + bot.checkBox("Listen").select(); + bot.button("Clear").click(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotScaleTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotScaleTest.java new file mode 100644 index 00000000..69762320 --- /dev/null +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotScaleTest.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * Copyright (c) 2011 SWTBot Committers 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: + * John Cortell - initial API and implementation + *******************************************************************************/ +package org.eclipse.swtbot.swt.finder.widgets; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; +import org.junit.Test; + +public class SWTBotScaleTest extends AbstractControlExampleTest { + + @Test + public void findsScale() throws Exception { + assertNotNull(bot.scale().widget); + } + + @Test + public void findsScaleInGroup() throws Exception { + assertNotNull(bot.scaleInGroup("Scale").widget); + } + + @Test + public void shouldGetValue() throws Exception { + bot.spinnerInGroup("Selection").setSelection(42); + assertEquals(42, bot.scaleInGroup("Scale").getValue()); + } + + @Test + public void shouldSetValue() throws Exception { + bot.scaleInGroup("Scale").setValue(24); + assertEquals(24, bot.scaleInGroup("Scale").getValue()); + } + + @Test + public void shouldGetMinimumAndMaximum() throws Exception { + bot.spinnerInGroup("Minimum").setSelection(5); + bot.spinnerInGroup("Maximum").setSelection(45); + + assertEquals(5, bot.scaleInGroup("Scale").getMinimum()); + assertEquals(45, bot.scaleInGroup("Scale").getMaximum()); + } + + @Test + public void shouldGetIncrementAndPageIncrement() throws Exception { + bot.spinnerInGroup("Increment").setSelection(7); + bot.spinnerInGroup("Page Increment").setSelection(15); + + assertEquals(7, bot.scaleInGroup("Scale").getIncrement()); + assertEquals(15, bot.scaleInGroup("Scale").getPageIncrement()); + } + + + @Before + public void prepareExample() throws Exception { + bot.tabItem("Scale").activate(); + bot.spinnerInGroup("Selection").setSelection(0); + bot.spinnerInGroup("Minimum").setSelection(0); + bot.spinnerInGroup("Maximum").setSelection(100); + } + +} diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotShellTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotShellTest.java index 23f4b268..036f8eff 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotShellTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotShellTest.java @@ -12,31 +12,51 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertSameWidget; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.pass; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertSame; import static org.junit.Assert.fail; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Shell; import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.ControlFinder; import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; import org.eclipse.swtbot.swt.finder.results.VoidResult; +import org.eclipse.swtbot.swt.finder.test.AbstractSWTShellTest; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotShellTest extends AbstractSWTTestCase { +public class SWTBotShellTest extends AbstractSWTShellTest { - private SWTBot bot; + private static final String TITLE = "Address Book - Untitled"; private Shell shell3; private Shell shell2; private Shell shell4; + @Override + protected void createUI(Composite parent) { + shell.setText(TITLE); + + shell4 = new Shell(display); + shell4.setText("shell4"); + shell4.open(); + + shell2 = new Shell(shell4); + shell2.setText("shell2"); + shell2.open(); + + shell3 = new Shell(display); + shell3.setText("shell3"); + shell3.open(); + } + @Test public void findsShell() throws Exception { - assertSameWidget(menuShell, bot.shell("Address Book - Untitled").widget); + assertSameWidget(shell, bot.shell(TITLE).widget); } @Test @@ -61,9 +81,9 @@ public class SWTBotShellTest extends AbstractSWTTestCase { public void closesShell() throws Exception { UIThreadRunnable.asyncExec(display, new VoidResult() { public void run() { - Shell shell = new Shell(controlShell); - shell.setText("some shell"); - shell.open(); + Shell someShell = new Shell(shell); + someShell.setText("some shell"); + someShell.open(); } }); bot.shell("some shell").activate(); @@ -85,38 +105,20 @@ public class SWTBotShellTest extends AbstractSWTTestCase { assertSameWidget(shell2.widget, activeShell.widget); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); - UIThreadRunnable.asyncExec(display, new VoidResult() { - public void run() { - shell4 = new Shell(display); - shell4.setText("shell4"); - shell4.open(); - - shell2 = new Shell(shell4); - shell2.setText("shell2"); - shell2.open(); - - shell3 = new Shell(display); - shell3.setText("shell3"); - shell3.open(); - } - }); + @Test + public void getsAllShells() throws Exception { + assertEquals(4, bot.shells().length); } - public void tearDown() throws Exception { - new SWTBotShell(shell2).close(); - new SWTBotShell(shell3).close(); - new SWTBotShell(shell4).close(); - UIThreadRunnable.syncExec(display, new VoidResult() { + @Test + public void findsShellsById() throws Exception { + UIThreadRunnable.syncExec(new VoidResult() { public void run() { - shell2.dispose(); - shell3.dispose(); - shell4.dispose(); + shell.setData("foo-shell", "bar"); } }); - super.tearDown(); + + assertSame(shell, bot.shellWithId("foo-shell", "bar").widget); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSliderTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSliderTest.java index 9fbf1576..d344d37d 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSliderTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSliderTest.java @@ -13,14 +13,15 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Yann N. Dauphin * @version $Id$ */ -public class SWTBotSliderTest extends AbstractSWTTestCase { +public class SWTBotSliderTest extends AbstractControlExampleTest { @Test public void findsSlider() throws Exception { @@ -38,8 +39,8 @@ public class SWTBotSliderTest extends AbstractSWTTestCase { assertEquals(11, bot.sliderInGroup("Slider").getSelection()); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Slider").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSpinnerTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSpinnerTest.java index 0d5f3e95..46b20efa 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSpinnerTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotSpinnerTest.java @@ -13,17 +13,15 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Yann N. Dauphin * @version $Id$ */ -public class SWTBotSpinnerTest extends AbstractSWTTestCase { - - SWTBot bot = new SWTBot(); +public class SWTBotSpinnerTest extends AbstractControlExampleTest { @Test public void findsSpinner() throws Exception { @@ -41,8 +39,8 @@ public class SWTBotSpinnerTest extends AbstractSWTTestCase { assertEquals(11, bot.spinner().getSelection()); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Spinner").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotStyledTextTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotStyledTextTest.java index a194e45c..a1412482 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotStyledTextTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotStyledTextTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Ketan Padegaonkar and others. + * Copyright (c) 2008,2010 Ketan Padegaonkar 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 @@ -22,20 +22,18 @@ import org.eclipse.swt.custom.Bullet; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.custom.StyledText; import org.eclipse.swt.graphics.GlyphMetrics; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractCustomControlExampleTest; import org.eclipse.swtbot.swt.finder.utils.Position; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotStyledTextTest extends AbstractSWTTestCase { +public class SWTBotStyledTextTest extends AbstractCustomControlExampleTest { - private SWTBot bot; private SWTBotStyledText styledText; @Test @@ -145,6 +143,17 @@ public class SWTBotStyledTextTest extends AbstractSWTTestCase { } @Test + public void getsTabs() { + assertEquals(4, styledText.getTabs()); + try { + setTabs(15); + assertEquals(15, styledText.getTabs()); + } finally { + setTabs(4); + } + } + + @Test public void getsBullet() throws Exception { styledText.setText("hello world\n" + "it is a very good day today\n" + "good bye world\n" + "it was nice to meet you"); @@ -163,9 +172,8 @@ public class SWTBotStyledTextTest extends AbstractSWTTestCase { assertTrue(styledText.hasBulletOnCurrentLine()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.shell("SWT Custom Controls").activate(); bot.tabItem("StyledText").activate(); styledText = bot.styledTextInGroup("StyledText"); @@ -173,7 +181,13 @@ public class SWTBotStyledTextTest extends AbstractSWTTestCase { bot.checkBox("Vertical Fill").select(); } - protected Shell getFocusShell() { - return customControlShell; + private void setTabs(final int tabSize) { + display.syncExec(new Runnable() { + public void run() { + StyledText t = styledText.widget; + t.setTabs(tabSize); + } + }); } + } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTabItemTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTabItemTest.java index 700383de..5fa102a3 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTabItemTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTabItemTest.java @@ -19,9 +19,8 @@ import static org.junit.Assert.assertEquals; import java.util.List; import org.eclipse.swt.widgets.TabItem; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.ControlFinder; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; import org.hamcrest.Matcher; import org.junit.Test; @@ -29,8 +28,7 @@ import org.junit.Test; * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTabItemTest extends AbstractSWTTestCase { - final SWTBot bot = new SWTBot(); +public class SWTBotTabItemTest extends AbstractControlExampleTest { @Test public void findsTabs() throws Exception { diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableClickTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableClickTest.java index 6176db69..da0c8c85 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableClickTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableClickTest.java @@ -7,19 +7,18 @@ * * Contributors: * Cedric Chabanois - initial API and implementation + * Mickael Istria (PetalsLink) - Fix bug 362476 *******************************************************************************/ package org.eclipse.swtbot.swt.finder.widgets; import static org.junit.Assert.assertEquals; import org.eclipse.jface.snippets.viewers.Snippet009CellEditors; -import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; -import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; -import org.eclipse.swtbot.swt.finder.results.VoidResult; +import org.eclipse.swtbot.swt.finder.UIThread; +import org.eclipse.swtbot.swt.finder.test.AbstractSWTTest; import org.junit.Test; /** @@ -27,14 +26,11 @@ import org.junit.Test; * @version $Id$ * @since 1.2 */ -public class SWTBotTableClickTest extends AbstractSWTTestCase { - - private SWTBot bot; - private SWTBotTable table; - private Shell snippetCellEditorShell; +public class SWTBotTableClickTest extends AbstractSWTTest { @Test public void clickOnCell() throws Exception { + SWTBotTable table = bot.table(); table.click(0, 0); bot.sleep(1000); bot.text("0", 0).setText("101"); @@ -43,33 +39,14 @@ public class SWTBotTableClickTest extends AbstractSWTTestCase { bot.sleep(1000); assertEquals("Item 101", table.cell(0, 0)); } - - protected Shell getFocusShell() { - return snippetCellEditorShell; - } - - public void setUp() throws Exception { - UIThreadRunnable.syncExec(new VoidResult() { - public void run() { - snippetCellEditorShell = new Shell(display, SWT.SHELL_TRIM); - snippetCellEditorShell.setLayout(new FillLayout()); - snippetCellEditorShell.setText("Snippet cell editor"); - new Snippet009CellEditors(snippetCellEditorShell); - snippetCellEditorShell.open(); - } - }); - super.setUp(); - bot = new SWTBot(); - table = bot.table(); - } - - public void tearDown() throws Exception { - UIThreadRunnable.syncExec(new VoidResult() { - public void run() { - snippetCellEditorShell.close(); - } - }); - super.tearDown(); + + @UIThread + public void runUIThread() { + Display display = Display.getDefault(); + Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + new Snippet009CellEditors(shell); + shell.open (); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableColumnTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableColumnTest.java index 1be88182..8ed207f5 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableColumnTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableColumnTest.java @@ -16,17 +16,16 @@ import static org.junit.Assert.assertEquals; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Text; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTableColumnTest extends AbstractSWTTestCase { +public class SWTBotTableColumnTest extends AbstractControlExampleTest { - private SWTBot bot; private SWTBotTable table; @Test @@ -48,9 +47,8 @@ public class SWTBotTableColumnTest extends AbstractSWTTestCase { assertTextContains("data=null button=1 stateMask=524288 x=0 y=0 count=1}", text); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Table").activate(); bot.radio("SWT.MULTI").click(); bot.checkBox("Header Visible").select(); @@ -58,9 +56,4 @@ public class SWTBotTableColumnTest extends AbstractSWTTestCase { bot.button("Clear").click(); table = bot.tableInGroup("Table"); } - - public void tearDown() throws Exception { - bot.checkBox("Listen").deselect(); - super.tearDown(); - } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableDoubleClickTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableDoubleClickTest.java index 607e8dcf..a907ab99 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableDoubleClickTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableDoubleClickTest.java @@ -7,17 +7,16 @@ * * Contributors: * Cedric Chabanois - initial API and implementation + * Mickael Istria (PetalsLink) - Fix bug 362476 *******************************************************************************/ package org.eclipse.swtbot.swt.finder.widgets; import org.eclipse.jface.snippets.viewers.Snippet052DoubleClickCellEditor; -import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; -import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; -import org.eclipse.swtbot.swt.finder.results.VoidResult; +import org.eclipse.swtbot.swt.finder.UIThread; +import org.eclipse.swtbot.swt.finder.test.AbstractSWTTest; import org.junit.Test; /** @@ -25,44 +24,22 @@ import org.junit.Test; * @version $Id$ * @since 1.2 */ -public class SWTBotTableDoubleClickTest extends AbstractSWTTestCase { - - private SWTBot bot; - private SWTBotTable table; - private Shell snippetCellEditorShell; +public class SWTBotTableDoubleClickTest extends AbstractSWTTest { @Test public void doubleClickOnCell() throws Exception { - table.doubleClick(0, 0); + bot.table().doubleClick(0, 0); bot.text("Column 1 => Item 0", 0); } - protected Shell getFocusShell() { - return snippetCellEditorShell; - } - - public void setUp() throws Exception { - UIThreadRunnable.syncExec(new VoidResult() { - public void run() { - snippetCellEditorShell = new Shell(display, SWT.SHELL_TRIM); - snippetCellEditorShell.setLayout(new FillLayout()); - snippetCellEditorShell.setText("Snippet cell editor"); - new Snippet052DoubleClickCellEditor(snippetCellEditorShell); - snippetCellEditorShell.open(); - } - }); - super.setUp(); - bot = new SWTBot(); - table = bot.table(); - } + @UIThread + public void runUIThread() { + Display display = Display.getDefault(); - public void tearDown() throws Exception { - UIThreadRunnable.syncExec(new VoidResult() { - public void run() { - snippetCellEditorShell.close(); - } - }); - super.tearDown(); + Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + new Snippet052DoubleClickCellEditor(shell); + shell.open(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableItemTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableItemTest.java index 8573b453..3880b102 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableItemTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableItemTest.java @@ -17,14 +17,15 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Vincent MAHE <vmahe [at] free [dot]fr> * @version $Id$ */ -public class SWTBotTableItemTest extends AbstractSWTTestCase { +public class SWTBotTableItemTest extends AbstractControlExampleTest { private SWTBotTable table; private SWTBotText listeners; @@ -118,8 +119,8 @@ public class SWTBotTableItemTest extends AbstractSWTTestCase { assertTextContains("Selection [13]: SelectionEvent{Table {} ", listeners); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Table").activate(); bot.checkBox("Horizontal Fill").select(); bot.checkBox("Vertical Fill").select(); diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest.java index 577a18a9..4df23e24 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest.java @@ -17,19 +17,18 @@ import static org.junit.Assert.fail; import java.util.ArrayList; import org.eclipse.swt.widgets.Table; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; import org.eclipse.swtbot.swt.finder.utils.TableCollection; import org.eclipse.swtbot.swt.finder.utils.TableRow; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTableTest extends AbstractSWTTestCase { +public class SWTBotTableTest extends AbstractControlExampleTest { - private SWTBot bot; private SWTBotTable table; @Test @@ -255,9 +254,8 @@ public class SWTBotTableTest extends AbstractSWTTestCase { assertEquals("Index:3", tableItem.getText()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Table").activate(); table = bot.tableInGroup("Table"); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest2.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest2.java index a50d36e8..4b37df0a 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest2.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTableTest2.java @@ -13,18 +13,17 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertText; import static org.junit.Assert.assertEquals; -import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.TableColumn; import org.eclipse.swt.widgets.Widget; import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractMenuExampleTest; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTableTest2 extends AbstractSWTTestCase { +public class SWTBotTableTest2 extends AbstractMenuExampleTest { private static final String FIRST_NAME = "First Name"; private static final String LAST_NAME = "Last Name"; @@ -68,17 +67,13 @@ public class SWTBotTableTest2 extends AbstractSWTTestCase { table = bot.table(); } - protected Shell getFocusShell() { - return menuShell; - } - private void populateData() { display.syncExec(new Runnable() { public void run() { - menuExample.clearAddressbook(); - menuExample.addAddressBook(row1()); - menuExample.addAddressBook(row2()); - menuExample.addAddressBook(row3()); + addressBook.clearAddressbook(); + addressBook.addAddressBook(row1()); + addressBook.addAddressBook(row2()); + addressBook.addAddressBook(row3()); } }); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTextTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTextTest.java index b1279cfb..c76a68be 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTextTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTextTest.java @@ -13,23 +13,16 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertText; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertTextContains; -import static org.junit.Assert.assertEquals; -import org.eclipse.swt.events.KeyEvent; -import org.eclipse.swt.events.KeyListener; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; -import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; -import org.eclipse.swtbot.swt.finder.results.VoidResult; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTextTest extends AbstractSWTTestCase { - - SWTBot bot = new SWTBot(); +public class SWTBotTextTest extends AbstractControlExampleTest { @Test public void findsTextBoxInGroup() throws Exception { @@ -56,34 +49,14 @@ public class SWTBotTextTest extends AbstractSWTTestCase { @Test public void typesText() throws Exception { final SWTBotText text = bot.textInGroup("Text"); - final StringBuffer buffer = new StringBuffer(); text.setText(""); - final KeyListener listener = new KeyListener() { - public void keyReleased(KeyEvent e) { - } - - public void keyPressed(KeyEvent e) { - if (e.character != 0) - buffer.append(e.character); - } - }; - - UIThreadRunnable.syncExec(new VoidResult() { - public void run() { - text.widget.addKeyListener(listener); - } - }); - text.typeText("Type This 123"); assertTextContains("Type This 123", text.widget); - - assertEquals("Type This 123", buffer.toString()); - } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Text").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToggleButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToggleButtonTest.java index 22016157..4f947602 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToggleButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToggleButtonTest.java @@ -21,35 +21,47 @@ import static org.junit.Assert.fail; import java.util.List; import org.eclipse.swt.widgets.Text; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.ControlFinder; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToggleButtonTest extends AbstractSWTTestCase { +public class SWTBotToggleButtonTest extends AbstractControlExampleTest { - private SWTBot bot; + private long oldTimeout; + + @Before + public void lowerTimeout() { + this.oldTimeout = SWTBotPreferences.TIMEOUT; + SWTBotPreferences.TIMEOUT = 2000; + } + + @After + public void resetTimeout() { + SWTBotPreferences.TIMEOUT = oldTimeout; + } @Test public void clicksToggleButton() throws Exception { try { List<Text> findControls = new ControlFinder().findControls(widgetOfType(Text.class)); SWTBotText text = new SWTBotText(findControls.get(0)); + bot.checkBox("Listen").select(); text.setText(""); - assertFalse(bot.checkBox("Listen").isChecked()); - bot.checkBox("Listen").click(); assertFalse(bot.toggleButton("One").isPressed()); bot.toggleButton("One").click(); assertTrue(bot.toggleButton("One").isPressed()); assertTextContains("Selection [13]: SelectionEvent{Button {One}", text); } finally { - bot.checkBox("Listen").click(); + bot.checkBox("Listen").deselect(); bot.button("Clear").click(); } } @@ -86,15 +98,10 @@ public class SWTBotToggleButtonTest extends AbstractSWTTestCase { } } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Button").activate(); bot.radio("SWT.TOGGLE").click(); } - public void tearDown() throws Exception { - super.tearDown(); - bot.radio("SWT.PUSH").click(); - } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonTest.java index a64e3d79..2ad37b7d 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonTest.java @@ -21,18 +21,17 @@ import static org.junit.Assert.fail; import java.util.List; import org.eclipse.swt.widgets.MenuItem; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToolbarDropDownButtonTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotToolbarDropDownButtonTest extends AbstractControlExampleTest { @Test public void findsToolBarButtonWithIndex() throws Exception { @@ -54,6 +53,7 @@ public class SWTBotToolbarDropDownButtonTest extends AbstractSWTTestCase { } @Test + @Ignore("Broken on cocoa") public void getsAllMenuItems() throws Exception { List<? extends SWTBotMenu> menuItems = bot.toolbarDropDownButton("Drop Down").menuItems(any(MenuItem.class)); menuItems.get(0).click(); @@ -61,6 +61,7 @@ public class SWTBotToolbarDropDownButtonTest extends AbstractSWTTestCase { } @Test + @Ignore public void clicksADropDownMenuItem() throws Exception { SWTBotToolbarDropDownButton button = bot.toolbarDropDownButton("Drop Down"); try { @@ -73,9 +74,8 @@ public class SWTBotToolbarDropDownButtonTest extends AbstractSWTTestCase { button.menuItem("Kiwi").click(); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("ToolBar").activate(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonWithToolTipTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonWithToolTipTest.java index a6b25514..2c6e7b7d 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonWithToolTipTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarDropDownButtonWithToolTipTest.java @@ -16,18 +16,17 @@ import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertTextContains; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.pass; import static org.junit.Assert.fail; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToolbarDropDownButtonWithToolTipTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotToolbarDropDownButtonWithToolTipTest extends AbstractControlExampleTest { @Test public void findsToolBarButtonWithIndex() throws Exception { @@ -49,6 +48,7 @@ public class SWTBotToolbarDropDownButtonWithToolTipTest extends AbstractSWTTestC } @Test + @Ignore public void clicksADropDownMenuItem() throws Exception { SWTBotToolbarDropDownButton button = bot.toolbarDropDownButtonWithTooltip("SWT.DROP_DOWN"); try { @@ -61,9 +61,8 @@ public class SWTBotToolbarDropDownButtonWithToolTipTest extends AbstractSWTTestC button.menuItem("Kiwi").click(); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("ToolBar").activate(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonTest.java index 72473faf..4f01f380 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonTest.java @@ -17,20 +17,33 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; -import org.eclipse.swtbot.swt.finder.SWTBot; import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; import org.eclipse.swtbot.swt.finder.results.VoidResult; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.eclipse.swtbot.swt.finder.utils.SWTBotPreferences; +import org.junit.After; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToolbarPushButtonTest extends AbstractSWTTestCase { +public class SWTBotToolbarPushButtonTest extends AbstractControlExampleTest { - private SWTBot bot; + private long oldTimeout; + + @Before + public void lowerTimeout() { + this.oldTimeout = SWTBotPreferences.TIMEOUT; + SWTBotPreferences.TIMEOUT = 2000; + } + + @After + public void resetTimeout() { + SWTBotPreferences.TIMEOUT = oldTimeout; + } @Test public void findsToolBarPushButtons() throws Exception { @@ -96,9 +109,8 @@ public class SWTBotToolbarPushButtonTest extends AbstractSWTTestCase { } } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void activateTab() throws Exception { bot.tabItem("ToolBar").activate(); } } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonWithToolTipTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonWithToolTipTest.java index 53cb6707..7605c41a 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonWithToolTipTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarPushButtonWithToolTipTest.java @@ -12,13 +12,11 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.junit.Assert.assertEquals; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; -public class SWTBotToolbarPushButtonWithToolTipTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotToolbarPushButtonWithToolTipTest extends AbstractControlExampleTest { @Test public void findsToolBarButtonWithToolTipBasedOnIndex() throws Exception { @@ -56,9 +54,8 @@ public class SWTBotToolbarPushButtonWithToolTipTest extends AbstractSWTTestCase assertEquals("SWT.RADIO", toolTipText); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("ToolBar").activate(); } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButtonTest.java index b59d75f5..84e06ef3 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarRadioButtonTest.java @@ -13,8 +13,8 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertNotSameWidget; import static org.junit.Assert.assertTrue; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** @@ -22,9 +22,7 @@ import org.junit.Test; * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToolbarRadioButtonTest extends AbstractSWTTestCase { - - private SWTBot bot; +public class SWTBotToolbarRadioButtonTest extends AbstractControlExampleTest { @Test public void findsToolBarButtonWithIndex() throws Exception { @@ -73,17 +71,10 @@ public class SWTBotToolbarRadioButtonTest extends AbstractSWTTestCase { assertTrue(checked != button.isChecked()); } + @Before public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); bot.tabItem("ToolBar").activate(); bot.checkBox("Listen").select(); } - public void tearDown() throws Exception { - super.tearDown(); - bot.radio("SWT.HORIZONTAL").click(); // reset the ui - bot.checkBox("Listen").deselect(); - } - -} +}
\ No newline at end of file diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButtonTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButtonTest.java index 26b31187..8830e6e0 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButtonTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotToolbarToggleButtonTest.java @@ -13,8 +13,8 @@ package org.eclipse.swtbot.swt.finder.widgets; import static org.eclipse.swtbot.swt.finder.SWTBotTestCase.assertNotSameWidget; import static org.junit.Assert.assertTrue; -import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; +import org.junit.Before; import org.junit.Test; /** @@ -22,8 +22,7 @@ import org.junit.Test; * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotToolbarToggleButtonTest extends AbstractSWTTestCase { - private SWTBot bot; +public class SWTBotToolbarToggleButtonTest extends AbstractControlExampleTest { @Test public void findsToolBarButtonWithIndex() throws Exception { @@ -72,17 +71,10 @@ public class SWTBotToolbarToggleButtonTest extends AbstractSWTTestCase { assertTrue(checked != button.isChecked()); } - public void setUp() throws Exception { - super.setUp(); - bot = new SWTBot(); + @Before + public void prepareExample() throws Exception { bot.tabItem("ToolBar").activate(); bot.checkBox("Listen").select(); } - public void tearDown() throws Exception { - super.tearDown(); - bot.radio("SWT.HORIZONTAL").click(); // reset the ui - bot.checkBox("Listen").deselect(); - } - } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTrayItemTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTrayItemTest.java index 79c5a7ca..43cdf9fa 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTrayItemTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTrayItemTest.java @@ -14,32 +14,40 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Tray; import org.eclipse.swt.widgets.TrayItem; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; import org.eclipse.swtbot.swt.finder.results.VoidResult; import org.eclipse.swtbot.swt.finder.results.WidgetResult; +import org.eclipse.swtbot.swt.finder.test.AbstractSWTShellTest; +import org.junit.After; +import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; -public class SWTBotTrayItemTest extends AbstractSWTTestCase { +public class SWTBotTrayItemTest extends AbstractSWTShellTest { private Menu tray_item_menu; private Tray tray; + @Override + protected void createUI(Composite parent) { + } + + @Before public void setUp() throws Exception { - super.setUp(); tray = getSystemTray(); createTrayItems(); } + @After public void tearDown() throws Exception { destroyTrayItems(); - super.tearDown(); } @Test @@ -66,6 +74,7 @@ public class SWTBotTrayItemTest extends AbstractSWTTestCase { } @Test + @Ignore public void menuCanBeAccessedOnTrayItem() { bot.trayItem(2).menu("Menu").click(); assertTrue(menuSelected); @@ -79,7 +88,7 @@ public class SWTBotTrayItemTest extends AbstractSWTTestCase { private final Listener popupMenu = new Listener() { public void handleEvent(Event event) { - tray_item_menu = new Menu(controlShell, SWT.POP_UP); + tray_item_menu = new Menu(shell, SWT.POP_UP); MenuItem item = new MenuItem(tray_item_menu, SWT.PUSH); item.setText("Menu"); item.addListener(SWT.Selection, menuSelectedListener); @@ -136,4 +145,5 @@ public class SWTBotTrayItemTest extends AbstractSWTTestCase { public class SystemTrayNotSupportedException extends RuntimeException { private static final long serialVersionUID = 1053812131263043591L; } + } diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeItemTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeItemTest.java index 036ffc7d..74383744 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeItemTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeItemTest.java @@ -19,8 +19,9 @@ import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.eclipse.swtbot.swt.finder.exceptions.AssertionFailedException; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; import org.eclipse.swtbot.swt.finder.utils.TableRow; +import org.junit.Before; import org.junit.Test; /** @@ -28,7 +29,7 @@ import org.junit.Test; * @author Ketan Patel * @version $Id$ */ -public class SWTBotTreeItemTest extends AbstractSWTTestCase { +public class SWTBotTreeItemTest extends AbstractControlExampleTest { private SWTBotTree tree; private SWTBotText listeners; @@ -38,9 +39,10 @@ public class SWTBotTreeItemTest extends AbstractSWTTestCase { SWTBotTreeItem node = tree.expandNode("Node 2").expandNode("Node 2.2").expandNode("Node 2.2.1"); bot.button("Clear").click(); node.contextMenu("getItem(Point) on mouse coordinates").click(); - assertTextContains("Selection [13]: SelectionEvent{Tree {} ", listeners); - assertTextContains("MenuDetect [35]: Event {type=35 Tree {}", listeners); - assertTextContains("getItem(Point(Point {", listeners); + assertEventMatches(listeners, "MenuDetect [35]: Event {type=35 Tree {} time=175982645 data=null x=148 y=195 width=0 height=0 detail=0}"); + assertEventMatches(listeners, "MouseDown [3]: MouseEvent{Tree {} time=175982645 data=null button=3 stateMask=0 x=122 y=81 count=1}"); + assertEventMatches(listeners, "Selection [13]: SelectionEvent{Tree {} time=175985221 data=null item=TreeItem {Node 2.2.1} detail=0 x=0 y=0 width=0 height=0 stateMask=0 text=null doit=true}"); + assertEventMatches(listeners, "getItem(Point(Point {"); } @Test @@ -233,10 +235,19 @@ public class SWTBotTreeItemTest extends AbstractSWTTestCase { assertTextContains("MouseDoubleClick [8]: MouseEvent{Tree {} ", listeners); assertTextContains("DefaultSelection [14]: SelectionEvent{Tree {} ", listeners); assertTextContains("MouseUp [4]: MouseEvent{Tree {} ", listeners); + assertTextContains("button=1", listeners); + } + + @Test + public void canExpandANodeUsingVarArgs() throws Exception { + SWTBotTreeItem node = tree.getTreeItem("Node 2").expand(); + node = node.expandNode("Node 2.2", "Node 2.2.1"); + + assertEquals(7, tree.visibleRowCount()); } - public void setUp() throws Exception { - super.setUp(); + @Before + public void prepareExample() throws Exception { bot.tabItem("Tree").activate(); bot.checkBox("Horizontal Fill").select(); bot.checkBox("Vertical Fill").select(); diff --git a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeTest.java b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeTest.java index 419e4f42..6de933f6 100644 --- a/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeTest.java +++ b/org.eclipse.swtbot.swt.finder.test/src/org/eclipse/swtbot/swt/finder/widgets/SWTBotTreeTest.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008 Ketan Padegaonkar and others. + * Copyright (c) 2008, 2010 Ketan Padegaonkar 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 @@ -18,19 +18,24 @@ import static org.junit.Assert.assertTrue; import java.util.ArrayList; +import org.eclipse.swt.graphics.Rectangle; import org.eclipse.swt.widgets.Tree; import org.eclipse.swt.widgets.Widget; import org.eclipse.swtbot.swt.finder.SWTBot; -import org.eclipse.swtbot.swt.finder.finders.AbstractSWTTestCase; +import org.eclipse.swtbot.swt.finder.exceptions.AssertionFailedException; +import org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable; +import org.eclipse.swtbot.swt.finder.results.Result; +import org.eclipse.swtbot.swt.finder.test.AbstractControlExampleTest; import org.eclipse.swtbot.swt.finder.utils.TableCollection; import org.eclipse.swtbot.swt.finder.utils.TableRow; +import org.junit.Before; import org.junit.Test; /** * @author Ketan Padegaonkar <KetanPadegaonkar [at] gmail [dot] com> * @version $Id$ */ -public class SWTBotTreeTest extends AbstractSWTTestCase { +public class SWTBotTreeTest extends AbstractControlExampleTest { private SWTBot bot; private SWTBotTree tree; @@ -187,17 +192,43 @@ public class SWTBotTreeTest extends AbstractSWTTestCase { } @Test - public void clicksOnANode() throws Exception { + public void clicksOnANodeInAColumn() throws Exception { + bot.checkBox("Multiple Columns").select(); bot.checkBox("Listen").select(); - SWTBotTreeItem node = bot.tree().expandNode("Node 3").expandNode("Node 3.1"); + final SWTBotTreeItem node = bot.tree().expandNode("Node 2", true); bot.button("Clear").click(); - node.click(); + Rectangle columnBounds = getColumnBounds(node, 2); + int targetX = columnBounds.x +(columnBounds.width/2); + int targetY = columnBounds.y + (columnBounds.height/2); + node.click(2); SWTBotText listener = bot.textInGroup("Listeners"); assertTextContains("MouseDown [3]: MouseEvent{Tree {}", listener); assertTextContains("Selection [13]: SelectionEvent{Tree {}", listener); - assertTextContains("item=TreeItem {Node 3.1}", listener); + assertTextContains("item=TreeItem {Node 2}", listener); + assertTextContains("x=" + targetX +" y=" + targetY, listener); assertTextContains("MouseUp [4]: MouseEvent{Tree {}", listener); } + + private Rectangle getColumnBounds(final SWTBotTreeItem node, final int columnIndex) { + return UIThreadRunnable.syncExec(new Result<Rectangle>() { + public Rectangle run() { + return node.widget.getBounds(2); + } + }); + } + + @Test + public void clicksOnANode() throws Exception { + bot.checkBox("Listen").select(); + SWTBotTreeItem node = bot.tree().expandNode("Node 3").expandNode("Node 3.1"); + bot.button("Clear").click(); + node.click(); + SWTBotText listener = bot.textInGroup("Listeners"); + assertEventMatches(listener, "MouseDown [3]: MouseEvent{Tree {} time=174577490 data=null button=1 stateMask=0 x=104 y=54 count=1}"); + assertEventMatches(listener, "Selection [13]: SelectionEvent{Tree {} time=174577490 data=null item=TreeItem {Node 3.1} detail=0 x=0 y=0 width=0 height=0 stateMask=524288 text=null doit=true}"); + assertEventMatches(listener, "MouseUp [4]: MouseEvent{Tree {} time=174577490 data=null button=1 stateMask=524288 x=104 y=54 count=1}"); + } + @Test public void doubleClicksOnANode() throws Exception { @@ -215,8 +246,21 @@ public class SWTBotTreeTest extends AbstractSWTTestCase { assertTextContains("MouseDoubleClick [8]: MouseEvent{Tree {} ", listener); } + @Test + public void expandANodePath() throws Exception { + SWTBotTree tree = bot.treeInGroup("Tree"); + + tree.expandNode("Node 2", "Node 2.2", "Node 2.2.1"); + assertEquals(7, tree.visibleRowCount()); + } + + @Test(expected=AssertionFailedException.class) + public void expandEmptyPath() throws Exception { + bot.tree().expandNode(); + } + + @Before public void setUp() throws Exception { - super.setUp(); bot = new SWTBot(); bot.tabItem("Tree").activate(); bot.checkBox("Listen").deselect(); |