aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <teemusa@vaadin.com>2015-02-12 14:57:13 +0200
committerTeemu Suo-Anttila <teemusa@vaadin.com>2015-02-19 15:19:46 +0200
commitfd8078d691f6b6eec407882280730104f5027e3d (patch)
tree1e9e3dac572d9951a55d6d00e935167c6056eb27 /uitest/src/com/vaadin
parentf4e002e36be983b16c6324255780fd7e74710d68 (diff)
downloadvaadin-framework-fd8078d691f6b6eec407882280730104f5027e3d.tar.gz
vaadin-framework-fd8078d691f6b6eec407882280730104f5027e3d.zip
Use TestBench-4.0.2
- Based on TB4 Parallel testing. - Browser setup no longer uses static capabilities. - Some code cleanup here and there. Change-Id: I5c419316cd36f4f5041eaa8da8fda3d8b46596c4
Diffstat (limited to 'uitest/src/com/vaadin')
-rw-r--r--uitest/src/com/vaadin/testbench/elements/GridElement.java2
-rw-r--r--uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java42
-rw-r--r--uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java9
-rw-r--r--uitest/src/com/vaadin/tests/annotations/TestCategory.java31
-rw-r--r--uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java5
-rw-r--r--uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/SaneErrorsTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java9
-rw-r--r--uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java11
-rw-r--r--uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java7
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java3
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java5
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java29
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java5
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java11
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java3
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java6
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java14
-rw-r--r--uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java8
-rw-r--r--uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java28
-rw-r--r--uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java14
-rw-r--r--uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java10
-rw-r--r--uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java15
-rw-r--r--uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java12
-rw-r--r--uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java7
-rw-r--r--uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java22
-rw-r--r--uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java7
-rw-r--r--uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java8
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java21
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java21
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java16
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java5
-rw-r--r--uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java1
-rw-r--r--uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java15
-rw-r--r--uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java12
-rw-r--r--uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java19
-rw-r--r--uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java13
-rw-r--r--uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java6
-rw-r--r--uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java6
-rw-r--r--uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java4
-rw-r--r--uitest/src/com/vaadin/tests/push/BarInUIDLTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/BasicPushTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/PushConfigurationTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java8
-rw-r--r--uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java3
-rw-r--r--uitest/src/com/vaadin/tests/push/PushFromInitTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java3
-rw-r--r--uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java5
-rw-r--r--uitest/src/com/vaadin/tests/push/TogglePushTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java482
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java5
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java5
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java5
-rw-r--r--uitest/src/com/vaadin/tests/tb3/DndActionsTest.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java118
-rwxr-xr-xuitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java100
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java115
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java4
-rw-r--r--uitest/src/com/vaadin/tests/tb3/SingleBrowserTest.java8
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TB3Runner.java359
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java33
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java29
-rw-r--r--uitest/src/com/vaadin/tests/tb3/VaadinBrowserFactory.java60
-rw-r--r--uitest/src/com/vaadin/tests/tb3/WebsocketTest.java8
-rw-r--r--uitest/src/com/vaadin/tests/tb3/newelements/CalendarElement.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/newelements/FixedNotificationElement.java4
-rw-r--r--uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java3
-rw-r--r--uitest/src/com/vaadin/tests/themes/ThemeChangeOnTheFlyTest.java19
-rw-r--r--uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java7
-rw-r--r--uitest/src/com/vaadin/tests/themes/valo/TextFieldBevelTest.java7
-rw-r--r--uitest/src/com/vaadin/tests/themes/valo/ValoThemeUITest.java1
112 files changed, 475 insertions, 1487 deletions
diff --git a/uitest/src/com/vaadin/testbench/elements/GridElement.java b/uitest/src/com/vaadin/testbench/elements/GridElement.java
index 3753696855..68ddfc878e 100644
--- a/uitest/src/com/vaadin/testbench/elements/GridElement.java
+++ b/uitest/src/com/vaadin/testbench/elements/GridElement.java
@@ -23,6 +23,8 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
import com.vaadin.testbench.TestBenchElement;
+import com.vaadin.testbench.elementsbase.AbstractElement;
+import com.vaadin.testbench.elementsbase.ServerClass;
/**
* TestBench Element API for Grid
diff --git a/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java b/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java
index 38c94dda7d..5b4f4df788 100644
--- a/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java
+++ b/uitest/src/com/vaadin/tests/VerifyBrowserVersionTest.java
@@ -19,28 +19,14 @@ import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import java.util.HashMap;
-import java.util.Map;
-
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class VerifyBrowserVersionTest extends MultiBrowserTest {
- private Map<DesiredCapabilities, String> expectedUserAgent = new HashMap<DesiredCapabilities, String>();
-
- {
- expectedUserAgent.put(Browser.FIREFOX.getDesiredCapabilities(), "Firefox/");
- expectedUserAgent.put(Browser.IE8.getDesiredCapabilities(), "MSIE ");
- expectedUserAgent.put(Browser.IE9.getDesiredCapabilities(), "MSIE ");
- expectedUserAgent.put(Browser.IE10.getDesiredCapabilities(), "MSIE ");
- expectedUserAgent.put(Browser.IE11.getDesiredCapabilities(), "Trident/7.0; rv:");
- expectedUserAgent.put(Browser.CHROME.getDesiredCapabilities(), "Chrome/");
- expectedUserAgent.put(Browser.PHANTOMJS.getDesiredCapabilities(), "PhantomJS/");
- }
-
@Test
public void verifyUserAgent() {
openTestURL();
@@ -48,11 +34,31 @@ public class VerifyBrowserVersionTest extends MultiBrowserTest {
DesiredCapabilities desiredCapabilities = getDesiredCapabilities();
assertThat(vaadinElementById("userAgent").getText(),
- containsString(expectedUserAgent.get(desiredCapabilities)
- + desiredCapabilities.getVersion()));
+ containsString(getExpectedUserAgentString(desiredCapabilities)
+ + desiredCapabilities.getVersion()));
assertThat(vaadinElementById("touchDevice").getText(),
- is("Touch device? No"));
+ is("Touch device? No"));
+ }
+
+ private String getExpectedUserAgentString(DesiredCapabilities dCap) {
+ if (BrowserUtil.isIE(dCap)) {
+ if (!BrowserUtil.isIE(dCap, 11)) {
+ // IE8-10
+ return "MSIE ";
+ } else {
+ // IE11
+ return "Trident/7.0; rv:";
+ }
+ } else if (BrowserUtil.isFirefox(dCap)) {
+ return "Firefox/";
+ } else if (BrowserUtil.isChrome(dCap)) {
+ return "Chrome/";
+ } else if (BrowserUtil.isPhantomJS(dCap)) {
+ return "PhantomJS/";
+ }
+ throw new UnsupportedOperationException(
+ "Test is being run on unknown browser.");
}
}
diff --git a/uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java b/uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java
index 8dfcf52b75..1231b0036e 100644
--- a/uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java
+++ b/uitest/src/com/vaadin/tests/actions/ActionsOnInvisibleComponentsTest.java
@@ -7,6 +7,7 @@ import org.junit.Test;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class ActionsOnInvisibleComponentsTest extends MultiBrowserTest {
@@ -15,12 +16,8 @@ public class ActionsOnInvisibleComponentsTest extends MultiBrowserTest {
// This method should be removed once #12785 is fixed
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- // Send Keys does not function correctly on these browsers.
- browsers.remove(Browser.CHROME.getDesiredCapabilities());
- browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- return browsers;
+ return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
+ Browser.PHANTOMJS);
}
@Test
diff --git a/uitest/src/com/vaadin/tests/annotations/TestCategory.java b/uitest/src/com/vaadin/tests/annotations/TestCategory.java
deleted file mode 100644
index 5ba6cc3faa..0000000000
--- a/uitest/src/com/vaadin/tests/annotations/TestCategory.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright 2000-2014 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.annotations;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Inherited;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Target(ElementType.TYPE)
-@Inherited
-public @interface TestCategory {
-
- String value();
-
-}
diff --git a/uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java b/uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java
index 5a815fb40c..8020870bdc 100644
--- a/uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java
+++ b/uitest/src/com/vaadin/tests/applicationservlet/NoApplicationClassTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.applicationservlet;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -23,6 +22,7 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class NoApplicationClassTest extends MultiBrowserTest {
@@ -38,8 +38,7 @@ public class NoApplicationClassTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(Browser.CHROME
- .getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.CHROME);
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java b/uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java
index 4f5c16218e..69e4aaa06c 100644
--- a/uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java
+++ b/uitest/src/com/vaadin/tests/components/AbstractOrderedLayoutWithCaptionsTest.java
@@ -25,6 +25,7 @@ import org.junit.Test;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
diff --git a/uitest/src/com/vaadin/tests/components/SaneErrorsTest.java b/uitest/src/com/vaadin/tests/components/SaneErrorsTest.java
index bf84695c3b..a43db58fd0 100644
--- a/uitest/src/com/vaadin/tests/components/SaneErrorsTest.java
+++ b/uitest/src/com/vaadin/tests/components/SaneErrorsTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.components;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -24,6 +23,7 @@ import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class SaneErrorsTest extends MultiBrowserTest {
@@ -35,7 +35,7 @@ public class SaneErrorsTest extends MultiBrowserTest {
*/
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(DesiredCapabilities.firefox());
+ return getBrowserCapabilities(Browser.FIREFOX);
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java b/uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java
index e18163227e..a41fb8360a 100644
--- a/uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java
+++ b/uitest/src/com/vaadin/tests/components/calendar/SetFirstVisibleHourOfDayTest.java
@@ -23,6 +23,7 @@ import org.openqa.selenium.By;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java
index 7951187fa7..ce8e614e10 100644
--- a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java
+++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSetNullWhenNewItemsAllowedTest.java
@@ -25,6 +25,7 @@ import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.By;
import com.vaadin.testbench.commands.TestBenchElementCommands;
import com.vaadin.testbench.elements.ComboBoxElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java b/uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java
index 948acc5fe6..e88dd2eb85 100644
--- a/uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java
+++ b/uitest/src/com/vaadin/tests/components/combobox/ComboboxPageLengthZeroScrollTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.components.combobox;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -26,6 +25,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -67,6 +67,6 @@ public class ComboboxPageLengthZeroScrollTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.IE8);
}
}
diff --git a/uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java b/uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java
index a57017746a..4775441af2 100644
--- a/uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java
+++ b/uitest/src/com/vaadin/tests/components/datefield/DisabledDateFieldPopupTest.java
@@ -16,7 +16,6 @@
package com.vaadin.tests.components.datefield;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
@@ -33,13 +32,7 @@ public class DisabledDateFieldPopupTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>();
- for (DesiredCapabilities browser : super.getBrowsersToTest()) {
- if (BrowserUtil.isIE(browser)) {
- browsers.add(browser);
- }
- }
- return browsers;
+ return getIEBrowsersOnly();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java b/uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java
index c80a74599d..38e4b7e0b8 100644
--- a/uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java
+++ b/uitest/src/com/vaadin/tests/components/datefield/LocaleChangeTest.java
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.openqa.selenium.By;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class LocaleChangeTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java b/uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java
index 6d22048d32..a4c7248d69 100644
--- a/uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java
+++ b/uitest/src/com/vaadin/tests/components/datefield/PopupDateFieldExtendedRangeTest.java
@@ -31,6 +31,7 @@ import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.DateFieldElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -405,9 +406,8 @@ public class PopupDateFieldExtendedRangeTest extends MultiBrowserTest {
new Actions(driver).keyUp(Keys.SHIFT).perform();
// TODO: remove this once #14406 has been fixed
- if (!getBrowsersExcludingIE().contains(getDesiredCapabilities())
- && !Browser.IE8.getDesiredCapabilities().equals(
- getDesiredCapabilities())) {
+ if (BrowserUtil.isIE(getDesiredCapabilities())
+ && !BrowserUtil.isIE8(getDesiredCapabilities())) {
popup.findElement(
By.className("v-datefield-calendarpanel-prevmonth"))
.findElement(By.tagName("button")).click();
@@ -435,9 +435,8 @@ public class PopupDateFieldExtendedRangeTest extends MultiBrowserTest {
.size());
// TODO: remove this check once #14406 has been fixed -- clicking the
// button instead of navigating with arrow keys steals the focus
- if (getBrowsersExcludingIE().contains(getDesiredCapabilities())
- || Browser.IE8.getDesiredCapabilities().equals(
- getDesiredCapabilities())) {
+ if (!BrowserUtil.isIE(getDesiredCapabilities())
+ || BrowserUtil.isIE8(getDesiredCapabilities())) {
assertEquals(
"unexpected focus",
"16",
diff --git a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
index f3dca71cad..dc4dd341f4 100644
--- a/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
+++ b/uitest/src/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
@@ -20,7 +20,7 @@ import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
-import java.util.Arrays;
+import java.util.Collections;
import java.util.List;
import org.junit.Before;
@@ -33,9 +33,10 @@ import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.EmbeddedElement;
import com.vaadin.testbench.elements.ImageElement;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.SingleBrowserTest;
import com.vaadin.ui.Embedded;
+import com.vaadin.ui.Image;
/**
* Tests that {@link Embedded} uses correct theme when the theme is set with
@@ -50,7 +51,7 @@ public class EmbeddedThemeResourceTest extends SingleBrowserTest {
public List<DesiredCapabilities> getBrowsersToTest() {
// Seems like stylesheet onload is not fired on PhantomJS
// https://github.com/ariya/phantomjs/issues/12332
- return Arrays.asList(MultiBrowserTest.Browser.FIREFOX
+ return Collections.singletonList(Browser.FIREFOX
.getDesiredCapabilities());
}
diff --git a/uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java b/uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
index cc5be455cd..a9e0b03932 100644
--- a/uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/AbstractGridColumnAutoWidthTest.java
@@ -24,7 +24,8 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@SuppressWarnings("boxing")
diff --git a/uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java b/uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java
index 1c00574f9c..b17416df2a 100644
--- a/uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/CustomRendererTest.java
@@ -23,7 +23,7 @@ import org.junit.Test;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.LabelElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java b/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java
index ceaceb661d..42327ebd80 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridAddAndRemoveDataOnInitTest.java
@@ -20,7 +20,7 @@ import org.junit.Test;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java b/uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java
index 46f085686d..8c601db9aa 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridAddRowTest.java
@@ -20,7 +20,7 @@ import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java b/uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java
index 953e2a24c7..2ef1600f91 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridClientRenderers.java
@@ -33,8 +33,9 @@ import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.NativeButtonElement;
import com.vaadin.testbench.elements.NativeSelectElement;
-import com.vaadin.testbench.elements.ServerClass;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.elementsbase.ServerClass;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.widgetset.client.grid.GridClientColumnRendererConnector.Renderers;
import com.vaadin.tests.widgetset.server.grid.GridClientColumnRenderers;
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java b/uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java
index 6b50b64732..d99272d506 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridColspansTest.java
@@ -25,7 +25,7 @@ import org.openqa.selenium.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java b/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
index dcc14a967d..999f72682e 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthClientTest.java
@@ -15,7 +15,7 @@
*/
package com.vaadin.tests.components.grid;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
@TestCategory("grid")
public class GridColumnAutoWidthClientTest extends
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java b/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
index 2f42b89eb1..3a4e2bfc72 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridColumnAutoWidthServerTest.java
@@ -15,7 +15,7 @@
*/
package com.vaadin.tests.components.grid;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
@TestCategory("grid")
public class GridColumnAutoWidthServerTest extends
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java b/uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java
index 6c386eec03..47dc90e33a 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridEditorUITest.java
@@ -26,7 +26,7 @@ import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.PasswordFieldElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java b/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java
index ffcd4c448f..d50879e65e 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridGeneratedPropertiesTest.java
@@ -24,7 +24,7 @@ import org.junit.Test;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java b/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java
index 0f70d66ad4..8b3a81e660 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridHeaderStyleNamesTest.java
@@ -23,7 +23,7 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.SingleBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java b/uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java
index 168496e9df..f9f8d1309b 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridInTabSheetTest.java
@@ -24,7 +24,7 @@ import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.TabSheetElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java b/uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java
index 42eb2197bf..a3fbb00cf2 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridSingleColumnTest.java
@@ -21,7 +21,7 @@ import org.junit.Test;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java b/uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java
index 5d6ffbd8a7..fc93e99188 100644
--- a/uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/GridWithoutRendererTest.java
@@ -22,7 +22,7 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.SingleBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java b/uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java
index 7a6d37d089..b4414a3f38 100644
--- a/uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/InitialFrozenColumnsTest.java
@@ -23,7 +23,7 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java b/uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java
index 854d7fe3f2..063d05b735 100644
--- a/uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/WidgetRenderersTest.java
@@ -15,22 +15,23 @@
*/
package com.vaadin.tests.components.grid;
-import com.vaadin.testbench.By;
-import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.testbench.elements.GridElement.GridCellElement;
-import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.tests.annotations.TestCategory;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertTrue;
+
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedCondition;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertTrue;
+import com.vaadin.testbench.By;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.testbench.elements.GridElement.GridCellElement;
+import com.vaadin.testbench.elements.NotificationElement;
+import com.vaadin.testbench.parallel.TestCategory;
+import com.vaadin.tests.tb3.MultiBrowserTest;
/**
* TB tests for the various builtin widget-based renderers.
@@ -97,7 +98,8 @@ public class WidgetRenderersTest extends MultiBrowserTest {
waitUntilmageSrcEndsWith(image, "window/img/maximize.png");
}
- private void waitUntilmageSrcEndsWith(final WebElement image, final String expectedText) {
+ private void waitUntilmageSrcEndsWith(final WebElement image,
+ final String expectedText) {
waitUntil(new ExpectedCondition<Boolean>() {
@Override
@@ -108,8 +110,9 @@ public class WidgetRenderersTest extends MultiBrowserTest {
@Override
public String toString() {
// Timed out after 10 seconds waiting for ...
- return String.format("image source to update. Supposed to end with '%s' (was: '%s').",
- expectedText, image.getAttribute("src"));
+ return String
+ .format("image source to update. Supposed to end with '%s' (was: '%s').",
+ expectedText, image.getAttribute("src"));
}
});
}
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java
index 92c7f3e6a6..3f0c9dc70b 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/EscalatorBasicClientFeaturesTest.java
@@ -26,7 +26,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.TestBenchElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("escalator")
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java
index d0e076fd3b..ad3e1fe5eb 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicClientFeaturesTest.java
@@ -24,7 +24,7 @@ import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elements.GridElement;
/**
- * Variant of GridBasicFeaturesTest to be used with GridBasicClientFeatures.
+ * GridBasicClientFeatures.
*
* @since
* @author Vaadin Ltd
@@ -83,8 +83,7 @@ public abstract class GridBasicClientFeaturesTest extends GridBasicFeaturesTest
if (composite) {
// Composite requires the basic client features widget for subparts
return ((TestBenchElement) findElement(By
- .vaadin("//TestWidgetComponent")))
- .wrap(GridElement.class);
+ .vaadin("//TestWidgetComponent"))).wrap(GridElement.class);
} else {
return super.getGridElement();
}
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
index 0e339ec0ae..e22fcc422b 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java
@@ -23,23 +23,18 @@ import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
-import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
public abstract class GridBasicFeaturesTest extends MultiBrowserTest {
@Override
- protected DesiredCapabilities getDesiredCapabilities() {
- DesiredCapabilities dCap = super.getDesiredCapabilities();
- if (BrowserUtil.isIE(dCap)) {
- dCap.setCapability("requireWindowFocus", true);
- }
- return super.getDesiredCapabilities();
+ protected boolean requireWindowFocusForIE() {
+ return true;
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java
index 30d6541344..fb12178c9b 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientDataSourcesTest.java
@@ -27,7 +27,7 @@ import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java
index dadaff0eaa..86686225d0 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridClientHeightByRowOnInitTest.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.components.grid.basicfeatures;
import org.junit.Test;
import org.openqa.selenium.By;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@SuppressWarnings("all")
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
index 79eadd03d8..ae9a8fe381 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridDefaultTextRendererTest.java
@@ -25,8 +25,8 @@ import org.junit.Test;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.testbench.elements.ServerClass;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.elementsbase.ServerClass;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java
index 15a1cd6c85..651cd3a763 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridHeightByRowOnInitTest.java
@@ -3,7 +3,7 @@ package com.vaadin.tests.components.grid.basicfeatures;
import org.junit.Test;
import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@SuppressWarnings("all")
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java
index 6a5360f152..66c937aa81 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridSortingIndicatorsTest.java
@@ -20,10 +20,8 @@ import java.io.IOException;
import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-@TestCategory("grid")
public class GridSortingIndicatorsTest extends MultiBrowserTest {
@Test
@@ -35,5 +33,4 @@ public class GridSortingIndicatorsTest extends MultiBrowserTest {
compareScreen("reversedSort");
}
-
}
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java
index a61ed33029..1c0af8921b 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridMultiSortingTest.java
@@ -32,11 +32,7 @@ public class GridMultiSortingTest extends GridBasicFeaturesTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsersToTest = super.getBrowsersToTest();
- /* FireFox and PhantomJS don't know how to press Shift key... */
- browsersToTest.remove(Browser.FIREFOX.getDesiredCapabilities());
- browsersToTest.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return browsersToTest;
+ return super.getBrowsersSupportingShiftClick();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java
index 7e805595c6..2d6f7acffd 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSortingTest.java
@@ -33,11 +33,9 @@ import com.vaadin.shared.data.sort.SortDirection;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
-import com.vaadin.tests.annotations.TestCategory;
import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeatures;
import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeaturesTest;
-@TestCategory("grid")
public class GridSortingTest extends GridBasicFeaturesTest {
private static class SortInfo {
diff --git a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java
index 64b9997dcc..22c9c0d4e3 100644
--- a/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java
+++ b/uitest/src/com/vaadin/tests/components/gridlayout/GridLayoutExtraSpacingTest.java
@@ -25,6 +25,7 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.CssLayoutElement;
import com.vaadin.testbench.elements.GridLayoutElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class GridLayoutExtraSpacingTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java b/uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java
index a9e7a1bca7..4009365814 100644
--- a/uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java
+++ b/uitest/src/com/vaadin/tests/components/javascriptcomponent/JavaScriptPreloadingTest.java
@@ -29,23 +29,11 @@ import org.openqa.selenium.support.ui.WebDriverWait;
import com.vaadin.tests.tb3.MultiBrowserTest;
-/**
- *
- * @since
- * @author Vaadin Ltd
- */
public class JavaScriptPreloadingTest extends MultiBrowserTest {
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
- */
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return browsers;
+ return getBrowsersExcludingPhantomJS();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java b/uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java
index 3cfe30a991..a460290ee0 100644
--- a/uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java
+++ b/uitest/src/com/vaadin/tests/components/menubar/MenuBarTooltipsNearEdgeTest.java
@@ -41,11 +41,8 @@ public class MenuBarTooltipsNearEdgeTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- // Tooltip tests work unreliably on IE due to an issue with the
- // WebDriver (see #13854)
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- return browsers;
+ // Tooltip test is unreliable on IE8
+ return getBrowsersExcludingIE8();
};
@Test
@@ -59,6 +56,5 @@ public class MenuBarTooltipsNearEdgeTest extends MultiBrowserTest {
WebElement tooltip = getTooltipElement();
assertThat(tooltip.getLocation().x, is(lessThan(menuLocation.onPage().x
- tooltip.getSize().getWidth())));
-
}
}
diff --git a/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java b/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java
index eb838c135e..4e23db8eb7 100644
--- a/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java
+++ b/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsAndChromeKeyboardNavigationTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.components.nativeselect;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -26,25 +25,15 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
-/**
- *
- * @since
- * @author Vaadin Ltd
- */
public class NativeSelectsAndChromeKeyboardNavigationTest extends
MultiBrowserTest {
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
- */
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(Browser.CHROME
- .getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.CHROME);
}
@Test
@@ -72,30 +61,17 @@ public class NativeSelectsAndChromeKeyboardNavigationTest extends
}
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.tb3.AbstractTB3Test#getUIClass()
- */
@Override
protected Class<?> getUIClass() {
return NativeSelects.class;
}
- /**
- * @since
- * @param string
- */
private void menuSub(String string) {
getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
.click();
new Actions(getDriver()).moveByOffset(100, 0).build().perform();
}
- /**
- * @since
- * @param string
- */
private void menu(String string) {
getDriver().findElement(By.xpath("//span[text() = '" + string + "']"))
.click();
diff --git a/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java b/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java
index bf81ca4390..194b1bb64b 100644
--- a/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java
+++ b/uitest/src/com/vaadin/tests/components/nativeselect/NativeSelectsFocusAndBlurListenerTests.java
@@ -21,6 +21,7 @@ import org.openqa.selenium.By;
import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.elements.NativeSelectElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class NativeSelectsFocusAndBlurListenerTests extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java b/uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java
index 252efe2824..33ba8d1df0 100644
--- a/uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java
+++ b/uitest/src/com/vaadin/tests/components/notification/NotificationsWaiAriaTest.java
@@ -31,7 +31,7 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
/**
* Unit test class for Notification ARIA (Accessible Rich Internet Applications)
* roles.
- *
+ *
* @since 7.2
* @author Vaadin Ltd
*/
@@ -39,7 +39,7 @@ public class NotificationsWaiAriaTest extends MultiBrowserTest {
/**
* Checks if the ARIA roles are correctly applied to Notification.
- *
+ *
* @since 7.2
* @throws Exception
*/
@@ -80,10 +80,7 @@ public class NotificationsWaiAriaTest extends MultiBrowserTest {
Assert.assertTrue("Expected '- press ESC to close', found " + text,
text.equals("- press ESC to close"));
- try {
- notification.closeNotification();
- } catch (Exception e) {
- }
+ notification.close();
type.selectByText(StringToEnumConverter.enumToString(
NotificationRole.STATUS, null));
@@ -97,10 +94,7 @@ public class NotificationsWaiAriaTest extends MultiBrowserTest {
Assert.assertTrue("Expected attribute 'role' to equal 'status', found "
+ text, text.equals("status"));
- try {
- notification.closeNotification();
- } catch (Exception e) {
- }
+ notification.close();
prefix.clear();
postfix.clear();
diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java b/uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
index a95ceca22b..9bb53d8742 100644
--- a/uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
+++ b/uitest/src/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
@@ -19,6 +19,7 @@ import org.junit.Test;
import org.openqa.selenium.By;
import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class CaptionLeakTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java b/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java
index 1afcabec1d..0890414fea 100644
--- a/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java
+++ b/uitest/src/com/vaadin/tests/components/orderedlayout/VerticalLayoutFocusWithDOMChangesTest.java
@@ -24,6 +24,7 @@ import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.By;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest {
@@ -54,8 +55,8 @@ public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest {
Assert.assertEquals("Just a button", activeElement.getText());
DesiredCapabilities capabilities = getDesiredCapabilities();
- if (capabilities.equals(BrowserUtil.ie(8))
- || capabilities.equals(BrowserUtil.ie(9))) {
+ if (BrowserUtil.isIE8(capabilities)
+ || BrowserUtil.isIE(capabilities, 9)) {
// IE8 and IE9 insert cursor in the start of input instead of end.
Assert.assertEquals(incrementalText + initialText,
tf1.getAttribute("value"));
@@ -86,8 +87,8 @@ public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest {
new Actions(getDriver()).sendKeys(secondText).build().perform();
DesiredCapabilities capabilities = getDesiredCapabilities();
- if (capabilities.equals(BrowserUtil.ie(8))
- || capabilities.equals(BrowserUtil.ie(9))) {
+ if (BrowserUtil.isIE8(capabilities)
+ || BrowserUtil.isIE(capabilities, 9)) {
// IE8 and IE9 insert cursor in the start of input instead of end.
Assert.assertEquals(secondText + firstText,
tf2.getAttribute("value"));
@@ -96,5 +97,4 @@ public class VerticalLayoutFocusWithDOMChangesTest extends MultiBrowserTest {
tf2.getAttribute("value"));
}
}
-
}
diff --git a/uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java b/uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java
index ce528df373..aafd310b70 100644
--- a/uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java
+++ b/uitest/src/com/vaadin/tests/components/popupview/PopupViewResizeWhileOpenTest.java
@@ -20,7 +20,6 @@ import static org.hamcrest.Matchers.greaterThan;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.lessThan;
-import java.util.Collections;
import java.util.List;
import org.junit.Test;
@@ -32,6 +31,7 @@ import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.PopupViewElement;
import com.vaadin.testbench.elements.VerticalLayoutElement;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -75,6 +75,6 @@ public class PopupViewResizeWhileOpenTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.IE8);
}
}
diff --git a/uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java b/uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java
index 897511e41a..68b3748472 100644
--- a/uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/AddSelectionToRemovedRangeTest.java
@@ -16,8 +16,6 @@
package com.vaadin.tests.components.table;
import java.io.IOException;
-import java.util.Arrays;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -29,22 +27,19 @@ import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.By;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class AddSelectionToRemovedRangeTest extends MultiBrowserTest {
@Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.unmodifiableList(Arrays.asList(Browser.CHROME
- .getDesiredCapabilities()));
+ protected boolean requireWindowFocusForIE() {
+ return true;
}
@Override
- protected DesiredCapabilities getDesiredCapabilities() {
- DesiredCapabilities cap = new DesiredCapabilities(
- super.getDesiredCapabilities());
- cap.setCapability("requireWindowFocus", true);
- return cap;
+ public List<DesiredCapabilities> getBrowsersToTest() {
+ return getBrowserCapabilities(Browser.CHROME);
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java b/uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java
index ac4c4cb558..e6b3ca2af4 100644
--- a/uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/ContextMenuSizeTest.java
@@ -19,7 +19,6 @@ import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.lessThan;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -28,25 +27,22 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
* Test for context menu position and size.
- *
+ *
* @author Vaadin Ltd
*/
public class ContextMenuSizeTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
-
// context menu doesn't work in phantom JS and works weirdly with IE8
// and selenium.
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- return browsers;
+ return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
+ Browser.FIREFOX, Browser.CHROME);
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java b/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java
index 026d672044..add7db93f2 100644
--- a/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java
@@ -31,12 +31,7 @@ public class CtrlShiftMultiselectTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- // Shift + click doesn't select all rows correctly on these browsers
- browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
-
- return browsers;
+ return getBrowsersSupportingShiftClick();
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java b/uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java
index ed0cc631b1..bb15301eee 100644
--- a/uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/DisabledSortingTableTest.java
@@ -14,14 +14,17 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
public class DisabledSortingTableTest extends MultiBrowserTest {
+ Class<?> uiClass;
+
@Override
- protected void closeApplication() {
- // need to close manually to use the correct ui class.
- }
+ protected java.lang.Class<?> getUIClass() {
+ return uiClass;
+ };
@Test
public void sortingByEmptyArrayShouldClearSortingIndicator() {
- openTestURL(DisabledSortingTable.class);
+ uiClass = DisabledSortingTable.class;
+ openTestURL();
assertThatFirstCellHasText("0");
@@ -32,13 +35,12 @@ public class DisabledSortingTableTest extends MultiBrowserTest {
sortByEmptyArray();
assertThatFirstCellHasText("4");
-
- openTestURL(DisabledSortingTable.class, "closeApplication");
}
@Test
public void emptySortingClearsIndicatorAndResetsSortingWithSQLContainer() {
- openTestURL(DisabledSortingTableSqlContainer.class);
+ uiClass = DisabledSortingTableSqlContainer.class;
+ openTestURL();
assertThatFirstCellHasText("1");
@@ -49,8 +51,6 @@ public class DisabledSortingTableTest extends MultiBrowserTest {
sortByEmptyArray();
assertThatFirstCellHasText("1");
-
- openTestURL(DisabledSortingTableSqlContainer.class, "closeApplication");
}
private void sortFirstColumnAscending() {
@@ -91,8 +91,8 @@ public class DisabledSortingTableTest extends MultiBrowserTest {
@Override
public String toString() {
// Timed out after 10 seconds waiting for ...
- return String.format("header to get class name '%s'",
- className);
+ return String
+ .format("header to get class name '%s'", className);
}
});
}
diff --git a/uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java b/uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java
index b4b8d93fbe..b254d27b58 100644
--- a/uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/MemoryLeakTableTest.java
@@ -26,21 +26,18 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TableElement;
-import com.vaadin.tests.tb3.AbstractTB3Test.RunLocally;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
/**
* Test case creating and deleting table component in a loop, testing memory
* lead in Table component. This test should not be used in auto testing.
- *
+ *
* To test memory consuption. Run test in debug mode. Take memory snapshot in
* Profiler in browser before and after the loop. Compare memory consuption.
- *
+ *
* @since
* @author Vaadin Ltd
*/
-@RunLocally(Browser.CHROME)
public class MemoryLeakTableTest extends MultiBrowserTest {
/**
diff --git a/uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java b/uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java
index f6c6ca3ddc..175cbac9d5 100644
--- a/uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/SelectAllRowsTest.java
@@ -18,7 +18,6 @@ package com.vaadin.tests.components.table;
import static com.vaadin.tests.components.table.SelectAllRows.TOTAL_NUMBER_OF_ROWS;
import static org.junit.Assert.assertEquals;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -51,12 +50,7 @@ public class SelectAllRowsTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- // Pressing Shift modifier key does not work with Firefox and PhantomJS
- ArrayList<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- super.getBrowsersToTest());
- browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return browsers;
+ return getBrowsersSupportingShiftClick();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java b/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java
index 8bace7e23a..3de2ceb200 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java
+++ b/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthIE8Test.java
@@ -1,26 +1,23 @@
package com.vaadin.tests.components.table;
-import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.testbench.elements.TableElement;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.TableElement;
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.tests.tb3.MultiBrowserTest;
public class TableColumnResizeContentsWidthIE8Test extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsersToTest = new ArrayList<DesiredCapabilities>();
-
- browsersToTest.add(Browser.IE8.getDesiredCapabilities());
-
- return browsersToTest;
+ return getBrowserCapabilities(Browser.IE8);
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java b/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java
index 5faee3cc59..9072d13263 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/TableColumnResizeContentsWidthTest.java
@@ -15,9 +15,10 @@
*/
package com.vaadin.tests.components.table;
-import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.testbench.elements.TableElement;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import static org.junit.Assert.assertEquals;
+
+import java.util.List;
+
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
@@ -26,9 +27,9 @@ import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.TableElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
/**
* Tests that components within table cells get resized when their column gets
@@ -40,13 +41,7 @@ public class TableColumnResizeContentsWidthTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsersToTest = super.getBrowsersToTest();
-
- // Can't get IE8 to hit the resizer, extracted IE8 to it's own test
- // class.
- browsersToTest.remove(Browser.IE8.getDesiredCapabilities());
-
- return browsersToTest;
+ return getBrowsersExcludingIE8();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java b/uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java
index fc3fd2610c..4ab42a5f94 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/TableNavigationPageDownTest.java
@@ -18,7 +18,6 @@ package com.vaadin.tests.components.table;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -31,6 +30,7 @@ import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.testbench.elements.TableElement;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -47,15 +47,11 @@ public class TableNavigationPageDownTest extends MultiBrowserTest {
private WebElement wrapper;
-
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
// Sending PageDown has no effect on PhantomJS. On IE focus
// in Table is often lost, so default scrolling happens on PageDown.
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getBrowsersExcludingIE());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return browsers;
+ return getBrowserCapabilities(Browser.FIREFOX, Browser.CHROME);
}
@Override
@@ -73,7 +69,7 @@ public class TableNavigationPageDownTest extends MultiBrowserTest {
}
private void sendKeyUntilEndIsReached(Keys key) {
- while(true) {
+ while (true) {
int lastVisibleRowNumber = getLastVisibleRowNumber();
sendKey(key);
@@ -116,7 +112,8 @@ public class TableNavigationPageDownTest extends MultiBrowserTest {
@Test
public void navigatePageDown() {
- // Scroll to a point where you can reach the bottom with a couple of page downs.
+ // Scroll to a point where you can reach the bottom with a couple of
+ // page downs.
// Can't use v-table-body height because lower rows haven't been
// fetched yet.
testBenchElement(wrapper).scroll(
@@ -132,7 +129,8 @@ public class TableNavigationPageDownTest extends MultiBrowserTest {
@Test
public void navigatePageUp() {
- // Scroll to a point where you can reach the top with a couple of page ups.
+ // Scroll to a point where you can reach the top with a couple of page
+ // ups.
testBenchElement(wrapper).scroll((int) (2.8 * pageHeight));
waitForScrollToFinish();
diff --git a/uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java b/uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java
index 9242bae3d8..d390b57823 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/TableScrollAfterAddRowTest.java
@@ -31,10 +31,6 @@ import com.vaadin.testbench.screenshot.ImageComparison;
import com.vaadin.testbench.screenshot.ReferenceNameGenerator;
import com.vaadin.tests.tb3.MultiBrowserTest;
-/**
- *
- * @author Vaadin Ltd
- */
public class TableScrollAfterAddRowTest extends MultiBrowserTest {
@Before
@@ -45,6 +41,7 @@ public class TableScrollAfterAddRowTest extends MultiBrowserTest {
@Test
public void testJumpToFirstRow() throws InterruptedException {
jumpToFifteenthRow();
+ sleep(300);
jumpToFirstRow();
assertEquals("0", getCurrentPageFirstItemIndex());
}
diff --git a/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java b/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java
index 3e12333a6d..14994f8b02 100644
--- a/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java
@@ -88,8 +88,6 @@ public class TableWithPollingTest extends MultiBrowserTest {
// Selenium has issues with drag-and-drop on IE8 making it impossible to
// drag a target as small as the table resizer. So we'll just have to
// ignore IE8 completely.
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- return browsers;
+ return getBrowsersExcludingIE8();
}
}
diff --git a/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
index df01800180..f0325ed77b 100644
--- a/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
+++ b/uitest/src/com/vaadin/tests/components/table/UnnecessaryScrollbarWhenZoomingTest.java
@@ -34,6 +34,7 @@ import org.openqa.selenium.support.ui.WebDriverWait;
import com.vaadin.testbench.By;
import com.vaadin.testbench.commands.TestBenchCommandExecutor;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class UnnecessaryScrollbarWhenZoomingTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java b/uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java
index 12ae03080b..52003bbac9 100644
--- a/uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java
+++ b/uitest/src/com/vaadin/tests/components/tabsheet/TabSheetFocusedTabTest.java
@@ -33,11 +33,9 @@ public class TabSheetFocusedTabTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
// PhantomJS doesn't send Focus / Blur events when clicking or
// navigating with keyboard
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return browsers;
+ return getBrowsersExcludingPhantomJS();
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java b/uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
index 40ec937c1c..55466130ad 100644
--- a/uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
+++ b/uitest/src/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.components.ui;
-import java.util.Arrays;
import java.util.List;
import org.junit.Assert;
@@ -24,6 +23,7 @@ import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class DynamicViewportEmptyTest extends MultiBrowserTest {
@@ -35,7 +35,7 @@ public class DynamicViewportEmptyTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Arrays.asList(Browser.CHROME.getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.CHROME);
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java b/uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java
index fca312ba7e..43422feb58 100644
--- a/uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java
+++ b/uitest/src/com/vaadin/tests/components/ui/TextAreaEventPropagationModifierKeysTest.java
@@ -25,6 +25,7 @@ import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.TextAreaElement;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class TextAreaEventPropagationModifierKeysTest extends MultiBrowserTest {
@@ -67,17 +68,9 @@ public class TextAreaEventPropagationModifierKeysTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- // Can't handle ctrl
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
-
- // Can't handle shift or ctrl
- browsers.remove(Browser.IE9.getDesiredCapabilities());
- browsers.remove(Browser.IE10.getDesiredCapabilities());
- browsers.remove(Browser.IE11.getDesiredCapabilities());
- return browsers;
-
+ // IE8 and Firefox can't handle ctrl.
+ // IE9-11 has issues with shift and ctrl
+ return getBrowserCapabilities(Browser.CHROME, Browser.PHANTOMJS);
}
@Override
diff --git a/uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java b/uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java
index 46d79a2ce5..cf6a6ac821 100644
--- a/uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java
+++ b/uitest/src/com/vaadin/tests/components/uitest/UIScrollingTest.java
@@ -22,7 +22,6 @@ import java.util.List;
import org.junit.Test;
import org.openqa.selenium.By;
-import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.ButtonElement;
@@ -58,10 +57,7 @@ public class UIScrollingTest extends MultiBrowserTest {
notification.findElement(By.tagName("h1")).getText());
// attempt to close the notification
- try {
- notification.closeNotification();
- } catch (StaleElementReferenceException e) {
- }
+ notification.close();
WebElement ui = findElement(By.className("v-ui"));
testBenchElement(ui).scroll(1020);
@@ -74,9 +70,7 @@ public class UIScrollingTest extends MultiBrowserTest {
assertEquals("Scrolled to 1020 px",
notification.findElement(By.tagName("h1")).getText());
- try {
- notification.closeNotification();
- } catch (StaleElementReferenceException e) {
- }
+ notification.close();
+
}
}
diff --git a/uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java b/uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java
index ae966a5b07..f1d5432344 100644
--- a/uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java
+++ b/uitest/src/com/vaadin/tests/components/upload/TestFileUploadTest.java
@@ -41,9 +41,7 @@ public class TestFileUploadTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
// PhantomJS fails to upload files for unknown reasons
- List<DesiredCapabilities> b = super.getBrowsersToTest();
- b.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return b;
+ return getBrowsersExcludingPhantomJS();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java b/uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java
index 7cca2ce4d0..df7b7cad0c 100644
--- a/uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java
+++ b/uitest/src/com/vaadin/tests/components/window/CloseShortcutTest.java
@@ -24,11 +24,13 @@ import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.interactions.Actions;
+import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.testbench.elements.WindowElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -101,12 +103,9 @@ public class CloseShortcutTest extends MultiBrowserTest {
public void testOtherWithAll() {
attemptOtherShortcut();
// TODO: remove this check once #14902 has been fixed
- if (!Browser.IE8.getDesiredCapabilities().equals(
- getDesiredCapabilities())
- && !Browser.FIREFOX.getDesiredCapabilities().equals(
- getDesiredCapabilities())
- && !Browser.CHROME.getDesiredCapabilities().equals(
- getDesiredCapabilities())) {
+ DesiredCapabilities cap = getDesiredCapabilities();
+ if ((BrowserUtil.isIE(cap) && !BrowserUtil.isIE8(cap))
+ || BrowserUtil.isPhantomJS(cap)) {
ensureWindowClosed();
}
}
@@ -123,8 +122,7 @@ public class CloseShortcutTest extends MultiBrowserTest {
public void testCtrlWithAll() {
attemptCtrlShortcut();
// TODO: remove this check once #14902 has been fixed
- if (Browser.PHANTOMJS.getDesiredCapabilities().equals(
- getDesiredCapabilities())) {
+ if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
ensureWindowClosed();
}
}
@@ -141,9 +139,8 @@ public class CloseShortcutTest extends MultiBrowserTest {
public void testShiftWithAll() {
attemptShiftShortcut();
// TODO: remove this check once #14902 has been fixed
- if (getBrowsersExcludingIE().contains(getDesiredCapabilities())
- || Browser.IE8.getDesiredCapabilities().equals(
- getDesiredCapabilities())) {
+ DesiredCapabilities capabilities = getDesiredCapabilities();
+ if (!BrowserUtil.isIE(capabilities) || BrowserUtil.isIE8(capabilities)) {
ensureWindowClosed();
}
}
diff --git a/uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java b/uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java
index 335590437d..e0cc240d6d 100644
--- a/uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java
+++ b/uitest/src/com/vaadin/tests/components/window/SubWindowsTextSelectionTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.components.window;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
@@ -27,6 +26,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -48,18 +48,9 @@ public class SubWindowsTextSelectionTest extends MultiBrowserTest {
return SubWindows.class;
}
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.tb3.MultiBrowserTest#getBrowsersToTest()
- */
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- ArrayList<DesiredCapabilities> list = new ArrayList<DesiredCapabilities>();
- list.add(BrowserUtil.ie(9));
- list.add(BrowserUtil.ie(10));
- list.add(BrowserUtil.ie(11));
- return list;
+ return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11);
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java b/uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java
index 18cb012cb2..4e9bffe3e8 100644
--- a/uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java
+++ b/uitest/src/com/vaadin/tests/components/window/WindowBGColorChameleonIE8Test.java
@@ -7,7 +7,7 @@ import java.util.List;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class WindowBGColorChameleonIE8Test extends SingleBrowserTest {
@@ -19,9 +19,7 @@ public class WindowBGColorChameleonIE8Test extends SingleBrowserTest {
*/
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
-
- return Arrays.asList(MultiBrowserTest.Browser.IE8
- .getDesiredCapabilities());
+ return Arrays.asList(Browser.IE8.getDesiredCapabilities());
}
@Test
diff --git a/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java b/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java
index 0bd6c9fa44..3cc310eeb4 100644
--- a/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java
+++ b/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java
@@ -17,7 +17,6 @@ package com.vaadin.tests.components.window;
import java.awt.AWTException;
import java.io.IOException;
-import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
@@ -61,9 +60,6 @@ public class WindowShadowTest extends MultiBrowserTest {
// ignore this browser in testing
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- return browsers;
+ return getBrowsersExcludingIE8();
}
} \ No newline at end of file
diff --git a/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java b/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
index 90ea645ab8..d0eee99009 100644
--- a/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
+++ b/uitest/src/com/vaadin/tests/debug/PushVersionInfoTest.java
@@ -24,7 +24,7 @@ import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
diff --git a/uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java b/uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java
index 8a1fbde245..0d0b388541 100644
--- a/uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java
+++ b/uitest/src/com/vaadin/tests/extensions/SetThemeAndResponsiveLayoutTest.java
@@ -43,7 +43,7 @@ public class SetThemeAndResponsiveLayoutTest extends MultiBrowserTest {
public List<DesiredCapabilities> getBrowsersToTest() {
// Seems like stylesheet onload is not fired on PhantomJS
// https://github.com/ariya/phantomjs/issues/12332
- return super.getBrowsersExcludingPhantomJS();
+ return getBrowsersExcludingPhantomJS();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
index bdf8603c48..7b18053052 100644
--- a/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
+++ b/uitest/src/com/vaadin/tests/fieldgroup/BasicCrudGridEditorRowTest.java
@@ -27,7 +27,7 @@ import com.vaadin.testbench.elements.DateFieldElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridEditorElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("grid")
diff --git a/uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java b/uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java
index 073975a509..5dd59a8245 100644
--- a/uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java
+++ b/uitest/src/com/vaadin/tests/integration/AbstractIntegrationTest.java
@@ -15,8 +15,8 @@
*/
package com.vaadin.tests.integration;
+import com.vaadin.testbench.parallel.TestNameSuffix;
import com.vaadin.tests.tb3.PrivateTB3Configuration;
-import com.vaadin.tests.tb3.TestNameSuffix;
/**
* Base class for integration tests. Integration tests use the
diff --git a/uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java b/uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java
index bfe38b8865..33adb622c0 100644
--- a/uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java
+++ b/uitest/src/com/vaadin/tests/layouts/IE8MeasuredSizeMemoryLeakTest.java
@@ -15,7 +15,6 @@
*/
package com.vaadin.tests.layouts;
-import java.util.Collections;
import java.util.List;
import org.junit.Assert;
@@ -23,6 +22,7 @@ import org.junit.Test;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class IE8MeasuredSizeMemoryLeakTest extends MultiBrowserTest {
@@ -49,6 +49,6 @@ public class IE8MeasuredSizeMemoryLeakTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(Browser.IE8.getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.IE8);
}
}
diff --git a/uitest/src/com/vaadin/tests/push/BarInUIDLTest.java b/uitest/src/com/vaadin/tests/push/BarInUIDLTest.java
index 4013494c49..7bd1de5803 100644
--- a/uitest/src/com/vaadin/tests/push/BarInUIDLTest.java
+++ b/uitest/src/com/vaadin/tests/push/BarInUIDLTest.java
@@ -19,7 +19,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.WebElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/BasicPushTest.java b/uitest/src/com/vaadin/tests/push/BasicPushTest.java
index fd34a1f192..5bac54f0f7 100644
--- a/uitest/src/com/vaadin/tests/push/BasicPushTest.java
+++ b/uitest/src/com/vaadin/tests/push/BasicPushTest.java
@@ -20,7 +20,7 @@ import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedCondition;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.AbstractTB3Test;
import com.vaadin.tests.tb3.MultiBrowserTest;
diff --git a/uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java b/uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java
index 03b34655a1..654108f8f9 100644
--- a/uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java
+++ b/uitest/src/com/vaadin/tests/push/EnableDisablePushTest.java
@@ -20,7 +20,7 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.openqa.selenium.WebElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java b/uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java
index 4b142500f7..344f551f00 100644
--- a/uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java
+++ b/uitest/src/com/vaadin/tests/push/IdlePushChannelTest.java
@@ -18,7 +18,7 @@ package com.vaadin.tests.push;
import org.junit.Assert;
import org.junit.Test;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
index 396160cc7d..d42352161e 100644
--- a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
@@ -22,7 +22,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.testbench.elements.NativeSelectElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java b/uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java
index 475fa2165f..501d946fcc 100644
--- a/uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushConfigurationWebSocketTest.java
@@ -28,13 +28,7 @@ public class PushConfigurationWebSocketTest extends PushConfigurationTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
-
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- browsers.remove(Browser.IE9.getDesiredCapabilities());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
-
- return browsers;
+ return getBrowsersSupportingWebSocket();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java b/uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java
index 1f6e181c89..2683868db5 100644
--- a/uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushErrorHandlingTest.java
@@ -21,7 +21,8 @@ import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.LabelElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/PushFromInitTest.java b/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
index a285d91e92..fe7ebebef1 100644
--- a/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java b/uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java
index e37bd32832..23255aadea 100644
--- a/uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushLargeDataLongPollingTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java b/uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java
index 058ac6cc92..0c00cf116f 100644
--- a/uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushLargeDataStreamingTest.java
@@ -19,7 +19,7 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.support.ui.ExpectedConditions;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java b/uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java
index 42babb00d0..47773b87b6 100644
--- a/uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java
+++ b/uitest/src/com/vaadin/tests/push/RefreshCloseConnectionTest.java
@@ -17,13 +17,12 @@ package com.vaadin.tests.push;
import java.util.List;
-import com.vaadin.tests.annotations.TestCategory;
import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import com.vaadin.tests.tb3.WebsocketTest;
@TestCategory("push")
public class RefreshCloseConnectionTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java b/uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java
index a639f7dbe3..69e5de960a 100644
--- a/uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java
+++ b/uitest/src/com/vaadin/tests/push/SendMultibyteCharactersTest.java
@@ -1,10 +1,11 @@
package com.vaadin.tests.push;
+import org.junit.Test;
+
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.TextAreaElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
-import org.junit.Test;
@TestCategory("push")
public abstract class SendMultibyteCharactersTest extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/push/TogglePushTest.java b/uitest/src/com/vaadin/tests/push/TogglePushTest.java
index 3ca12fdd84..d93802125c 100644
--- a/uitest/src/com/vaadin/tests/push/TogglePushTest.java
+++ b/uitest/src/com/vaadin/tests/push/TogglePushTest.java
@@ -19,7 +19,7 @@ import org.junit.Assert;
import org.junit.Test;
import org.openqa.selenium.WebElement;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java b/uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java
index b4af11b864..35d0f0ad5f 100644
--- a/uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java
+++ b/uitest/src/com/vaadin/tests/push/TrackMessageSizeUITest.java
@@ -18,7 +18,7 @@ package com.vaadin.tests.push;
import org.junit.Assert;
import org.junit.Test;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
@TestCategory("push")
diff --git a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
index 3cec3a7bd5..99ae88805a 100644
--- a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
+++ b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
@@ -16,15 +16,9 @@
package com.vaadin.tests.tb3;
-import static com.vaadin.tests.tb3.TB3Runner.localWebDriverIsUsed;
-
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
import java.lang.reflect.Field;
import java.net.URL;
import java.util.ArrayList;
@@ -38,22 +32,17 @@ import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicHttpEntityEnclosingRequest;
-import org.junit.After;
-import org.junit.Before;
import org.junit.Rule;
import org.junit.runner.RunWith;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
-import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
-import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.interactions.HasInputDevices;
import org.openqa.selenium.interactions.Keyboard;
import org.openqa.selenium.interactions.Mouse;
import org.openqa.selenium.interactions.internal.Coordinates;
import org.openqa.selenium.internal.Locatable;
-import org.openqa.selenium.remote.BrowserType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.RemoteWebDriver;
@@ -65,17 +54,17 @@ import com.google.gwt.thirdparty.guava.common.base.Joiner;
import com.thoughtworks.selenium.webdriven.WebDriverBackedSelenium;
import com.vaadin.server.LegacyApplication;
import com.vaadin.server.UIProvider;
-import com.vaadin.testbench.TestBench;
import com.vaadin.testbench.TestBenchDriverProxy;
import com.vaadin.testbench.TestBenchElement;
-import com.vaadin.testbench.TestBenchTestCase;
-import com.vaadin.testbench.elements.AbstractElement;
+import com.vaadin.testbench.annotations.BrowserConfiguration;
import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.TableElement;
import com.vaadin.testbench.elements.VerticalLayoutElement;
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.parallel.ParallelTest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
-import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
import com.vaadin.ui.UI;
import elemental.json.JsonObject;
@@ -97,8 +86,8 @@ import elemental.json.impl.JsonUtil;
*
* @author Vaadin Ltd
*/
-@RunWith(value = TB3Runner.class)
-public abstract class AbstractTB3Test extends TestBenchTestCase {
+@RunWith(TB3Runner.class)
+public abstract class AbstractTB3Test extends ParallelTest {
@Rule
public RetryOnFail retry = new RetryOnFail();
@@ -118,17 +107,9 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
*/
private static final int BROWSER_TIMEOUT_IN_MS = 30 * 1000;
- private static final int BROWSER_INIT_ATTEMPTS = 5;
-
- private DesiredCapabilities desiredCapabilities;
-
private boolean debug = false;
private boolean push = false;
- {
- // Default browser to run on unless setDesiredCapabilities is called
- desiredCapabilities = Browser.FIREFOX.getDesiredCapabilities();
- }
static {
com.vaadin.testbench.Parameters
@@ -141,61 +122,14 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
*
* @throws Exception
*/
- @Before
+ @Override
public void setup() throws Exception {
- setupDriver();
- }
-
- /**
- * Creates and configure the web driver to be used for the test. By default
- * creates a remote web driver which connects to {@link #getHubURL()} and
- * selects a browser based on {@link #getDesiredCapabilities()}.
- *
- * This method MUST call {@link #setDriver(WebDriver)} with the newly
- * generated driver.
- *
- * @throws Exception
- * If something goes wrong
- */
- protected void setupDriver() throws Exception {
- DesiredCapabilities capabilities;
-
- Browser runLocallyBrowser = getRunLocallyBrowser();
- if (runLocallyBrowser != null) {
- if (System.getenv().containsKey("TEAMCITY_VERSION")) {
- throw new RuntimeException(
- "@RunLocally is not supported for tests run on the build server");
- }
- capabilities = runLocallyBrowser.getDesiredCapabilities();
- setupLocalDriver(capabilities);
- } else {
- capabilities = getDesiredCapabilities();
-
- for (int i = 1; i <= BROWSER_INIT_ATTEMPTS; i++) {
- try {
- if (localWebDriverIsUsed()) {
- setupLocalDriver(capabilities);
- } else {
- setupRemoteDriver(capabilities);
- }
- break;
- } catch (Exception e) {
- System.err
- .println("Browser startup for " + capabilities
- + " failed on attempt " + i + ": "
- + e.getMessage());
- if (i == BROWSER_INIT_ATTEMPTS) {
- throw e;
- }
- }
- }
-
- }
+ super.setup();
int w = SCREENSHOT_WIDTH;
int h = SCREENSHOT_HEIGHT;
- if (BrowserUtil.isIE8(capabilities)) {
+ if (BrowserUtil.isIE8(super.getDesiredCapabilities())) {
// IE8 gets size wrong, who would have guessed...
w += 4;
h += 4;
@@ -208,12 +142,16 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
- protected Browser getRunLocallyBrowser() {
- RunLocally runLocally = getClass().getAnnotation(RunLocally.class);
- if (runLocally != null) {
- return runLocally.value();
- } else {
- return null;
+ /**
+ * Method for closing the tested application.
+ */
+ protected void closeApplication() {
+ if (driver != null) {
+ try {
+ openTestURL("closeApplication");
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
}
@@ -276,47 +214,6 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
waitUntilRowIsVisible(table, rowToWait);
}
- @Retention(RetentionPolicy.RUNTIME)
- @Target(ElementType.TYPE)
- public @interface RunLocally {
- public Browser value() default Browser.FIREFOX;
- }
-
- /**
- * Creates a {@link WebDriver} instance used for running the test locally
- * for debug purposes. Used only when {@link #runLocally()} is overridden to
- * return true;
- */
- protected abstract void setupLocalDriver(
- DesiredCapabilities desiredCapabilities);
-
- /**
- * Creates a {@link WebDriver} instance used for running the test remotely.
- *
- * @since
- * @param capabilities
- * the type of browser needed
- * @throws Exception
- */
- private void setupRemoteDriver(DesiredCapabilities capabilities)
- throws Exception {
- if (BrowserUtil.isIE(capabilities)) {
- if (requireWindowFocusForIE()) {
- capabilities.setCapability(
- InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
- }
- if (!usePersistentHoverForIE()) {
- capabilities.setCapability(
- InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,
- false);
- }
- }
-
- WebDriver dr = TestBench.createDriver(new RemoteWebDriver(new URL(
- getHubURL()), capabilities));
- setDriver(dr);
- }
-
/**
* Opens the given test (defined by {@link #getTestUrl()}, optionally with
* debug window and/or push (depending on {@link #isDebug()} and
@@ -334,7 +231,7 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
protected void openTestURL(Class<?> uiClass, String... parameters) {
String url = getTestURL(uiClass);
- if(parameters.length > 0) {
+ if (parameters.length > 0) {
url += "?" + Joiner.on("&").join(parameters);
}
@@ -352,29 +249,15 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
/**
* Returns the full URL to be used for the test for the provided UI class.
- *
+ *
* @return the full URL for the test
*/
protected String getTestURL(Class<?> uiClass) {
- return StringUtils.strip(getBaseURL(), "/") + getDeploymentPath(uiClass);
+ return StringUtils.strip(getBaseURL(), "/")
+ + getDeploymentPath(uiClass);
}
/**
- *
- * @return the location (URL) of the TB hub
- */
- protected String getHubURL() {
- return "http://" + getHubHostname() + ":4444/wd/hub";
- }
-
- /**
- * Used for building the hub URL to use for the test
- *
- * @return the host name of the TestBench hub
- */
- protected abstract String getHubHostname();
-
- /**
* Used to determine what URL to initially open for the test
*
* @return the host name of development server
@@ -401,59 +284,13 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
*
* @return The browsers to run the test on
*/
+ @BrowserConfiguration
public List<DesiredCapabilities> getBrowsersToTest() {
return Collections.singletonList(Browser.FIREFOX
.getDesiredCapabilities());
}
/**
- * Used to determine which capabilities should be used when setting up a
- * {@link WebDriver} for this test. Typically set by a test runner or left
- * at its default (Firefox 24). If you want to run a test on a single
- * browser other than Firefox 24 you can override this method.
- *
- * @return the requested browser capabilities
- */
- protected DesiredCapabilities getDesiredCapabilities() {
- return desiredCapabilities;
- }
-
- /**
- * Sets the requested browser capabilities (typically browser name and
- * version)
- *
- * @param desiredCapabilities
- */
- public void setDesiredCapabilities(DesiredCapabilities desiredCapabilities) {
- // Make a copy as the desired capabilities can come from a shared,
- // static resource. This will cause all kinds of problems if some test
- // modifies the capabilities
- this.desiredCapabilities = new DesiredCapabilities(desiredCapabilities);
- }
-
- /**
- * Shuts down the driver after the test has been completed
- *
- * @throws Exception
- */
- @After
- public void tearDown() throws Exception {
- if (driver != null) {
- try {
- closeApplication();
- } catch (Exception e) {
- e.printStackTrace();
- }
- driver.quit();
- }
- driver = null;
- }
-
- protected void closeApplication() {
- openTestURL("closeApplication");
- }
-
- /**
* Finds an element based on the part of a TB2 style locator following the
* :: (e.g. vaadin=runLabelModes::PID_Scheckboxaction-Enabled/domChild[0] ->
* PID_Scheckboxaction-Enabled/domChild[0]).
@@ -913,264 +750,6 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
/**
- * Provides helper method for selecting the browser to run on
- *
- * @author Vaadin Ltd
- */
- public static class BrowserUtil {
- /**
- * Gets the capabilities for Safari of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given Safari version
- */
- public static DesiredCapabilities safari(int version) {
- DesiredCapabilities c = DesiredCapabilities.safari();
- c.setPlatform(Platform.MAC);
- c.setVersion("" + version);
- return c;
- }
-
- /**
- * Gets the capabilities for Chrome of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given Chrome version
- */
- public static DesiredCapabilities chrome(int version) {
- DesiredCapabilities c = DesiredCapabilities.chrome();
- c.setVersion("" + version);
- c.setPlatform(Platform.VISTA);
- return c;
- }
-
- /**
- * Gets the capabilities for Opera of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given Opera version
- */
- public static DesiredCapabilities opera(int version) {
- DesiredCapabilities c = DesiredCapabilities.opera();
- c.setVersion("" + version);
- c.setPlatform(Platform.XP);
- return c;
- }
-
- /**
- * Gets the capabilities for Firefox of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given Firefox version
- */
- public static DesiredCapabilities firefox(int version) {
- DesiredCapabilities c = DesiredCapabilities.firefox();
- c.setVersion("" + version);
- c.setPlatform(Platform.XP);
- return c;
- }
-
- /**
- * Gets the capabilities for Internet Explorer of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given Internet Explorer version
- */
- public static DesiredCapabilities ie(int version) {
- DesiredCapabilities c = DesiredCapabilities.internetExplorer();
- c.setVersion("" + version);
- c.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION,
- true);
- return c;
- }
-
- /**
- * Gets the capabilities for PhantomJS of the given version
- *
- * @param version
- * the major version
- * @return an object describing the capabilities required for running a
- * test on the given PhantomJS version
- */
- public static DesiredCapabilities phantomJS(int version) {
- DesiredCapabilities c = DesiredCapabilities.phantomjs();
- c.setPlatform(Platform.LINUX);
- c.setVersion("" + version);
- return c;
- }
-
- /**
- * Checks if the given capabilities refer to Internet Explorer 8
- *
- * @param capabilities
- * @param version
- * @return true if the capabilities refer to IE8, false otherwise
- */
- public static boolean isIE8(DesiredCapabilities capabilities) {
- return isIE(8, capabilities);
- }
-
- /**
- * Checks if the given capabilities refer to Internet Explorer of the
- * given version
- *
- * @param capabilities
- * @param version
- * @return true if the capabilities refer to IE of the given version,
- * false otherwise
- */
- public static boolean isIE(int version, DesiredCapabilities capabilities) {
- return isIE(capabilities)
- && ("" + version).equals(capabilities.getVersion());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to Internet Explorer, false
- * otherwise
- */
- public static boolean isIE(DesiredCapabilities capabilities) {
- return BrowserType.IE.equals(capabilities.getBrowserName());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to Chrome, false otherwise
- */
- public static boolean isChrome(DesiredCapabilities capabilities) {
- return BrowserType.CHROME.equals(capabilities.getBrowserName());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to Opera, false otherwise
- */
- public static boolean isOpera(DesiredCapabilities capabilities) {
- return BrowserType.OPERA.equals(capabilities.getBrowserName());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to Safari, false otherwise
- */
- public static boolean isSafari(DesiredCapabilities capabilities) {
- return BrowserType.SAFARI.equals(capabilities.getBrowserName());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to Firefox, false otherwise
- */
- public static boolean isFirefox(DesiredCapabilities capabilities) {
- return BrowserType.FIREFOX.equals(capabilities.getBrowserName());
- }
-
- /**
- * @param capabilities
- * The capabilities to check
- * @return true if the capabilities refer to PhantomJS, false otherwise
- */
- public static boolean isPhantomJS(DesiredCapabilities capabilities) {
- return BrowserType.PHANTOMJS.equals(capabilities.getBrowserName());
- }
-
- /**
- * Returns a human readable identifier of the given browser. Used for
- * test naming and screenshots
- *
- * @param capabilities
- * @return a human readable string describing the capabilities
- */
- public static String getBrowserIdentifier(
- DesiredCapabilities capabilities) {
- if (isIE(capabilities)) {
- return "InternetExplorer";
- } else if (isFirefox(capabilities)) {
- return "Firefox";
- } else if (isChrome(capabilities)) {
- return "Chrome";
- } else if (isSafari(capabilities)) {
- return "Safari";
- } else if (isOpera(capabilities)) {
- return "Opera";
- } else if (isPhantomJS(capabilities)) {
- return "PhantomJS";
- }
-
- return capabilities.getBrowserName();
- }
-
- /**
- * Returns a human readable identifier of the platform described by the
- * given capabilities. Used mainly for screenshots
- *
- * @param capabilities
- * @return a human readable string describing the platform
- */
- public static String getPlatform(DesiredCapabilities capabilities) {
- if (capabilities.getPlatform() == Platform.WIN8
- || capabilities.getPlatform() == Platform.WINDOWS
- || capabilities.getPlatform() == Platform.VISTA
- || capabilities.getPlatform() == Platform.XP) {
- return "Windows";
- } else if (capabilities.getPlatform() == Platform.MAC) {
- return "Mac";
- }
- return capabilities.getPlatform().toString();
- }
-
- /**
- * Returns a string which uniquely (enough) identifies this browser.
- * Used mainly in screenshot names.
- *
- * @param capabilities
- *
- * @return a unique string for each browser
- */
- public static String getUniqueIdentifier(
- DesiredCapabilities capabilities) {
- return getUniqueIdentifier(getPlatform(capabilities),
- getBrowserIdentifier(capabilities),
- capabilities.getVersion());
- }
-
- /**
- * Returns a string which uniquely (enough) identifies this browser.
- * Used mainly in screenshot names.
- *
- * @param capabilities
- *
- * @return a unique string for each browser
- */
- public static String getUniqueIdentifier(
- DesiredCapabilities capabilities, String versionOverride) {
- return getUniqueIdentifier(getPlatform(capabilities),
- getBrowserIdentifier(capabilities), versionOverride);
- }
-
- private static String getUniqueIdentifier(String platform,
- String browser, String version) {
- return platform + "_" + browser + "_" + version;
- }
-
- }
-
- /**
* Called by the test runner whenever there is an exception in the test that
* will cause termination of the test
*
@@ -1342,17 +921,4 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
protected void click(CheckBoxElement checkbox) {
checkbox.findElement(By.xpath("input")).click();
}
-
- @Override
- public boolean isElementPresent(Class<? extends AbstractElement> clazz) {
- // This is a bug in TB4 as isElementPresent(..) should just return true
- // or false but can also throw exceptions. The problem is possibly if
- // this is run when the Vaadin app is not initialized yet
- try {
- return super.isElementPresent(clazz);
- } catch (NoSuchElementException e) {
- return false;
- }
- }
-
}
diff --git a/uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java b/uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java
index 6736bc3990..128214de1e 100644
--- a/uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java
+++ b/uitest/src/com/vaadin/tests/tb3/AffectedTB3Tests.java
@@ -1,5 +1,7 @@
package com.vaadin.tests.tb3;
+import java.io.IOException;
+
import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError;
@@ -18,7 +20,8 @@ public class AffectedTB3Tests {
public static class AffectedTB3TestSuite extends TB3TestSuite {
- public AffectedTB3TestSuite(Class<?> klass) throws InitializationError {
+ public AffectedTB3TestSuite(Class<?> klass) throws InitializationError,
+ IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" },
new AffectedTB3TestLocator());
diff --git a/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java b/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
index b7cc8284d1..338855ba1c 100644
--- a/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
+++ b/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
@@ -16,6 +16,8 @@
package com.vaadin.tests.tb3;
+import java.io.IOException;
+
import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError;
@@ -32,7 +34,8 @@ public class AllTB3Tests {
public static class AllTB3TestsSuite extends TB3TestSuite {
- public AllTB3TestsSuite(Class<?> klass) throws InitializationError {
+ public AllTB3TestsSuite(Class<?> klass) throws InitializationError,
+ IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" });
}
diff --git a/uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java b/uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java
index 2200566b84..3c7030b1e9 100644
--- a/uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java
+++ b/uitest/src/com/vaadin/tests/tb3/ChangedTB3Tests.java
@@ -15,6 +15,8 @@
*/
package com.vaadin.tests.tb3;
+import java.io.IOException;
+
import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError;
@@ -31,7 +33,8 @@ import com.vaadin.tests.tb3.ChangedTB3Tests.ChangedTB3TestsSuite;
@RunWith(ChangedTB3TestsSuite.class)
public class ChangedTB3Tests {
public static class ChangedTB3TestsSuite extends TB3TestSuite {
- public ChangedTB3TestsSuite(Class<?> klass) throws InitializationError {
+ public ChangedTB3TestsSuite(Class<?> klass) throws InitializationError,
+ IOException {
super(klass, AbstractTB3Test.class, "com.vaadin.tests",
new String[] { "com.vaadin.tests.integration" },
new ChangedTB3TestLocator());
diff --git a/uitest/src/com/vaadin/tests/tb3/DndActionsTest.java b/uitest/src/com/vaadin/tests/tb3/DndActionsTest.java
index 96a2280323..71d6b6fab4 100644
--- a/uitest/src/com/vaadin/tests/tb3/DndActionsTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/DndActionsTest.java
@@ -19,6 +19,8 @@ import org.junit.Ignore;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
+import com.vaadin.testbench.parallel.BrowserUtil;
+
/**
* Base class for TestBench 3+ tests that use DnD. This class contains utility
* methods for DnD operations.
diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
index 19f62d69ee..acf9d7a815 100644
--- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
@@ -17,11 +17,14 @@
package com.vaadin.tests.tb3;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
+import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.BrowserUtil;
+
/**
* Base class for tests which should be run on all supported browsers. The test
* is automatically launched for multiple browsers in parallel by the test
@@ -41,100 +44,67 @@ import org.openqa.selenium.remote.DesiredCapabilities;
public abstract class MultiBrowserTest extends PrivateTB3Configuration {
protected List<DesiredCapabilities> getBrowsersSupportingWebSocket() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
-
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- browsers.remove(Browser.IE9.getDesiredCapabilities());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
-
- return browsers;
+ // No WebSocket support in IE8-9 and PhantomJS
+ return getBrowserCapabilities(Browser.IE10, Browser.IE11,
+ Browser.FIREFOX, Browser.CHROME);
}
protected List<DesiredCapabilities> getBrowsersExcludingPhantomJS() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
-
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
-
- return browsers;
+ return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
+ Browser.IE11, Browser.CHROME, Browser.FIREFOX);
}
protected List<DesiredCapabilities> getBrowsersExcludingIE() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
- browsers.remove(Browser.IE8.getDesiredCapabilities());
- browsers.remove(Browser.IE9.getDesiredCapabilities());
- browsers.remove(Browser.IE10.getDesiredCapabilities());
- browsers.remove(Browser.IE11.getDesiredCapabilities());
+ return getBrowserCapabilities(Browser.FIREFOX, Browser.CHROME,
+ Browser.PHANTOMJS);
+ }
- return browsers;
+ protected List<DesiredCapabilities> getBrowsersExcludingIE8() {
+ return getBrowserCapabilities(Browser.IE9, Browser.IE10, Browser.IE11,
+ Browser.FIREFOX, Browser.CHROME, Browser.PHANTOMJS);
}
protected List<DesiredCapabilities> getBrowsersSupportingShiftClick() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>(
- getAllBrowsers());
-
- // IE supports shift click only when require window focus is true
- browsers.remove(Browser.FIREFOX.getDesiredCapabilities());
- browsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
-
- return browsers;
+ return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
+ Browser.IE11, Browser.CHROME);
}
protected List<DesiredCapabilities> getIEBrowsersOnly() {
- List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>();
- browsers.add(Browser.IE8.getDesiredCapabilities());
- browsers.add(Browser.IE9.getDesiredCapabilities());
- browsers.add(Browser.IE10.getDesiredCapabilities());
- browsers.add(Browser.IE11.getDesiredCapabilities());
-
- return browsers;
+ return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
+ Browser.IE11);
}
- public enum Browser {
- FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(40)), SAFARI(
- BrowserUtil.safari(7)), IE8(BrowserUtil.ie(8)), IE9(BrowserUtil
- .ie(9)), IE10(BrowserUtil.ie(10)), IE11(BrowserUtil.ie(11)), OPERA(
- BrowserUtil.opera(17)), PHANTOMJS(BrowserUtil.phantomJS(1));
- private DesiredCapabilities desiredCapabilities;
-
- private Browser(DesiredCapabilities desiredCapabilities) {
- this.desiredCapabilities = desiredCapabilities;
- }
-
- public DesiredCapabilities getDesiredCapabilities() {
- return desiredCapabilities;
+ @Override
+ public void setDesiredCapabilities(DesiredCapabilities desiredCapabilities) {
+ if (BrowserUtil.isIE(desiredCapabilities)) {
+ if (requireWindowFocusForIE()) {
+ desiredCapabilities.setCapability(
+ InternetExplorerDriver.REQUIRE_WINDOW_FOCUS, true);
+ }
+ if (!usePersistentHoverForIE()) {
+ desiredCapabilities.setCapability(
+ InternetExplorerDriver.ENABLE_PERSISTENT_HOVERING,
+ false);
+ }
}
- }
- static List<DesiredCapabilities> allBrowsers = new ArrayList<DesiredCapabilities>();
- static {
- allBrowsers.add(Browser.IE8.getDesiredCapabilities());
- allBrowsers.add(Browser.IE9.getDesiredCapabilities());
- allBrowsers.add(Browser.IE10.getDesiredCapabilities());
- allBrowsers.add(Browser.IE11.getDesiredCapabilities());
- allBrowsers.add(Browser.FIREFOX.getDesiredCapabilities());
- // Uncomment once we have the capability to run on Safari 6
- // allBrowsers.add(SAFARI);
- allBrowsers.add(Browser.CHROME.getDesiredCapabilities());
- allBrowsers.add(Browser.PHANTOMJS.getDesiredCapabilities());
- // Re-enable this when it is possible to run on a modern Opera version
- // allBrowsers.add(Browser.OPERA.getDesiredCapabilities());
- }
-
- /**
- * @return all supported browsers which are actively tested
- */
- public static List<DesiredCapabilities> getAllBrowsers() {
- return Collections.unmodifiableList(allBrowsers);
+ super.setDesiredCapabilities(desiredCapabilities);
}
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- // Return a copy so sub classes can do
- // super.getBrowseresToTest().remove(something)
- return new ArrayList<DesiredCapabilities>(getAllBrowsers());
+ // Uncomment Safari and Opera if those become tested browsers again.
+ return getBrowserCapabilities(Browser.IE8, Browser.IE9, Browser.IE10,
+ Browser.IE11, Browser.FIREFOX, Browser.CHROME,
+ Browser.PHANTOMJS /* , Browser.SAFARI, Browser.OPERA */);
}
+ protected List<DesiredCapabilities> getBrowserCapabilities(
+ Browser... browsers) {
+ List<DesiredCapabilities> capabilities = new ArrayList<DesiredCapabilities>();
+ for (Browser browser : browsers) {
+ capabilities.add(browser.getDesiredCapabilities());
+ }
+ return capabilities;
+ }
}
diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
index 921fa080cd..f8b01fb11b 100755
--- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
+++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
@@ -23,7 +23,7 @@ import org.junit.After;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
-import com.vaadin.tests.annotations.TestCategory;
+import com.vaadin.testbench.parallel.TestCategory;
@TestCategory("push")
public abstract class MultiBrowserTestWithProxy extends MultiBrowserTest {
diff --git a/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java b/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
index a4645262a5..8f8e446ce3 100644
--- a/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
+++ b/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
@@ -22,21 +22,11 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
-import java.util.Arrays;
import java.util.Enumeration;
import java.util.Properties;
-import org.openqa.selenium.WebDriver;
-import org.openqa.selenium.chrome.ChromeDriver;
-import org.openqa.selenium.chrome.ChromeOptions;
-import org.openqa.selenium.firefox.FirefoxBinary;
-import org.openqa.selenium.firefox.FirefoxDriver;
-import org.openqa.selenium.phantomjs.PhantomJSDriver;
-import org.openqa.selenium.remote.DesiredCapabilities;
-import org.openqa.selenium.safari.SafariDriver;
-
-import com.vaadin.testbench.TestBench;
-import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
+import com.vaadin.testbench.annotations.BrowserFactory;
+import com.vaadin.testbench.annotations.RunOnHub;
/**
* Provides values for parameters which depend on where the test is run.
@@ -45,6 +35,8 @@ import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
*
* @author Vaadin Ltd
*/
+@RunOnHub("tb3-hub.intra.itmill.com")
+@BrowserFactory(VaadinBrowserFactory.class)
public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
/**
*
@@ -101,7 +93,7 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
@Override
protected String getHubURL() {
String hubUrl = getProperty(HUB_URL);
- if(hubUrl == null || hubUrl.trim().isEmpty()) {
+ if (hubUrl == null || hubUrl.trim().isEmpty()) {
return super.getHubURL();
}
@@ -109,11 +101,6 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
}
@Override
- protected String getHubHostname() {
- return "tb3-hub.intra.itmill.com";
- }
-
- @Override
protected String getBaseURL() {
String url = getProperty(DEPLOYMENT_PROPERTY);
if (url == null || url.trim().isEmpty()) {
@@ -203,81 +190,4 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
throw new RuntimeException(
"No compatible (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) ip address found.");
}
-
- /*
- * (non-Javadoc)
- *
- * @see com.vaadin.tests.tb3.AbstractTB3Test#setupLocalDriver()
- */
- @Override
- protected void setupLocalDriver(DesiredCapabilities desiredCapabilities) {
- WebDriver driver;
- if (BrowserUtil.isFirefox(desiredCapabilities)) {
- String firefoxPath = getProperty("firefox.path");
- if (firefoxPath != null) {
- driver = new FirefoxDriver(new FirefoxBinary(new File(
- firefoxPath)), null);
- } else {
- driver = new FirefoxDriver();
- }
- } else if (BrowserUtil.isChrome(desiredCapabilities)) {
- String propertyName = "chrome.driver.path";
- String chromeDriverPath = getProperty(propertyName);
- if (chromeDriverPath == null) {
- throw new RuntimeException(
- "You need to install ChromeDriver to use @"
- + RunLocally.class.getSimpleName()
- + " with Chrome."
- + "\nFirst install it from https://code.google.com/p/selenium/wiki/ChromeDriver."
- + "\nThen update "
- + propertiesFile.getAbsolutePath()
- + " to define a property named "
- + propertyName
- + " containing the path of your local ChromeDriver installation.");
- }
- System.setProperty("webdriver.chrome.driver", chromeDriverPath);
-
- // Tells chrome not to show warning
- // "You are using an unsupported command-line flag: --ignore-certifcate-errors".
- // #14319
- ChromeOptions options = new ChromeOptions();
- options.addArguments("--test-type ");
- driver = new ChromeDriver(options);
- } else if (BrowserUtil.isSafari(desiredCapabilities)) {
- driver = new SafariDriver();
- } else if (BrowserUtil.isPhantomJS(desiredCapabilities)) {
- driver = new PhantomJSDriver();
- } else {
- throw new RuntimeException(
- "Not implemented support for running locally on "
- + BrowserUtil
- .getBrowserIdentifier(desiredCapabilities));
- }
- setDriver(TestBench.createDriver(driver));
- setDesiredCapabilities(desiredCapabilities);
- }
-
- @Override
- protected Browser getRunLocallyBrowser() {
- Browser runLocallyBrowser = super.getRunLocallyBrowser();
- if (runLocallyBrowser != null) {
- // Always use annotation value if present
- return runLocallyBrowser;
- }
-
- String runLocallyValue = getProperty(RUN_LOCALLY_PROPERTY);
- if (runLocallyValue == null || runLocallyValue.trim().isEmpty()) {
- return null;
- }
-
- String browserName = runLocallyValue.trim().toUpperCase();
- try {
- return Browser.valueOf(browserName);
- } catch (IllegalArgumentException e) {
- throw new RuntimeException("Invalid " + RUN_LOCALLY_PROPERTY
- + " property from " + getSource(RUN_LOCALLY_PROPERTY)
- + ": " + runLocallyValue + ". Expected one of "
- + Arrays.toString(Browser.values()));
- }
- }
}
diff --git a/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java b/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
index 4a4354d67c..f401e0613b 100644
--- a/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
+++ b/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
@@ -16,32 +16,26 @@
package com.vaadin.tests.tb3;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileFilter;
-import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
-import javax.imageio.ImageIO;
-
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
-import org.openqa.selenium.OutputType;
-import org.openqa.selenium.TakesScreenshot;
+import org.junit.runner.Description;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.Parameters;
-import com.vaadin.testbench.commands.TestBenchCommands;
+import com.vaadin.testbench.ScreenshotOnFailureRule;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.testbench.screenshot.ImageFileUtil;
/**
* Base class which provides functionality for tests which use the automatic
@@ -51,6 +45,29 @@ import com.vaadin.testbench.commands.TestBenchCommands;
*/
public abstract class ScreenshotTB3Test extends AbstractTB3Test {
+ @Rule
+ public ScreenshotOnFailureRule screenshotOnFailure = new ScreenshotOnFailureRule(
+ this, true) {
+
+ @Override
+ protected void failed(Throwable throwable, Description description) {
+ super.failed(throwable, description);
+ closeApplication();
+ }
+
+ @Override
+ protected void succeeded(Description description) {
+ super.succeeded(description);
+ closeApplication();
+ }
+
+ @Override
+ protected File getErrorScreenshotFile(Description description) {
+ return ImageFileUtil
+ .getErrorScreenshotFile(getScreenshotFailureName());
+ };
+ };
+
private String screenshotBaseName;
@Rule
@@ -331,48 +348,15 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
}
- /*
- * (non-Javadoc)
- *
- * @see
- * com.vaadin.tests.tb3.AbstractTB3Test#onUncaughtException(java.lang.Throwable
- * )
- */
- @Override
- public void onUncaughtException(Throwable cause) {
- super.onUncaughtException(cause);
- // Grab a "failure" screenshot and store in the errors folder for later
- // analysis
- try {
- TestBenchCommands testBench = testBench();
- if (testBench != null) {
- testBench.disableWaitForVaadin();
- }
- } catch (Throwable t) {
- t.printStackTrace();
- }
- try {
- if (driver != null) {
- BufferedImage screenshotImage = ImageIO
- .read(new ByteArrayInputStream(
- ((TakesScreenshot) driver)
- .getScreenshotAs(OutputType.BYTES)));
- ImageIO.write(screenshotImage, "png", new File(
- getScreenshotFailureName()));
- }
- } catch (Throwable t) {
- t.printStackTrace();
- }
-
- }
-
/**
* @return the name of a "failure" image which is stored in the folder
* defined by {@link #getScreenshotErrorDirectory()} when the test
* fails
*/
private String getScreenshotFailureName() {
- return getScreenshotErrorBaseName() + "-failure.png";
+ return getScreenshotBaseName() + "_"
+ + getUniqueIdentifier(getDesiredCapabilities())
+ + "-failure.png";
}
/**
@@ -409,10 +393,9 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
Integer versionOverride) {
String uniqueBrowserIdentifier;
if (versionOverride == null) {
- uniqueBrowserIdentifier = BrowserUtil
- .getUniqueIdentifier(getDesiredCapabilities());
+ uniqueBrowserIdentifier = getUniqueIdentifier(getDesiredCapabilities());
} else {
- uniqueBrowserIdentifier = BrowserUtil.getUniqueIdentifier(
+ uniqueBrowserIdentifier = getUniqueIdentifier(
getDesiredCapabilities(), "" + versionOverride);
}
@@ -423,6 +406,40 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
}
/**
+ * Returns a string which uniquely (enough) identifies this browser. Used
+ * mainly in screenshot names.
+ *
+ * @param capabilities
+ * @param versionOverride
+ *
+ * @return a unique string for each browser
+ */
+ private String getUniqueIdentifier(DesiredCapabilities capabilities,
+ String versionOverride) {
+ return getUniqueIdentifier(BrowserUtil.getPlatform(capabilities),
+ BrowserUtil.getBrowserIdentifier(capabilities), versionOverride);
+ }
+
+ /**
+ * Returns a string which uniquely (enough) identifies this browser. Used
+ * mainly in screenshot names.
+ *
+ * @param capabilities
+ *
+ * @return a unique string for each browser
+ */
+ private String getUniqueIdentifier(DesiredCapabilities capabilities) {
+ return getUniqueIdentifier(BrowserUtil.getPlatform(capabilities),
+ BrowserUtil.getBrowserIdentifier(capabilities),
+ capabilities.getVersion());
+ }
+
+ private String getUniqueIdentifier(String platform, String browser,
+ String version) {
+ return platform + "_" + browser + "_" + version;
+ }
+
+ /**
* Returns the base name of the screenshot in the error directory. This is a
* name so that all files matching {@link #getScreenshotErrorBaseName()}*
* are owned by this test instance (taking into account
diff --git a/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java b/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
index 294d012be5..77c5676215 100644
--- a/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
+++ b/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
@@ -16,6 +16,8 @@
package com.vaadin.tests.tb3;
+import java.io.IOException;
+
import org.junit.runner.RunWith;
import org.junit.runners.model.InitializationError;
@@ -27,7 +29,7 @@ public class ServletIntegrationTests {
public static class ServletIntegrationTestSuite extends TB3TestSuite {
public ServletIntegrationTestSuite(Class<?> klass)
- throws InitializationError {
+ throws InitializationError, IOException {
super(klass, AbstractServletIntegrationTest.class,
"com.vaadin.tests.integration", new String[] {});
}
diff --git a/uitest/src/com/vaadin/tests/tb3/SingleBrowserTest.java b/uitest/src/com/vaadin/tests/tb3/SingleBrowserTest.java
index f5dc337138..960d6b8777 100644
--- a/uitest/src/com/vaadin/tests/tb3/SingleBrowserTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/SingleBrowserTest.java
@@ -20,12 +20,12 @@ import java.util.List;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.parallel.Browser;
+
public abstract class SingleBrowserTest extends PrivateTB3Configuration {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.unmodifiableList(Collections
- .singletonList(MultiBrowserTest.Browser.PHANTOMJS
- .getDesiredCapabilities()));
+ return Collections.singletonList(Browser.PHANTOMJS
+ .getDesiredCapabilities());
}
-
}
diff --git a/uitest/src/com/vaadin/tests/tb3/TB3Runner.java b/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
index 0d540644bf..acdef54492 100644
--- a/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
+++ b/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
@@ -16,34 +16,16 @@
package com.vaadin.tests.tb3;
-import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import org.apache.http.params.HttpConnectionParams;
-import org.apache.http.params.HttpParams;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runners.BlockJUnit4ClassRunner;
+import org.apache.http.client.HttpClient;
import org.junit.runners.Parameterized;
-import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.Statement;
-import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.HttpCommandExecutor;
import org.openqa.selenium.remote.internal.HttpClientFactory;
-import com.vaadin.tests.annotations.TestCategory;
-import com.vaadin.tests.tb3.AbstractTB3Test.BrowserUtil;
-import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
+import com.vaadin.testbench.parallel.ParallelRunner;
/**
* This runner is loosely based on FactoryTestRunner by Ted Young
@@ -53,7 +35,7 @@ import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
*
* @since 7.1
*/
-public class TB3Runner extends BlockJUnit4ClassRunner {
+public class TB3Runner extends ParallelRunner {
/**
* Socket timeout for HTTP connections to the grid hub. The connection is
@@ -62,24 +44,7 @@ public class TB3Runner extends BlockJUnit4ClassRunner {
*/
private static final int SOCKET_TIMEOUT = 30 * 60 * 1000;
- /**
- * This is the total limit of actual JUnit test instances run in parallel
- */
- private static final int MAX_CONCURRENT_TESTS;
-
- /**
- * This is static so it is shared by all tests running concurrently on the
- * same machine and thus can limit the number of threads in use.
- */
- private static final ExecutorService service;
-
static {
- if (localWebDriverIsUsed()) {
- MAX_CONCURRENT_TESTS = 10;
- } else {
- MAX_CONCURRENT_TESTS = 50;
- }
- service = Executors.newFixedThreadPool(MAX_CONCURRENT_TESTS);
// reduce socket timeout to avoid tests hanging for three hours
try {
@@ -89,11 +54,16 @@ public class TB3Runner extends BlockJUnit4ClassRunner {
field.setAccessible(true);
field.set(null, new HttpClientFactory() {
@Override
- public HttpParams getHttpParams() {
- HttpParams params = super.getHttpParams();
- // fifteen minute timeout
- HttpConnectionParams.setSoTimeout(params, SOCKET_TIMEOUT);
- return params;
+ public HttpClient getGridHttpClient(int connection_timeout,
+ int socket_timeout) {
+
+ if (socket_timeout == 0 || socket_timeout > SOCKET_TIMEOUT) {
+ return super.getGridHttpClient(connection_timeout,
+ SOCKET_TIMEOUT);
+ }
+
+ return super.getGridHttpClient(connection_timeout,
+ socket_timeout);
}
});
} catch (Exception e) {
@@ -103,311 +73,8 @@ public class TB3Runner extends BlockJUnit4ClassRunner {
}
}
- protected static boolean localWebDriverIsUsed() {
- String useLocalWebDriver = System.getProperty("useLocalWebDriver");
-
- return useLocalWebDriver != null
- && useLocalWebDriver.toLowerCase().equals("true");
- }
-
public TB3Runner(Class<?> klass) throws InitializationError {
super(klass);
- setScheduler(new ParallelScheduler(service));
- }
-
- @Override
- protected List<FrameworkMethod> computeTestMethods() {
- List<FrameworkMethod> tests = new LinkedList<FrameworkMethod>();
-
- if (!AbstractTB3Test.class.isAssignableFrom(getTestClass()
- .getJavaClass())) {
- throw new RuntimeException(getClass().getName() + " only supports "
- + AbstractTB3Test.class.getName());
- }
-
- try {
- AbstractTB3Test testClassInstance = getTestClassInstance();
- Collection<DesiredCapabilities> desiredCapabilities = getDesiredCapabilities(testClassInstance);
-
- TestNameSuffix testNameSuffixProperty = findAnnotation(
- testClassInstance.getClass(), TestNameSuffix.class);
-
- for (FrameworkMethod m : getTestMethods()) {
- // No browsers available for this test, so we need to
- // wrap the test method inside IgnoredTestMethod.
- // This will add @Ignore annotation to it.
- if (desiredCapabilities.size() <= 0
- || categoryIsExcludedOrNotExcplicitlyIncluded()) {
- tests.add(new IgnoredTestMethod(m.getMethod()));
- } else {
- for (DesiredCapabilities capabilities : desiredCapabilities) {
- TB3Method method = new TB3Method(m.getMethod(),
- capabilities);
- if (testNameSuffixProperty != null) {
- method.setTestNameSuffix("-"
- + System.getProperty(testNameSuffixProperty
- .property()));
- }
- tests.add(method);
- }
- }
- }
- } catch (Exception e) {
- throw new RuntimeException("Error retrieving browsers to run on", e);
- }
-
- return tests;
- }
-
- private boolean categoryIsExcludedOrNotExcplicitlyIncluded() {
- Class<?> c = getTestClass().getJavaClass();
-
- if (categoryIsExcluded(c)) {
- return true;
- }
-
- if (explicitInclusionIsUsed()) {
- return !categoryIsIncluded(c);
- }
-
- return false;
- }
-
- private boolean categoryIsIncluded(Class<?> c) {
- String include = System.getProperty("categories.include");
- if (include != null && include.trim().length() > 0) {
- return hasCategoryFor(c, include.toLowerCase().trim());
- }
-
- return false;
- }
-
- private static boolean explicitInclusionIsUsed() {
- String include = System.getProperty("categories.include");
-
- return include != null && include.trim().length() > 0;
- }
-
- private static boolean categoryIsExcluded(Class<?> c) {
- String exclude = System.getProperty("categories.exclude");
- if (exclude != null && exclude.trim().length() > 0) {
- return hasCategoryFor(c, exclude.toLowerCase().trim());
- }
-
- return false;
- }
-
- private static boolean hasCategoryFor(Class<?> c, String searchString) {
- if (hasCategory(c)) {
- return searchString.contains(getCategory(c).toLowerCase());
- }
-
- return false;
- }
-
- private static boolean hasCategory(Class<?> c) {
- return c.getAnnotation(TestCategory.class) != null;
- }
-
- private static String getCategory(Class<?> c) {
- return c.getAnnotation(TestCategory.class).value();
- }
-
- private List<FrameworkMethod> getTestMethods() {
- return getTestClass().getAnnotatedMethods(Test.class);
- }
-
- /*
- * Returns a list of desired browser capabilities according to browsers
- * defined in the test class, filtered by possible filter parameters. Use
- * {@code @RunLocally} annotation or com.vaadin.testbench.runLocally
- * property to override all capabilities.
- */
- private Collection<DesiredCapabilities> getDesiredCapabilities(
- AbstractTB3Test testClassInstance) {
- Collection<DesiredCapabilities> desiredCapabilites = getFilteredCapabilities(testClassInstance);
-
- Browser runLocallyBrowser = testClassInstance.getRunLocallyBrowser();
- if (runLocallyBrowser != null) {
- desiredCapabilites = new ArrayList<DesiredCapabilities>();
- desiredCapabilites.add(runLocallyBrowser.getDesiredCapabilities());
- }
-
- return desiredCapabilites;
- }
-
- /*
- * Takes the desired browser capabilities defined in the test class and
- * returns a list of browser capabilities filtered browsers.include and
- * browsers.exclude system properties. (if present)
- */
- private Collection<DesiredCapabilities> getFilteredCapabilities(
- AbstractTB3Test testClassInstance) {
- Collection<DesiredCapabilities> desiredCapabilites = testClassInstance
- .getBrowsersToTest();
-
- ArrayList<DesiredCapabilities> filteredCapabilities = new ArrayList<DesiredCapabilities>();
-
- String include = System.getProperty("browsers.include");
- String exclude = System.getProperty("browsers.exclude");
-
- for (DesiredCapabilities d : desiredCapabilites) {
- String browserName = (d.getBrowserName() + d.getVersion())
- .toLowerCase();
- if (include != null && include.trim().length() > 0) {
- if (include.trim().toLowerCase().contains(browserName)) {
- filteredCapabilities.add(d);
- }
- } else {
- filteredCapabilities.add(d);
- }
-
- if (exclude != null && exclude.trim().length() > 0) {
- if (exclude.trim().toLowerCase().contains(browserName)) {
- filteredCapabilities.remove(d);
- }
- }
-
- }
- return filteredCapabilities;
- }
-
- private AbstractTB3Test getTestClassInstance()
- throws InstantiationException, IllegalAccessException,
- InvocationTargetException {
- AbstractTB3Test testClassInstance = (AbstractTB3Test) getTestClass()
- .getOnlyConstructor().newInstance();
- return testClassInstance;
- }
-
- // This is a FrameworkMethod class that will always
- // return @Ignore and @Test annotations for the wrapped method.
- private class IgnoredTestMethod extends FrameworkMethod {
-
- private class IgnoreTestAnnotations {
-
- // We use this method to easily get our hands on
- // the Annotation instances for @Ignore and @Test
- @Ignore
- @Test
- public void ignoredTest() {
- }
- }
-
- public IgnoredTestMethod(Method method) {
- super(method);
- }
-
- @Override
- public Annotation[] getAnnotations() {
- return getIgnoredTestMethod().getAnnotations();
- }
-
- private Method getIgnoredTestMethod() {
- try {
- return IgnoreTestAnnotations.class.getMethod("ignoredTest",
- null);
- } catch (Exception e) {
- return null;
- }
-
- }
-
- @Override
- public <T extends Annotation> T getAnnotation(Class<T> annotationType) {
- return getIgnoredTestMethod().getAnnotation(annotationType);
- }
- }
-
- /**
- * Finds the given annotation in the given class or one of its super
- * classes. Return the first found annotation
- *
- * @param searchClass
- * @param annotationClass
- * @return
- */
- private <T extends Annotation> T findAnnotation(Class<?> searchClass,
- Class<T> annotationClass) {
- if (searchClass == Object.class) {
- return null;
- }
-
- if (searchClass.getAnnotation(annotationClass) != null) {
- return searchClass.getAnnotation(annotationClass);
- }
-
- return findAnnotation(searchClass.getSuperclass(), annotationClass);
- }
-
- /*
- * (non-Javadoc)
- *
- * @see
- * org.junit.runners.BlockJUnit4ClassRunner#withBefores(org.junit.runners
- * .model.FrameworkMethod, java.lang.Object,
- * org.junit.runners.model.Statement)
- */
- @Override
- protected Statement withBefores(final FrameworkMethod method,
- final Object target, Statement statement) {
- if (!(method instanceof TB3Method)) {
- throw new RuntimeException("Unexpected method type "
- + method.getClass().getName() + ", expected TB3Method");
- }
- final TB3Method tb3method = (TB3Method) method;
-
- // setDesiredCapabilities before running the real @Befores (which use
- // capabilities)
-
- final Statement realBefores = super.withBefores(method, target,
- statement);
- return new Statement() {
-
- @Override
- public void evaluate() throws Throwable {
- ((AbstractTB3Test) target)
- .setDesiredCapabilities(tb3method.capabilities);
- try {
- realBefores.evaluate();
- } catch (Throwable t) {
- // Give the test a chance to e.g. produce an error
- // screenshot before failing the test by re-throwing the
- // exception
- ((AbstractTB3Test) target).onUncaughtException(t);
- throw t;
- }
- }
- };
- }
-
- private static class TB3Method extends FrameworkMethod {
- private DesiredCapabilities capabilities;
- private String testNameSuffix = "";
-
- public TB3Method(Method method, DesiredCapabilities capabilities) {
- super(method);
- this.capabilities = capabilities;
- }
-
- public void setTestNameSuffix(String testNameSuffix) {
- this.testNameSuffix = testNameSuffix;
- }
-
- @Override
- public Object invokeExplosively(final Object target, Object... params)
- throws Throwable {
- // Executes the test method with the supplied parameters
- return super.invokeExplosively(target);
- }
-
- @Override
- public String getName() {
- return String.format("%s[%s]", getMethod().getName()
- + testNameSuffix,
- BrowserUtil.getUniqueIdentifier(capabilities));
- }
-
}
}
diff --git a/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java b/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
index b0554ce0f6..c68d59a4eb 100644
--- a/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
+++ b/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
@@ -16,46 +16,33 @@
package com.vaadin.tests.tb3;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.io.IOException;
-import org.junit.runners.Suite;
import org.junit.runners.model.InitializationError;
+import com.vaadin.testbench.parallel.ParallelTestSuite;
+
/**
* Test suite which consists of all the TB3 tests passed in the constructor.
* Runs the tests in parallel using a {@link ParallelScheduler}
*
* @author Vaadin Ltd
*/
-public class TB3TestSuite extends Suite {
-
- /**
- * This only restricts the number of test suites running concurrently. The
- * number of tests to run concurrently are configured in {@link TB3Runner}.
- */
- private static final int MAX_CONCURRENT_TEST_SUITES = 20;
-
- /**
- * This is static so it is shared by all test suites running concurrently on
- * the same machine and thus can limit the number of threads in use.
- */
- private final ExecutorService service = Executors
- .newFixedThreadPool(MAX_CONCURRENT_TEST_SUITES);
+public class TB3TestSuite extends ParallelTestSuite {
public TB3TestSuite(Class<?> klass,
Class<? extends AbstractTB3Test> baseClass, String basePackage,
- String[] ignorePackages) throws InitializationError {
+ String[] ignorePackages) throws InitializationError, IOException {
this(klass, baseClass, basePackage, ignorePackages,
new TB3TestLocator());
}
public TB3TestSuite(Class<?> klass,
Class<? extends AbstractTB3Test> baseClass, String basePackage,
- String[] ignorePackages, TB3TestLocator testLocator)
- throws InitializationError {
- super(klass, testLocator.findTests(baseClass, basePackage,
- ignorePackages));
- setScheduler(new ParallelScheduler(service));
+ String[] ignorePackages, TB3TestLocator locator)
+ throws InitializationError, IOException {
+ super(klass, locator
+ .findClasses(baseClass, basePackage, ignorePackages).toArray(
+ new Class<?>[] {}));
}
}
diff --git a/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java b/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java
deleted file mode 100644
index 615cd8d5b7..0000000000
--- a/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2000-2014 Vaadin Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.vaadin.tests.tb3;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-
-/**
- * Defines a system property to be used as part of the test name
- */
-@Retention(RetentionPolicy.RUNTIME)
-public @interface TestNameSuffix {
-
- String property();
-
-}
diff --git a/uitest/src/com/vaadin/tests/tb3/VaadinBrowserFactory.java b/uitest/src/com/vaadin/tests/tb3/VaadinBrowserFactory.java
new file mode 100644
index 0000000000..f55b434ee0
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/tb3/VaadinBrowserFactory.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.tb3;
+
+import org.openqa.selenium.Platform;
+import org.openqa.selenium.ie.InternetExplorerDriver;
+import org.openqa.selenium.remote.DesiredCapabilities;
+
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.DefaultBrowserFactory;
+
+public class VaadinBrowserFactory extends DefaultBrowserFactory {
+
+ @Override
+ public DesiredCapabilities create(Browser browser) {
+ switch (browser) {
+ case IE8:
+ return createIE(browser, "8");
+ case IE9:
+ return createIE(browser, "9");
+ case IE10:
+ return createIE(browser, "10");
+ case IE11:
+ return createIE(browser, "11");
+ case PHANTOMJS:
+ return create(browser, "1", Platform.LINUX);
+ case CHROME:
+ return create(browser, "40", Platform.VISTA);
+ case FIREFOX:
+ default:
+ return create(browser, "24", Platform.XP);
+ }
+ }
+
+ private DesiredCapabilities createIE(Browser browser, String version) {
+ DesiredCapabilities capabilities = create(browser, version,
+ Platform.WINDOWS);
+ capabilities.setCapability(
+ InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
+ return capabilities;
+ }
+
+ @Override
+ public DesiredCapabilities create(Browser browser, String version) {
+ return create(browser);
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java b/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
index 7f65357a65..ee8cab22fd 100644
--- a/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
@@ -19,14 +19,11 @@
*/
package com.vaadin.tests.tb3;
-import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import org.openqa.selenium.remote.DesiredCapabilities;
-import com.vaadin.tests.annotations.TestCategory;
-import com.vaadin.tests.tb3.MultiBrowserTest.Browser;
+import com.vaadin.testbench.parallel.TestCategory;
/**
* A {@link MultiBrowserTest} which restricts the tests to the browsers which
@@ -39,7 +36,6 @@ public abstract class WebsocketTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- return new ArrayList<DesiredCapabilities>(
- getBrowsersSupportingWebSocket());
+ return getBrowsersSupportingWebSocket();
}
}
diff --git a/uitest/src/com/vaadin/tests/tb3/newelements/CalendarElement.java b/uitest/src/com/vaadin/tests/tb3/newelements/CalendarElement.java
index e5213b21b5..40475afd3c 100644
--- a/uitest/src/com/vaadin/tests/tb3/newelements/CalendarElement.java
+++ b/uitest/src/com/vaadin/tests/tb3/newelements/CalendarElement.java
@@ -5,7 +5,7 @@ import java.util.List;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
-import com.vaadin.testbench.elements.ServerClass;
+import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.Calendar")
public class CalendarElement extends
diff --git a/uitest/src/com/vaadin/tests/tb3/newelements/FixedNotificationElement.java b/uitest/src/com/vaadin/tests/tb3/newelements/FixedNotificationElement.java
index ff7715e281..a3eb952ea7 100644
--- a/uitest/src/com/vaadin/tests/tb3/newelements/FixedNotificationElement.java
+++ b/uitest/src/com/vaadin/tests/tb3/newelements/FixedNotificationElement.java
@@ -6,16 +6,18 @@ import org.openqa.selenium.support.ui.WebDriverWait;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.NotificationElement;
-import com.vaadin.testbench.elements.ServerClass;
+import com.vaadin.testbench.elementsbase.ServerClass;
@ServerClass("com.vaadin.ui.Notification")
public class FixedNotificationElement extends NotificationElement {
+ @Override
public String getCaption() {
WebElement popup = findElement(By.className("popupContent"));
WebElement caption = popup.findElement(By.tagName("h1"));
return caption.getText();
}
+ @Override
public void close() {
click();
WebDriverWait wait = new WebDriverWait(getDriver(), 10);
diff --git a/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java b/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java
index 9e3433f1af..34344324d0 100644
--- a/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java
+++ b/uitest/src/com/vaadin/tests/tb3/newelements/WindowElement.java
@@ -4,7 +4,7 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.By;
-import com.vaadin.testbench.elements.ServerClass;
+import com.vaadin.testbench.elementsbase.ServerClass;
/*
Suggestions for new elemental api for Window
@@ -59,6 +59,7 @@ public class WindowElement extends com.vaadin.testbench.elements.WindowElement {
/**
* @return the caption of the window
*/
+ @Override
public String getCaption() {
return findElement(By.className("v-window-header")).getText();
}
diff --git a/uitest/src/com/vaadin/tests/themes/ThemeChangeOnTheFlyTest.java b/uitest/src/com/vaadin/tests/themes/ThemeChangeOnTheFlyTest.java
index a5657c4eec..79da9f902d 100644
--- a/uitest/src/com/vaadin/tests/themes/ThemeChangeOnTheFlyTest.java
+++ b/uitest/src/com/vaadin/tests/themes/ThemeChangeOnTheFlyTest.java
@@ -15,8 +15,12 @@
*/
package com.vaadin.tests.themes;
-import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import static org.hamcrest.CoreMatchers.containsString;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.io.IOException;
+import java.util.List;
+
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
@@ -24,11 +28,8 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedCondition;
-import java.io.IOException;
-import java.util.List;
-
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.hamcrest.MatcherAssert.assertThat;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.tests.tb3.MultiBrowserTest;
public class ThemeChangeOnTheFlyTest extends MultiBrowserTest {
@@ -36,9 +37,7 @@ public class ThemeChangeOnTheFlyTest extends MultiBrowserTest {
public List<DesiredCapabilities> getBrowsersToTest() {
// Seems like stylesheet onload is not fired on PhantomJS
// https://github.com/ariya/phantomjs/issues/12332
- List<DesiredCapabilities> l = super.getBrowsersToTest();
- l.remove(Browser.PHANTOMJS.getDesiredCapabilities());
- return l;
+ return getBrowsersExcludingPhantomJS();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java b/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
index 87827b1358..137b845e52 100644
--- a/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
+++ b/uitest/src/com/vaadin/tests/themes/valo/ImmediateUploadTest.java
@@ -19,12 +19,10 @@ import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.io.IOException;
-import java.util.List;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
-import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.UploadElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
@@ -37,11 +35,6 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
public class ImmediateUploadTest extends MultiBrowserTest {
@Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- return getAllBrowsers();
- }
-
- @Override
public void setup() throws Exception {
super.setup();
openTestURL();
diff --git a/uitest/src/com/vaadin/tests/themes/valo/TextFieldBevelTest.java b/uitest/src/com/vaadin/tests/themes/valo/TextFieldBevelTest.java
index 9159b71961..efe194d28a 100644
--- a/uitest/src/com/vaadin/tests/themes/valo/TextFieldBevelTest.java
+++ b/uitest/src/com/vaadin/tests/themes/valo/TextFieldBevelTest.java
@@ -36,12 +36,7 @@ public class TextFieldBevelTest extends MultiBrowserTest {
@Override
public List<DesiredCapabilities> getBrowsersToTest() {
- List<DesiredCapabilities> browsers = super.getBrowsersToTest();
-
- // IE8 doesn't support box-shadow.
- browsers.remove(Browser.IE8.getDesiredCapabilities());
-
- return browsers;
+ return getBrowsersExcludingIE8();
}
@Test
diff --git a/uitest/src/com/vaadin/tests/themes/valo/ValoThemeUITest.java b/uitest/src/com/vaadin/tests/themes/valo/ValoThemeUITest.java
index 13b0c7144c..3ab224f105 100644
--- a/uitest/src/com/vaadin/tests/themes/valo/ValoThemeUITest.java
+++ b/uitest/src/com/vaadin/tests/themes/valo/ValoThemeUITest.java
@@ -24,6 +24,7 @@ import com.vaadin.testbench.elements.CheckBoxElement;
import com.vaadin.testbench.elements.CssLayoutElement;
import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.TreeElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class ValoThemeUITest extends MultiBrowserTest {