aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'uitest/src/test/java')
-rw-r--r--uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/application/RefreshFragmentChangeTest.java16
-rw-r--r--uitest/src/test/java/com/vaadin/tests/application/ResynchronizeUITest.java12
-rw-r--r--uitest/src/test/java/com/vaadin/tests/application/TimingInfoReportedTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/application/WebBrowserTimeZoneTest.java21
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/abstractfield/ShortcutWhenBodyFocusedTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxItemIconTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxLargeIconsTest.java5
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/combobox/ComboboxPopupScrollingTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldZoneIdTest.java38
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java13
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java1
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridInWindowResizeTest.java24
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridRendererSwitchTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorTest.java9
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorUnbufferedTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/label/LabelTooltipTest.java7
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/listselect/ListSelectTest.java7
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java8
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticReindeerTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticRunoTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridClientSortTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridCollapseExpandTest.java9
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java38
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportTest.java22
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/ui/WindowAndUIShortcutsTest.java15
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/upload/InterruptUploadTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/debug/HierarchyAfterAnalyzeLayoutsTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveWidthAndHeightTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java9
-rw-r--r--uitest/src/test/java/com/vaadin/tests/layoutmanager/ConcurrentModificationUITest.java5
-rw-r--r--uitest/src/test/java/com/vaadin/tests/layouts/CssLayoutRemoveComponentTest.java9
-rw-r--r--uitest/src/test/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayoutTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/layouts/VerticalLayoutRemoveComponentTest.java10
-rw-r--r--uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java58
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java16
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/PrivateTB3Configuration.java84
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/ScreenshotTB3Test.java126
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTest.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java14
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/VaadinBrowserFactory.java2
-rw-r--r--uitest/src/test/java/com/vaadin/tests/tb3/XvfbHubBrowserFactory.java24
-rw-r--r--uitest/src/test/java/com/vaadin/tests/themes/LegacyComponentThemeChangeTest.java3
-rw-r--r--uitest/src/test/java/com/vaadin/tests/themes/ThemeChangeFaviconTest.java13
-rw-r--r--uitest/src/test/java/com/vaadin/tests/themes/valo/LayoutComponentGroupTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/themes/valo/ResponsiveStylesTest.java5
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/nativeselect/NativeSelectNullTest.java4
51 files changed, 427 insertions, 257 deletions
diff --git a/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java b/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
index 02050976bc..b282ba56a7 100644
--- a/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
@@ -25,7 +25,7 @@ public class VerifyBrowserVersionTest extends MultiBrowserTest {
// Chrome version does not necessarily match the desired version
// because of auto updates...
browserIdentifier = getExpectedUserAgentString(
- getDesiredCapabilities()) + "63";
+ getDesiredCapabilities()) + "65";
} else {
browserIdentifier = getExpectedUserAgentString(desiredCapabilities)
+ desiredCapabilities.getVersion();
diff --git a/uitest/src/test/java/com/vaadin/tests/application/RefreshFragmentChangeTest.java b/uitest/src/test/java/com/vaadin/tests/application/RefreshFragmentChangeTest.java
index acbd022be4..3c5f52a38a 100644
--- a/uitest/src/test/java/com/vaadin/tests/application/RefreshFragmentChangeTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/application/RefreshFragmentChangeTest.java
@@ -2,9 +2,13 @@ package com.vaadin.tests.application;
import static org.junit.Assert.assertEquals;
+import java.util.concurrent.TimeUnit;
+
import org.junit.Test;
+import org.openqa.selenium.TimeoutException;
import com.vaadin.testbench.By;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class RefreshFragmentChangeTest extends MultiBrowserTest {
@@ -15,9 +19,19 @@ public class RefreshFragmentChangeTest extends MultiBrowserTest {
@Test
public void testFragmentChange() throws Exception {
+ getDriver().manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);
openTestURL();
assertLogText("1. Initial fragment: null");
- getDriver().get(getTestUrl() + "#asdf");
+
+ try {
+ getDriver().get(getTestUrl() + "#asdf");
+ } catch (TimeoutException e) {
+ // Chrome throws timeout exception even when loading is successful
+ if (!BrowserUtil.isChrome(getDesiredCapabilities())) {
+ throw e;
+ }
+ }
+
assertLogText("2. Fragment changed to asdf");
openTestURL();
assertLogText("3. Fragment changed to null");
diff --git a/uitest/src/test/java/com/vaadin/tests/application/ResynchronizeUITest.java b/uitest/src/test/java/com/vaadin/tests/application/ResynchronizeUITest.java
index f2e824ad59..af5fe632c8 100644
--- a/uitest/src/test/java/com/vaadin/tests/application/ResynchronizeUITest.java
+++ b/uitest/src/test/java/com/vaadin/tests/application/ResynchronizeUITest.java
@@ -5,25 +5,23 @@ import static org.junit.Assert.fail;
import java.util.Collections;
import java.util.List;
+import org.junit.Assume;
import org.junit.Test;
import org.openqa.selenium.StaleElementReferenceException;
import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class ResynchronizeUITest extends SingleBrowserTest {
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- // PhantomJS does not send onload events for styles
- return Collections
- .singletonList(Browser.FIREFOX.getDesiredCapabilities());
- }
-
@Test
public void ensureResynchronizeRecreatesDOM() {
+ Assume.assumeFalse("PhantomJS does not send onload events for styles",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
ButtonElement button = $(ButtonElement.class).first();
button.click();
diff --git a/uitest/src/test/java/com/vaadin/tests/application/TimingInfoReportedTest.java b/uitest/src/test/java/com/vaadin/tests/application/TimingInfoReportedTest.java
index e5077979b9..19343c2af9 100644
--- a/uitest/src/test/java/com/vaadin/tests/application/TimingInfoReportedTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/application/TimingInfoReportedTest.java
@@ -5,9 +5,9 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class TimingInfoReportedTest extends SingleBrowserTestPhantomJS2 {
+public class TimingInfoReportedTest extends SingleBrowserTest {
@Test
public void ensureTimingsAvailable() {
diff --git a/uitest/src/test/java/com/vaadin/tests/application/WebBrowserTimeZoneTest.java b/uitest/src/test/java/com/vaadin/tests/application/WebBrowserTimeZoneTest.java
index bc74927ee1..3cf3161812 100644
--- a/uitest/src/test/java/com/vaadin/tests/application/WebBrowserTimeZoneTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/application/WebBrowserTimeZoneTest.java
@@ -2,7 +2,10 @@ package com.vaadin.tests.application;
import static org.junit.Assert.assertEquals;
+import java.util.Date;
+
import org.junit.Test;
+import org.openqa.selenium.JavascriptExecutor;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.LabelElement;
@@ -13,15 +16,23 @@ public class WebBrowserTimeZoneTest extends MultiBrowserTest {
public void testBrowserTimeZoneInfo() throws Exception {
openTestURL();
$(ButtonElement.class).first().click();
- assertLabelText("Browser raw offset", "7200000");
- assertLabelText("Browser to Europe/Helsinki offset difference", "0");
- assertLabelText("Browser could be in Helsinki", "Yes");
+
+ // Ask TimeZone from browser
+ String tzOffset = ((JavascriptExecutor) getDriver())
+ .executeScript("return new Date().getTimezoneOffset()")
+ .toString();
+
+ // Translate the same way as Vaadin should
+ int offsetMillis = -Integer.parseInt(tzOffset) * 60 * 1000;
+
+ // Check that server got the same value.
+ assertLabelText("Browser offset", offsetMillis);
}
- private void assertLabelText(String caption, String expected) {
+ private void assertLabelText(String caption, int expected) {
String actual = $(LabelElement.class).caption(caption).first()
.getText();
assertEquals(String.format("Unexpected text in label '%s',", caption),
- expected, actual);
+ "" + expected, actual);
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/abstractfield/ShortcutWhenBodyFocusedTest.java b/uitest/src/test/java/com/vaadin/tests/components/abstractfield/ShortcutWhenBodyFocusedTest.java
index 8cfd919b57..a28e56fd31 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/abstractfield/ShortcutWhenBodyFocusedTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/abstractfield/ShortcutWhenBodyFocusedTest.java
@@ -18,11 +18,11 @@ public class ShortcutWhenBodyFocusedTest extends SingleBrowserTest {
b.click();
assertEquals("1. Hello clicked", getLogRow(0));
- b.sendKeys("A");
+ b.sendKeys("a");
assertEquals("2. Hello clicked", getLogRow(0));
WebElement body = findElement(By.xpath("//body"));
- body.sendKeys("A");
+ body.sendKeys("a");
assertEquals("3. Hello clicked", getLogRow(0));
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java
index c41de54aea..45f614a164 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java
@@ -11,10 +11,10 @@ import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ComboBoxElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
public class ComboBoxEmptyItemsKeyboardNavigationTest
- extends SingleBrowserTestPhantomJS2 {
+ extends SingleBrowserTest {
@Test
public void navigatingUpOnAnEmptyMenuDoesntThrowErrors() {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxItemIconTest.java b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxItemIconTest.java
index 0c00220276..ff0d692e1d 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxItemIconTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxItemIconTest.java
@@ -7,8 +7,10 @@ import org.openqa.selenium.Keys;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ComboBoxElement;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest;
+@TestCategory("xvfb-test")
public class ComboBoxItemIconTest extends MultiBrowserTest {
@Test
diff --git a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxLargeIconsTest.java b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxLargeIconsTest.java
index 656dea1ed0..83ca6c5939 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxLargeIconsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxLargeIconsTest.java
@@ -42,6 +42,11 @@ public class ComboBoxLargeIconsTest extends MultiBrowserTest {
ComboBoxElement pageLength0cb = $(ComboBoxElement.class)
.caption("Pagelength 0").first();
pageLength0cb.openPopup();
+
+ // Using a larger icon size causes some flickering in the position of
+ // popup. Wait for it to stabilize.
+ Thread.sleep(1000);
+
clickElement(pageLength0cb.findElement(By.vaadin("#popup/item1")));
ComboBoxElement cb200px = $(ComboBoxElement.class)
diff --git a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboboxPopupScrollingTest.java b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboboxPopupScrollingTest.java
index f8718d89f8..b5454acb82 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboboxPopupScrollingTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboboxPopupScrollingTest.java
@@ -56,7 +56,7 @@ public class ComboboxPopupScrollingTest extends MultiBrowserTest {
newComboLocation.y - comboLocation.y);
assertEquals("Popup didn't move with the combo box",
newComboLocation.y - comboLocation.y,
- newPopupLocation.y - popupLocation.y);
+ newPopupLocation.y - popupLocation.y, 1);
}
private void testNoScrollbars(String theme) {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldZoneIdTest.java b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldZoneIdTest.java
index 5ef72e0f3d..41c8d906bf 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldZoneIdTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/datefield/DateTimeFieldZoneIdTest.java
@@ -12,11 +12,12 @@ import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
+import java.util.List;
import java.util.TimeZone;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
import org.junit.Test;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.ComboBoxElement;
import com.vaadin.testbench.elements.DateTimeFieldElement;
@@ -25,20 +26,14 @@ import com.vaadin.tests.tb3.MultiBrowserTest;
public class DateTimeFieldZoneIdTest extends MultiBrowserTest {
- private static TimeZone defaultTimeZone;
- private static LocalDateTime THIRTY_OF_JULY = INITIAL_DATE_TIME
- .plus(6, MONTHS).withDayOfMonth(30);
-
- @BeforeClass
- public static void init() {
- defaultTimeZone = TimeZone.getDefault();
- TimeZone.setDefault(TimeZone.getTimeZone("Brazil/Acre"));
+ @Override
+ public List<DesiredCapabilities> getBrowsersToTest() {
+ // PhantomJS doesn't support getting timezone
+ return getBrowsersExcludingPhantomJS();
}
- @AfterClass
- public static void cleanup() {
- TimeZone.setDefault(defaultTimeZone);
- }
+ private static LocalDateTime THIRTY_OF_JULY = INITIAL_DATE_TIME
+ .plus(6, MONTHS).withDayOfMonth(30);
@Test
public void defaultDisplayName() {
@@ -157,11 +152,18 @@ public class DateTimeFieldZoneIdTest extends MultiBrowserTest {
*
* The {@link ZoneId} used is the operating system default
*/
- private static String getUTCString(LocalDate localDate) {
- Instant instant = localDate.atStartOfDay()
- .atZone(defaultTimeZone.toZoneId()).toInstant();
+ private String getUTCString(LocalDate localDate) {
+ // Get the TimeZone from browser
+ String browserTimeZone = ((JavascriptExecutor) getDriver())
+ .executeScript(
+ "return Intl.DateTimeFormat().resolvedOptions().timeZone;")
+ .toString();
+
+ TimeZone timeZone = TimeZone.getTimeZone(browserTimeZone);
+ Instant instant = localDate.atStartOfDay().atZone(timeZone.toZoneId())
+ .toInstant();
Duration duration = Duration
- .ofMillis(defaultTimeZone.getOffset(instant.toEpochMilli()));
+ .ofMillis(timeZone.getOffset(instant.toEpochMilli()));
String suffix;
if (duration.toMinutes() == 0) {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java b/uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
index 78a0614726..205ac213c4 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedThemeResourceTest.java
@@ -8,6 +8,7 @@ import static org.junit.Assert.assertTrue;
import java.util.Collections;
import java.util.List;
+import org.junit.Assume;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
@@ -19,6 +20,7 @@ import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.EmbeddedElement;
import com.vaadin.testbench.elements.ImageElement;
import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.SingleBrowserTest;
import com.vaadin.ui.Embedded;
import com.vaadin.ui.Image;
@@ -32,17 +34,12 @@ import com.vaadin.ui.Image;
*/
public class EmbeddedThemeResourceTest extends SingleBrowserTest {
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- // Seems like stylesheet onload is not fired on PhantomJS
- // https://github.com/ariya/phantomjs/issues/12332
- return Collections
- .singletonList(Browser.FIREFOX.getDesiredCapabilities());
- }
-
@Before
@Override
public void setup() throws Exception {
+ Assume.assumeFalse("PhantomJS does not send onload events for styles",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
super.setup();
openTestURL();
waitForElementPresent(By.className("v-embedded"));
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
index 8948bdfb68..1420cfeefe 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
@@ -198,6 +198,7 @@ public class GridComponentsTest extends MultiBrowserTest {
$(NotificationElement.class).first().getText()
.contains(string));
$(NotificationElement.class).first().close();
+ waitUntil(driver -> !isElementPresent(NotificationElement.class), 10);
}
private void assertNoButton(int i) {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridInWindowResizeTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridInWindowResizeTest.java
index f7ea503e31..5efcdba1aa 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridInWindowResizeTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridInWindowResizeTest.java
@@ -2,24 +2,13 @@ package com.vaadin.tests.components.grid;
import static org.junit.Assert.assertTrue;
-import java.util.Collections;
-import java.util.List;
-
import org.junit.Test;
-import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
-import com.vaadin.testbench.parallel.Browser;
-import com.vaadin.tests.tb3.MultiBrowserTest;
-
-public class GridInWindowResizeTest extends MultiBrowserTest {
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- // Must test on a browser with animations
- return Collections
- .singletonList(Browser.CHROME.getDesiredCapabilities());
- }
+import com.vaadin.tests.tb3.SingleBrowserTest;
+
+public class GridInWindowResizeTest extends SingleBrowserTest {
@Test
public void resizeWindow() {
@@ -27,6 +16,13 @@ public class GridInWindowResizeTest extends MultiBrowserTest {
GridElement grid = $(GridElement.class).first();
int col1WidthBefore = grid.getCell(0, 0).getSize().getWidth();
$(ButtonElement.class).caption("resize").first().click();
+
+ try {
+ // Sleep for 1 second for animation.
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ }
+
int col1WidthAfter = grid.getCell(0, 0).getSize().getWidth();
assertTrue(col1WidthAfter < col1WidthBefore);
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridRendererSwitchTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridRendererSwitchTest.java
index ce81eb796a..959a83b8d2 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridRendererSwitchTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridRendererSwitchTest.java
@@ -10,8 +10,10 @@ import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.NotificationElement;
+import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.SingleBrowserTest;
+@TestCategory("xvfb-test")
public class GridRendererSwitchTest extends SingleBrowserTest {
@Test
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java
index 87a29085fa..bb9ba916d8 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridSelectionTest.java
@@ -382,7 +382,7 @@ public class GridSelectionTest extends GridBasicsTest {
assertFalse(getGridElement().getRow(10).isSelected());
// Select all by press SPACE on the header cell (should not select)
- getGridElement().getHeaderCell(0, 0).sendKeys(Keys.SPACE);
+ new Actions(getDriver()).sendKeys(Keys.SPACE);
assertFalse(getSelectAllCheckbox().isSelected());
assertFalse(getGridElement().getRow(0).isSelected());
assertFalse(getGridElement().getRow(10).isSelected());
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorTest.java
index 2dfc956dee..5dc4b42303 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorTest.java
@@ -1,5 +1,9 @@
package com.vaadin.tests.components.grid.basics;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
@@ -13,8 +17,6 @@ import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridEditorElement;
-import static org.junit.Assert.*;
-
public abstract class GridEditorTest extends GridBasicsTest {
protected static final org.openqa.selenium.By BY_EDITOR_CANCEL = By
@@ -29,6 +31,9 @@ public abstract class GridEditorTest extends GridBasicsTest {
public void setUp() {
setDebug(true);
openTestURL();
+
+ minimizeDebugWindow();
+
selectMenuPath(TOGGLE_EDIT_ENABLED);
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorUnbufferedTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorUnbufferedTest.java
index 8402828b9b..ddb29b426c 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorUnbufferedTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridEditorUnbufferedTest.java
@@ -97,7 +97,7 @@ public class GridEditorUnbufferedTest extends GridEditorTest {
String faultyInt = "not a number";
getEditor().getField(7).sendKeys(faultyInt);
- getGridElement().getCell(6, 7).click();
+ getGridElement().getCell(7, 7).click();
assertEquals("Editor should not move from row 5", "(5, 0)",
getEditor().getField(0).getAttribute("value"));
diff --git a/uitest/src/test/java/com/vaadin/tests/components/label/LabelTooltipTest.java b/uitest/src/test/java/com/vaadin/tests/components/label/LabelTooltipTest.java
index ac7299820b..20196fbed4 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/label/LabelTooltipTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/label/LabelTooltipTest.java
@@ -44,9 +44,10 @@ public class LabelTooltipTest extends MultiBrowserTest {
/*
* Some cases tooltip doesn't disappear without some extra mouse events
*/
- new Actions(getDriver()).moveByOffset(100, -40).perform();
- new Actions(getDriver()).moveToElement($(LabelElement.class).get(1))
- .click().perform();
+ $(LabelElement.class).get(1).showTooltip();
+
+ assertEquals("Tooltip should be empty and hidden.", "",
+ getTooltipElement().getText());
$(LabelElement.class).get(4).showTooltip();
assertEquals(
diff --git a/uitest/src/test/java/com/vaadin/tests/components/listselect/ListSelectTest.java b/uitest/src/test/java/com/vaadin/tests/components/listselect/ListSelectTest.java
index 9172e079e7..83d41277e1 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/listselect/ListSelectTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/listselect/ListSelectTest.java
@@ -20,9 +20,9 @@ import org.openqa.selenium.support.ui.Select;
import com.vaadin.testbench.elements.AbstractComponentElement.ReadOnlyException;
import com.vaadin.testbench.elements.ListSelectElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class ListSelectTest extends SingleBrowserTestPhantomJS2 {
+public class ListSelectTest extends SingleBrowserTest {
@Before
public void setUp() throws Exception {
openTestURL();
@@ -236,8 +236,7 @@ public class ListSelectTest extends SingleBrowserTestPhantomJS2 {
Select select = new Select(
getListSelect().findElement(By.tagName("select")));
return select.getAllSelectedOptions().stream()
- .map(element -> element.getText())
- .collect(Collectors.toList());
+ .map(element -> element.getText()).collect(Collectors.toList());
}
private void assertSelected(String... expectedSelection) {
diff --git a/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java b/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java
index 4da01aabaa..3415663ca5 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java
@@ -3,12 +3,14 @@ package com.vaadin.tests.components.menubar;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import org.junit.Assume;
import org.junit.Test;
import org.openqa.selenium.WebElement;
import com.vaadin.server.FontAwesome;
import com.vaadin.testbench.By;
import com.vaadin.testbench.elements.MenuBarElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class MenuBarIconsTest extends SingleBrowserTest {
@@ -44,10 +46,14 @@ public class MenuBarIconsTest extends SingleBrowserTest {
@Test
public void imageIconsRendered() {
+ Assume.assumeFalse(
+ "PhantomJS uses different font which shifts index of the 'More' item",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
MenuBarElement menu = $(MenuBarElement.class).id("image");
WebElement moreItem = menu
- .findElements(By.className("v-menubar-menuitem")).get(3);
+ .findElements(By.className("v-menubar-menuitem")).get(4);
String image = "/tests-valo/img/email-reply.png";
assertImage(image, menu.findElement(By.vaadin("#Main")));
diff --git a/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java b/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
index 0830cb5ad7..a209fab161 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/CaptionLeakTest.java
@@ -13,6 +13,9 @@ public class CaptionLeakTest extends MultiBrowserTest {
setDebug(true);
openTestURL();
+ // Make sure debug window is visible
+ showDebugWindow();
+
openDebugLogTab();
// this should be present
diff --git a/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java b/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java
index 97df454cfd..1ca4ec0ffa 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/orderedlayout/SpacingLeakTest.java
@@ -11,6 +11,10 @@ public class SpacingLeakTest extends MultiBrowserTest {
public void testSpacingLeak() throws Exception {
setDebug(true);
openTestURL();
+
+ // Make sure debug window is visible
+ showDebugWindow();
+
openDebugLogTab();
getDriver().findElement(By.id("addbutton")).click();
getDriver().findElement(By.xpath("//button[@title = 'Clear log']"))
diff --git a/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticReindeerTest.java b/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticReindeerTest.java
index 0217dbf10f..ee18a02799 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticReindeerTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticReindeerTest.java
@@ -2,12 +2,13 @@ package com.vaadin.tests.components.progressindicator;
import org.junit.Test;
+import com.vaadin.testbench.elements.ProgressBarElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class ProgressBarStaticReindeerTest extends MultiBrowserTest {
@Test
public void compareScreenshot() throws Exception {
openTestURL();
- compareScreen("screen");
+ compareScreen($(ProgressBarElement.class).first(), "screen");
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticRunoTest.java b/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticRunoTest.java
index d481f6808d..dc13ff7cbd 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticRunoTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/progressindicator/ProgressBarStaticRunoTest.java
@@ -2,12 +2,13 @@ package com.vaadin.tests.components.progressindicator;
import org.junit.Test;
+import com.vaadin.testbench.elements.ProgressBarElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class ProgressBarStaticRunoTest extends MultiBrowserTest {
@Test
public void compareScreenshot() throws Exception {
openTestURL();
- compareScreen("screen");
+ compareScreen($(ProgressBarElement.class).first(), "screen");
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridClientSortTest.java b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridClientSortTest.java
index 4e56e8445e..20e2c2b360 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridClientSortTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridClientSortTest.java
@@ -20,7 +20,8 @@ public class TreeGridClientSortTest extends SingleBrowserTest {
TreeGridElement grid = $(TreeGridElement.class).first();
selectMenuPath("Component", "Features", "Set data provider",
"TreeDataProvider");
- grid.getHeaderCell(0, 0).doubleClick();
+ grid.getHeaderCell(0, 0).click();
+ grid.getHeaderCell(0, 0).click();
grid.expandWithClick(0);
grid.expandWithClick(1);
grid.collapseWithClick(0);
diff --git a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridCollapseExpandTest.java b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridCollapseExpandTest.java
index 038d51d7c0..d7219a7e60 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridCollapseExpandTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridCollapseExpandTest.java
@@ -2,12 +2,14 @@ package com.vaadin.tests.components.treegrid;
import static org.junit.Assert.assertEquals;
+import org.junit.Assume;
import org.junit.Test;
import com.vaadin.testbench.elements.TreeGridElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class TreeGridCollapseExpandTest extends SingleBrowserTestPhantomJS2 {
+public class TreeGridCollapseExpandTest extends SingleBrowserTest {
private TreeGridElement grid;
@@ -18,6 +20,9 @@ public class TreeGridCollapseExpandTest extends SingleBrowserTestPhantomJS2 {
@Test
public void no_race_condition_with_multiple_collapse_or_expand() {
+ Assume.assumeFalse("PhantomJS has issues with this test",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
grid = $(TreeGridElement.class).first();
testBench().disableWaitForVaadin();
diff --git a/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java b/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
deleted file mode 100644
index 2889ac4219..0000000000
--- a/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportEmptyTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.vaadin.tests.components.ui;
-
-import static org.junit.Assert.assertTrue;
-
-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.parallel.Browser;
-import com.vaadin.tests.tb3.MultiBrowserTest;
-
-public class DynamicViewportEmptyTest extends MultiBrowserTest {
-
- @Override
- protected Class<?> getUIClass() {
- return DynamicViewport.class;
- }
-
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- return getBrowserCapabilities(Browser.CHROME);
- }
-
- @Test
- public void testGeneratedEmptyViewport() {
- openTestURL();
-
- List<WebElement> viewportElements = findElements(
- By.cssSelector("meta[name=viewport]"));
-
- assertTrue("There should be no viewport tags",
- viewportElements.isEmpty());
- }
-
-}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportTest.java b/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportTest.java
index cd29b27db8..8089ad8db0 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/ui/DynamicViewportTest.java
@@ -2,6 +2,9 @@ package com.vaadin.tests.components.ui;
import static org.junit.Assert.assertTrue;
+import java.util.List;
+import java.util.Locale;
+
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
@@ -17,7 +20,22 @@ public class DynamicViewportTest extends SingleBrowserTest {
WebElement viewportElement = findElement(
By.cssSelector("meta[name=viewport]"));
- assertTrue(
- viewportElement.getAttribute("content").contains("PhantomJS"));
+ String viewportContent = viewportElement.getAttribute("content")
+ .toLowerCase(Locale.ROOT);
+ String browserName = getDesiredCapabilities().getBrowserName()
+ .toLowerCase(Locale.ROOT);
+
+ assertTrue(viewportContent.contains(browserName));
+ }
+
+ @Test
+ public void testGeneratedEmptyViewport() {
+ openTestURL(DynamicViewport.VIEWPORT_DISABLE_PARAMETER);
+
+ List<WebElement> viewportElements = findElements(
+ By.cssSelector("meta[name=viewport]"));
+
+ assertTrue("There should be no viewport tags",
+ viewportElements.isEmpty());
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/ui/WindowAndUIShortcutsTest.java b/uitest/src/test/java/com/vaadin/tests/components/ui/WindowAndUIShortcutsTest.java
index 8c54efef00..5e3a0ba912 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/ui/WindowAndUIShortcutsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/ui/WindowAndUIShortcutsTest.java
@@ -6,9 +6,9 @@ import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
import com.vaadin.testbench.elements.ButtonElement;
-import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.testbench.elements.WindowElement;
import com.vaadin.tests.tb3.SingleBrowserTest;
@@ -20,10 +20,8 @@ public class WindowAndUIShortcutsTest extends SingleBrowserTest {
$(ButtonElement.class).caption("Show page").first().click();
$(ButtonElement.class).caption("Open dialog window").first().click();
- WindowElement window = $(WindowElement.class).first();
- // for PhantomJS to have the focus in the right place
- window.click();
- window.$(TextFieldElement.class).first().sendKeys(Keys.ESCAPE);
+ $(WindowElement.class).$(ButtonElement.class).first()
+ .sendKeys(Keys.ESCAPE);
// Window should have been closed
assertTrue($(WindowElement.class).all().isEmpty());
@@ -39,7 +37,12 @@ public class WindowAndUIShortcutsTest extends SingleBrowserTest {
WebElement curtain = findElement(
By.className("v-window-modalitycurtain"));
- curtain.sendKeys(Keys.ESCAPE);
+
+ // Click in the curtain next to the window and send escape
+ new Actions(getDriver()).moveToElement(curtain,
+ $(WindowElement.class).first().getSize().getWidth() * 2, 0)
+ .click().sendKeys(Keys.ESCAPE).perform();
+
// "Close page" should not have been clicked
assertTrue($(ButtonElement.class).caption("Close page").exists());
diff --git a/uitest/src/test/java/com/vaadin/tests/components/upload/InterruptUploadTest.java b/uitest/src/test/java/com/vaadin/tests/components/upload/InterruptUploadTest.java
index 1df188202d..9870190449 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/upload/InterruptUploadTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/upload/InterruptUploadTest.java
@@ -41,6 +41,9 @@ public class InterruptUploadTest extends MultiBrowserTest {
$(ButtonElement.class).caption("Cancel").first().click();
+ // Wait for 1 second for server to finish up.
+ Thread.sleep(1000);
+
String expected = " (counting interrupted at ";
String actual = $(LabelElement.class).caption("Line breaks counted")
.first().getText();
diff --git a/uitest/src/test/java/com/vaadin/tests/debug/HierarchyAfterAnalyzeLayoutsTest.java b/uitest/src/test/java/com/vaadin/tests/debug/HierarchyAfterAnalyzeLayoutsTest.java
index 9865624573..b8b351feb2 100644
--- a/uitest/src/test/java/com/vaadin/tests/debug/HierarchyAfterAnalyzeLayoutsTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/debug/HierarchyAfterAnalyzeLayoutsTest.java
@@ -20,6 +20,8 @@ public class HierarchyAfterAnalyzeLayoutsTest extends MultiBrowserTest {
public void checkNoLayoutProblemsFound() throws IOException {
setDebug(true);
openTestURL();
+ // Make sure debug window is visible
+ showDebugWindow();
// select tab
pressDebugWindowButton(findByXpath(
diff --git a/uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveWidthAndHeightTest.java b/uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveWidthAndHeightTest.java
index 5d9bf4ea17..512a2b2247 100644
--- a/uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveWidthAndHeightTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveWidthAndHeightTest.java
@@ -26,7 +26,7 @@ public class ResponsiveWidthAndHeightTest extends MultiBrowserTest {
// IE sometimes has trouble waiting long enough.
waitUntil(ExpectedConditions.presenceOfElementLocated(
- By.cssSelector(".v-csslayout-width-and-height")), 30);
+ By.cssSelector(".v-csslayout-width-and-height")), 30);
// Verify both width-range and height-range.
assertEquals("600px-",
diff --git a/uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java b/uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java
index d16e2a2442..5fa0ce83f9 100644
--- a/uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicCrudGridTest.java
@@ -5,15 +5,17 @@ import static org.junit.Assert.assertNotEquals;
import java.util.List;
+import org.junit.Assume;
import org.junit.Test;
import com.vaadin.testbench.AbstractHasTestBenchCommandExecutor;
import com.vaadin.testbench.elements.AbstractComponentElement;
import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.TextFieldElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class BasicCrudGridTest extends SingleBrowserTestPhantomJS2 {
+public class BasicCrudGridTest extends SingleBrowserTest {
@Test
public void fieldsInitiallyEmpty() {
@@ -32,6 +34,9 @@ public class BasicCrudGridTest extends SingleBrowserTestPhantomJS2 {
@Test
public void fieldsClearedOnDeselect() {
+ Assume.assumeFalse("PhantomJS has issues with this test",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
// Select row
diff --git a/uitest/src/test/java/com/vaadin/tests/layoutmanager/ConcurrentModificationUITest.java b/uitest/src/test/java/com/vaadin/tests/layoutmanager/ConcurrentModificationUITest.java
index 4a64fc3173..ebe47287eb 100644
--- a/uitest/src/test/java/com/vaadin/tests/layoutmanager/ConcurrentModificationUITest.java
+++ b/uitest/src/test/java/com/vaadin/tests/layoutmanager/ConcurrentModificationUITest.java
@@ -1,6 +1,7 @@
package com.vaadin.tests.layoutmanager;
import org.junit.Test;
+import org.openqa.selenium.Dimension;
import com.vaadin.tests.tb3.SingleBrowserTest;
@@ -8,9 +9,9 @@ public class ConcurrentModificationUITest extends SingleBrowserTest {
@Test
public void noExceptionWhenEnlarging() {
- testBench().resizeViewPortTo(100, 100);
+ getDriver().manage().window().setSize(new Dimension(100, 100));
openTestURL("debug");
- testBench().resizeViewPortTo(200, 200);
+ getDriver().manage().window().setSize(new Dimension(200, 200));
assertNoErrorNotifications();
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/layouts/CssLayoutRemoveComponentTest.java b/uitest/src/test/java/com/vaadin/tests/layouts/CssLayoutRemoveComponentTest.java
index ce125f347c..d2a72048a0 100644
--- a/uitest/src/test/java/com/vaadin/tests/layouts/CssLayoutRemoveComponentTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/layouts/CssLayoutRemoveComponentTest.java
@@ -2,15 +2,20 @@ package com.vaadin.tests.layouts;
import static org.junit.Assert.assertEquals;
+import org.junit.Assume;
import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.TextFieldElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class CssLayoutRemoveComponentTest extends SingleBrowserTestPhantomJS2 {
+public class CssLayoutRemoveComponentTest extends SingleBrowserTest {
@Test
public void testRemoveOnlyNecessaryComponentsFromDom() {
+ Assume.assumeFalse("PhantomJS has issues with this test",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
String script = "document.mutationEventCount = 0;"
diff --git a/uitest/src/test/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayoutTest.java b/uitest/src/test/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayoutTest.java
index 2857de975d..05a9e4aaac 100644
--- a/uitest/src/test/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayoutTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/layouts/RelativeSizeInUndefinedCssLayoutTest.java
@@ -7,10 +7,10 @@ import org.junit.Test;
import com.vaadin.testbench.elements.FormLayoutElement;
import com.vaadin.testbench.elements.TextFieldElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
public class RelativeSizeInUndefinedCssLayoutTest
- extends SingleBrowserTestPhantomJS2 {
+ extends SingleBrowserTest {
@Test
public void relativeSizeInUndefinedCssLayout() {
diff --git a/uitest/src/test/java/com/vaadin/tests/layouts/VerticalLayoutRemoveComponentTest.java b/uitest/src/test/java/com/vaadin/tests/layouts/VerticalLayoutRemoveComponentTest.java
index 4115b0f250..6514397412 100644
--- a/uitest/src/test/java/com/vaadin/tests/layouts/VerticalLayoutRemoveComponentTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/layouts/VerticalLayoutRemoveComponentTest.java
@@ -2,16 +2,20 @@ package com.vaadin.tests.layouts;
import static org.junit.Assert.assertEquals;
+import org.junit.Assume;
import org.junit.Test;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.elements.VerticalLayoutElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.testbench.parallel.BrowserUtil;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class VerticalLayoutRemoveComponentTest
- extends SingleBrowserTestPhantomJS2 {
+public class VerticalLayoutRemoveComponentTest extends SingleBrowserTest {
@Test
public void testRemoveOnlyNecessaryComponentsFromDom() {
+ Assume.assumeFalse("PhantomJS has issues with this test",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
openTestURL();
String script = "document.mutationEventCount = 0;"
diff --git a/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java b/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java
index 438a2c848c..e75da79f8c 100644
--- a/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/serialization/SerializerTestTest.java
@@ -3,23 +3,48 @@ package com.vaadin.tests.serialization;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.TimeZone;
+import java.util.stream.Collectors;
+
import org.junit.Test;
+import org.openqa.selenium.JavascriptExecutor;
+import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.annotations.RunLocally;
+import com.vaadin.testbench.parallel.Browser;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class SerializerTestTest extends MultiBrowserTest {
+ private static final SimpleDateFormat FORMAT = new SimpleDateFormat(
+ "EEE MMM dd HH:mm:ss 'GMT'Z yyyy", new Locale("en", "fi"));
+
+ @Override
+ public List<DesiredCapabilities> getBrowsersToTest() {
+ // PhantomJS doesn't support getting timezone
+ return getBrowsersExcludingPhantomJS();
+ }
+
@Test
public void testSerialization() {
+ // Set up formatting with browsers timezone
+ FORMAT.setTimeZone(getBrowserTimeZone());
+
openTestURL();
int logRow = 0;
assertEquals("sendJson: {\"b\":false,\"s\":\"JSON\"}, null, \"value\"",
getLogRow(logRow++));
assertEquals(
- "sendDateArray: January 31, 2013 10:00:00 PM UTC January 31, 2012 10:00:00 PM UTC",
+ "sendDateArray: January 31, 2013 12:00:00 AM UTC January 31, 2012 12:00:00 AM UTC",
getLogRow(logRow++));
- assertEquals("sendDate: May 31, 2013 8:12:13 AM UTC",
+ assertEquals("sendDate: May 1, 2013 11:12:13 AM UTC",
getLogRow(logRow++));
assertEquals("sendDate: January 1, 1970 12:00:00 AM UTC",
getLogRow(logRow++));
@@ -67,13 +92,19 @@ public class SerializerTestTest extends MultiBrowserTest {
"sendBoolean: false, false, [false, false, true, false, true, true]",
getLogRow(logRow++));
assertEquals("sendBeanSubclass: 43", getLogRow(logRow++));
+
+ // Dates from state
+ Date date1 = new Date(1);
+ Date date2 = new Date(Date.UTC(2013 - 1900, 4, 1, 11, 12, 13));
+ Date[] dateArray = new Date[] { new Date(1), new Date(2) };
+
assertEquals(
- "state.dateArray: Thu Jan 01 02:00:00 GMT+200 1970 Thu Jan 01 02:00:00 GMT+200 1970",
- getLogRow(logRow++));
- assertEquals("state.date2: Fri May 31 11:12:13 GMT+300 2013",
- getLogRow(logRow++));
- assertEquals("state.date1: Thu Jan 01 02:00:00 GMT+200 1970",
+ "state.dateArray: " + Arrays.stream(dateArray)
+ .map(this::formatDate).collect(Collectors.joining(" ")),
getLogRow(logRow++));
+ assertEquals("state.date2: " + formatDate(date2), getLogRow(logRow++));
+ assertEquals("state.date1: " + formatDate(date1), getLogRow(logRow++));
+
assertEquals("state.jsonBoolean: false", getLogRow(logRow++));
assertEquals("state.jsonString: a string", getLogRow(logRow++));
assertEquals("state.jsonNull: NULL", getLogRow(logRow++));
@@ -107,6 +138,19 @@ public class SerializerTestTest extends MultiBrowserTest {
assertEquals(
"state.booleanArray: [true, true, false, true, false, false]",
getLogRow(logRow++));
+ }
+
+ private TimeZone getBrowserTimeZone() {
+ // Ask TimeZone from browser
+ String browserTimeZone = ((JavascriptExecutor) getDriver())
+ .executeScript(
+ "return Intl.DateTimeFormat().resolvedOptions().timeZone;")
+ .toString();
+ return TimeZone.getTimeZone(browserTimeZone);
+ }
+ private String formatDate(Date date) {
+ // JavaScript formatting drops leading 0 from offset
+ return FORMAT.format(date).replaceAll("(GMT[+-])0", "$1");
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java
index 72be26cb08..411121d5c5 100644
--- a/uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java
@@ -181,6 +181,22 @@ public abstract class AbstractTB3Test extends ParallelTest {
message)));
}
+ protected void minimizeDebugWindow() {
+ if (findElement(By.className("v-debugwindow-tabs")).isDisplayed()) {
+ findElements(By.className("v-debugwindow-button")).stream()
+ .filter(e -> e.getAttribute("title").equals("Minimize"))
+ .findFirst().ifPresent(WebElement::click);
+ }
+ }
+
+ protected void showDebugWindow() {
+ if (!findElement(By.className("v-debugwindow-tabs")).isDisplayed()) {
+ findElements(By.className("v-debugwindow-button")).stream()
+ .filter(e -> e.getAttribute("title").equals("Minimize"))
+ .findFirst().ifPresent(WebElement::click);
+ }
+ }
+
protected void waitForDebugMessage(final String expectedMessage) {
waitForDebugMessage(expectedMessage, 30);
}
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/PrivateTB3Configuration.java b/uitest/src/test/java/com/vaadin/tests/tb3/PrivateTB3Configuration.java
index a1267dd2d8..ebeea11c38 100644
--- a/uitest/src/test/java/com/vaadin/tests/tb3/PrivateTB3Configuration.java
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/PrivateTB3Configuration.java
@@ -8,6 +8,7 @@ import java.io.IOException;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
+import java.nio.file.Paths;
import java.util.Calendar;
import java.util.Enumeration;
import java.util.Locale;
@@ -16,6 +17,7 @@ import java.util.Properties;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
+import com.vaadin.testbench.Parameters;
import com.vaadin.testbench.annotations.BrowserFactory;
import com.vaadin.testbench.annotations.RunLocally;
import com.vaadin.testbench.annotations.RunOnHub;
@@ -31,7 +33,8 @@ import com.vaadin.testbench.parallel.BrowserUtil;
*/
@RunOnHub("tb3-hub.intra.itmill.com")
@BrowserFactory(VaadinBrowserFactory.class)
-public abstract class PrivateTB3Configuration extends ScreenshotTB3Test { public static final String SCREENSHOT_DIRECTORY = "com.vaadin.testbench.screenshot.directory";
+public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
+ public static final String SCREENSHOT_DIRECTORY = "com.vaadin.testbench.screenshot.directory";
private static final String HOSTNAME_PROPERTY = "com.vaadin.testbench.deployment.hostname";
private static final String RUN_LOCALLY_PROPERTY = "com.vaadin.testbench.runLocally";
private static final String ALLOW_RUN_LOCALLY_PROPERTY = "com.vaadin.testbench.allowRunLocally";
@@ -48,25 +51,45 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test { pub
if (propertiesFile.exists()) {
try {
properties.load(new FileInputStream(propertiesFile));
- if (properties.containsKey(RUN_LOCALLY_PROPERTY)) {
- System.setProperty("useLocalWebDriver", "true");
- DesiredCapabilities localBrowser = getRunLocallyCapabilities();
- System.setProperty("browsers.include",
- localBrowser.getBrowserName()
- + localBrowser.getVersion());
- }
- if (properties.containsKey(FIREFOX_PATH)) {
- System.setProperty(FIREFOX_PATH,
- properties.getProperty(FIREFOX_PATH));
- }
- if (properties.containsKey(PHANTOMJS_PATH)) {
- System.setProperty(PHANTOMJS_PATH,
- properties.getProperty(PHANTOMJS_PATH));
- }
} catch (IOException e) {
throw new RuntimeException(e);
}
}
+ if (properties.containsKey(RUN_LOCALLY_PROPERTY)) {
+ System.setProperty("useLocalWebDriver", "true");
+ DesiredCapabilities localBrowser = getRunLocallyCapabilities();
+ System.setProperty("browsers.include",
+ localBrowser.getBrowserName() + localBrowser.getVersion());
+ }
+ if (properties.containsKey(FIREFOX_PATH)) {
+ System.setProperty(FIREFOX_PATH,
+ properties.getProperty(FIREFOX_PATH));
+ }
+ if (properties.containsKey(PHANTOMJS_PATH)) {
+ System.setProperty(PHANTOMJS_PATH,
+ properties.getProperty(PHANTOMJS_PATH));
+ }
+
+ String dir = System.getProperty(SCREENSHOT_DIRECTORY,
+ properties.getProperty(SCREENSHOT_DIRECTORY));
+ if (dir != null && !dir.isEmpty()) {
+ String reference = Paths.get(dir, "reference").toString();
+ String errors = Paths.get(dir, "errors").toString();
+ Parameters.setScreenshotReferenceDirectory(reference);
+ Parameters.setScreenshotErrorDirectory(errors);
+ } else {
+ // Attempt to pass specific values to Parameters based on
+ // real property name
+ final String base = Parameters.class.getName() + ".";
+ if (properties.containsKey(base + "screenshotReferenceDirectory")) {
+ Parameters.setScreenshotReferenceDirectory(properties
+ .getProperty(base + "screenshotReferenceDirectory"));
+ }
+ if (properties.containsKey(base + "screenshotErrorDirectory")) {
+ Parameters.setScreenshotErrorDirectory(properties
+ .getProperty(base + "screenshotErrorDirectory"));
+ }
+ }
}
@Override
@@ -111,10 +134,21 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test { pub
protected static DesiredCapabilities getRunLocallyCapabilities() {
VaadinBrowserFactory factory = new VaadinBrowserFactory();
+
try {
- return factory.create(
- Browser.valueOf(properties.getProperty(RUN_LOCALLY_PROPERTY)
- .toUpperCase(Locale.ROOT)));
+ if (properties.containsKey(RUN_LOCALLY_PROPERTY)) {
+ // RunLocally defined in propeties file
+ return factory.create(Browser
+ .valueOf(properties.getProperty(RUN_LOCALLY_PROPERTY)
+ .toUpperCase(Locale.ROOT)));
+ } else if (System.getProperties().containsKey("browsers.include")) {
+ // Use first included browser as the run locally browser.
+ String property = System.getProperty("browsers.include");
+ String firstBrowser = property.split(",")[0];
+
+ return factory.create(Browser.valueOf(firstBrowser
+ .replaceAll("[0-9]+$", "").toUpperCase(Locale.ROOT)));
+ }
} catch (Exception e) {
System.err.println(e.getMessage());
System.err.println("Falling back to FireFox");
@@ -132,16 +166,6 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test { pub
}
@Override
- protected String getScreenshotDirectory() {
- String screenshotDirectory = getProperty(SCREENSHOT_DIRECTORY);
- if (screenshotDirectory == null) {
- throw new RuntimeException("No screenshot directory defined. Use -D"
- + SCREENSHOT_DIRECTORY + "=<path>");
- }
- return screenshotDirectory;
- }
-
- @Override
protected String getHubURL() {
String hubUrl = getProperty(HUB_URL);
if (hubUrl == null || hubUrl.trim().isEmpty()) {
@@ -182,7 +206,7 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test { pub
return true;
}
- return false;
+ return "true".equals(System.getProperty("useLocalWebDriver", "false"));
}
/**
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/ScreenshotTB3Test.java b/uitest/src/test/java/com/vaadin/tests/tb3/ScreenshotTB3Test.java
index 6810498814..fbc103ffd0 100644
--- a/uitest/src/test/java/com/vaadin/tests/tb3/ScreenshotTB3Test.java
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/ScreenshotTB3Test.java
@@ -13,6 +13,7 @@ import org.junit.Rule;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
+import org.openqa.selenium.Platform;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
@@ -82,10 +83,6 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
@Before
public void setupScreenComparisonParameters() {
screenshotFailures = new ArrayList<>();
-
- Parameters.setScreenshotErrorDirectory(getScreenshotErrorDirectory());
- Parameters.setScreenshotReferenceDirectory(
- getScreenshotReferenceDirectory());
}
/**
@@ -236,8 +233,10 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
private File getErrorFileFromReference(File referenceFile) {
String absolutePath = referenceFile.getAbsolutePath();
- String screenshotReferenceDirectory = getScreenshotReferenceDirectory();
- String screenshotErrorDirectory = getScreenshotErrorDirectory();
+ String screenshotReferenceDirectory = Parameters
+ .getScreenshotReferenceDirectory();
+ String screenshotErrorDirectory = Parameters
+ .getScreenshotErrorDirectory();
// We throw an exception to safeguard against accidental reference
// deletion. See (#14446)
if (!absolutePath.contains(screenshotReferenceDirectory)) {
@@ -312,39 +311,6 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
}
/**
- * @return the base directory of 'reference' and 'errors' screenshots
- */
- protected abstract String getScreenshotDirectory();
-
- /**
- * @return the base directory of 'reference' and 'errors' screenshots with a
- * trailing file separator
- */
- private String getScreenshotDirectoryWithTrailingSeparator() {
- String screenshotDirectory = getScreenshotDirectory();
- if (!screenshotDirectory.endsWith(File.separator)) {
- screenshotDirectory += File.separator;
- }
- return screenshotDirectory;
- }
-
- /**
- * @return the directory where reference images are stored (the 'reference'
- * folder inside the screenshot directory)
- */
- private String getScreenshotReferenceDirectory() {
- return getScreenshotDirectoryWithTrailingSeparator() + "reference";
- }
-
- /**
- * @return the directory where comparison error images should be created
- * (the 'errors' folder inside the screenshot directory)
- */
- private String getScreenshotErrorDirectory() {
- return getScreenshotDirectoryWithTrailingSeparator() + "errors";
- }
-
- /**
* Checks if any screenshot comparisons failures occurred during the test
* and combines all comparison errors into one exception
*
@@ -367,7 +333,7 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
* fails
*/
private String getScreenshotFailureName() {
- return getScreenshotBaseName() + "_" + getUniqueIdentifier(null)
+ return getScreenshotBaseName() + "_" + getUniqueIdentifier(null, null)
+ "-failure.png";
}
@@ -392,24 +358,54 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
}
/**
- * Returns the name of the reference file based on the given parameters. The
- * version given in {@literal capabilities} is used unless it is overridden
- * by the {@literal versionOverride} parameter.
+ * Returns the name of the reference file based on the given parameters.
+ * This method takes in a {@code versionOverride} parameter to find a
+ * specific version in the reference name. If the {@link Platform} defined
+ * in the {@link DesiredCapabilities} is {@code ANY}, this method will
+ * attempt different platforms in the reference file names if needed.
*
- * @param testName
- * @param capabilities
* @param identifier
+ * @param versionOverride
* @return the full path of the reference
*/
private String getScreenshotReferenceName(String identifier,
Integer versionOverride) {
- return getScreenshotReferenceDirectory() + File.separator
+ String fileName = getScreenshotReferenceName(identifier,
+ versionOverride, null);
+ File refFile = new File(fileName);
+ if (!refFile.exists()
+ && getDesiredCapabilities().getPlatform() == Platform.ANY) {
+ for (Platform p : Platform.values()) {
+ String tmpName = getScreenshotReferenceName(identifier,
+ versionOverride, p);
+ if (new File(tmpName).exists()) {
+ return tmpName;
+ }
+ }
+ }
+ return fileName;
+ }
+
+ /**
+ * Returns the name of the reference file based on the given parameters.This
+ * method takes in {@code versionOverride} and {@code platformOverride}
+ * parameters.
+ *
+ * @param identifier
+ * @param versionOverride
+ * @param platformOverride
+ * @return the full path of the reference
+ */
+ private String getScreenshotReferenceName(String identifier,
+ Integer versionOverride, Platform platformOverride) {
+ return Parameters.getScreenshotReferenceDirectory() + File.separator
+ getScreenshotBaseName() + "_"
- + getUniqueIdentifier(versionOverride) + "_" + identifier
- + ".png";
+ + getUniqueIdentifier(versionOverride, platformOverride) + "_"
+ + identifier + ".png";
}
- private String getUniqueIdentifier(Integer versionOverride) {
+ private String getUniqueIdentifier(Integer versionOverride,
+ Platform platformOverride) {
String testNameAndParameters = testName.getMethodName();
// runTest-wildfly9-nginx[Windows_Firefox_24][/buffering/demo][valo]
@@ -426,13 +422,32 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
if (versionOverride != null) {
// Windows_Firefox_17_bufferingdemo_valo
- parameters = parameters.replaceFirst(
- "_" + getDesiredCapabilities().getVersion(),
- "_" + versionOverride);
+ int indexOfBrowser = parameters.indexOf("_") + 1;
+ parameters = parameters.substring(0, indexOfBrowser)
+ + parameters.substring(indexOfBrowser).replaceFirst(
+ "_" + getDesiredCapabilities().getVersion(),
+ "_" + versionOverride);
+ }
+
+ if (platformOverride != null) {
+ // LINUX_Firefox_17_bufferingdemo_valo
+ parameters = getPlatformName(platformOverride)
+ + parameters.substring(parameters.indexOf("_"));
}
+
return parameters;
}
+ private String getPlatformName(Platform platform) {
+ switch (platform) {
+ case WINDOWS:
+ // Reference file names have Windows instead of WINDOWS
+ return "Windows";
+ default:
+ return platform.name();
+ }
+ }
+
/**
* Returns the base name of the screenshot in the error directory. This is a
* name so that all files matching {@link #getScreenshotErrorBaseName()}*
@@ -442,8 +457,8 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
*/
private String getScreenshotErrorBaseName() {
return getScreenshotReferenceName("dummy", null)
- .replace(getScreenshotReferenceDirectory(),
- getScreenshotErrorDirectory())
+ .replace(Parameters.getScreenshotReferenceDirectory(),
+ Parameters.getScreenshotErrorDirectory())
.replace("_dummy.png", "");
}
@@ -455,7 +470,8 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
public void cleanErrorDirectory() {
// Remove any screenshots for this test from the error directory
// before running it. Leave unrelated files as-is
- File errorDirectory = new File(getScreenshotErrorDirectory());
+ File errorDirectory = new File(
+ Parameters.getScreenshotErrorDirectory());
// Create errors directory if it does not exist
if (!errorDirectory.exists()) {
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTest.java b/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTest.java
index e655d4992a..762f002c61 100644
--- a/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTest.java
@@ -14,6 +14,6 @@ public abstract class SingleBrowserTest extends PrivateTB3Configuration {
return Collections.singletonList(getRunLocallyCapabilities());
}
return Collections
- .singletonList(Browser.PHANTOMJS.getDesiredCapabilities());
+ .singletonList(Browser.CHROME.getDesiredCapabilities());
}
}
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java b/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java
deleted file mode 100644
index 432d582e04..0000000000
--- a/uitest/src/test/java/com/vaadin/tests/tb3/SingleBrowserTestPhantomJS2.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package com.vaadin.tests.tb3;
-
-import java.util.Collections;
-import java.util.List;
-
-import org.openqa.selenium.remote.DesiredCapabilities;
-
-public abstract class SingleBrowserTestPhantomJS2
- extends PrivateTB3Configuration {
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- return Collections.singletonList(PHANTOMJS2());
- }
-}
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/VaadinBrowserFactory.java b/uitest/src/test/java/com/vaadin/tests/tb3/VaadinBrowserFactory.java
index c98063e88b..e113e7783b 100644
--- a/uitest/src/test/java/com/vaadin/tests/tb3/VaadinBrowserFactory.java
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/VaadinBrowserFactory.java
@@ -20,8 +20,6 @@ public class VaadinBrowserFactory extends DefaultBrowserFactory {
if (browserFactoryClass != null
&& !browserFactoryClass.trim().isEmpty()) {
if (delegate == null) {
- getLogger()
- .info("Using browser factory " + browserFactoryClass);
try {
delegate = (TestBenchBrowserFactory) getClass()
.getClassLoader().loadClass(browserFactoryClass)
diff --git a/uitest/src/test/java/com/vaadin/tests/tb3/XvfbHubBrowserFactory.java b/uitest/src/test/java/com/vaadin/tests/tb3/XvfbHubBrowserFactory.java
new file mode 100644
index 0000000000..856a09f1ca
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/tb3/XvfbHubBrowserFactory.java
@@ -0,0 +1,24 @@
+package com.vaadin.tests.tb3;
+
+import org.openqa.selenium.Platform;
+import org.openqa.selenium.remote.DesiredCapabilities;
+
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.DefaultBrowserFactory;
+
+public class XvfbHubBrowserFactory extends DefaultBrowserFactory {
+
+ public DesiredCapabilities create(Browser browser) {
+ switch (browser) {
+ case IE11:
+ return super.create(browser);
+ case PHANTOMJS:
+ return create(browser, "2", Platform.LINUX);
+ case CHROME:
+ return create(browser, "", Platform.ANY);
+ case FIREFOX:
+ default:
+ return create(Browser.FIREFOX, "", Platform.ANY);
+ }
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/tests/themes/LegacyComponentThemeChangeTest.java b/uitest/src/test/java/com/vaadin/tests/themes/LegacyComponentThemeChangeTest.java
index 79099092d2..950f7daa73 100644
--- a/uitest/src/test/java/com/vaadin/tests/themes/LegacyComponentThemeChangeTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/themes/LegacyComponentThemeChangeTest.java
@@ -122,6 +122,9 @@ public class LegacyComponentThemeChangeTest extends MultiBrowserTest {
WebElement subMenuThemeImage = subMenu
.findElement(By.xpath(".//span[text()='selectedtheme']/img"));
assertAttributePrefix(subMenuThemeImage, "src", theme);
+
+ // Close menu item.
+ subMenuItem.click();
}
private void assertAttributePrefix(WebElement element, String attribute,
diff --git a/uitest/src/test/java/com/vaadin/tests/themes/ThemeChangeFaviconTest.java b/uitest/src/test/java/com/vaadin/tests/themes/ThemeChangeFaviconTest.java
index be19aef600..2dafc6c893 100644
--- a/uitest/src/test/java/com/vaadin/tests/themes/ThemeChangeFaviconTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/themes/ThemeChangeFaviconTest.java
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertTrue;
import java.util.Collections;
import java.util.List;
+import org.junit.Assume;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
@@ -13,20 +14,16 @@ import org.openqa.selenium.remote.DesiredCapabilities;
import com.vaadin.testbench.elements.ButtonElement;
import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.SingleBrowserTest;
public class ThemeChangeFaviconTest extends SingleBrowserTest {
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- // Seems like stylesheet onload is not fired on PhantomJS
- // https://github.com/ariya/phantomjs/issues/12332
- return Collections
- .singletonList(Browser.FIREFOX.getDesiredCapabilities());
- }
-
@Test
public void changeFavicon() throws InterruptedException {
+ Assume.assumeFalse("PhantomJS does not send onload events for styles",
+ BrowserUtil.isPhantomJS(getDesiredCapabilities()));
+
setDebug(true);
openTestURL();
assertFavicon("reindeer");
diff --git a/uitest/src/test/java/com/vaadin/tests/themes/valo/LayoutComponentGroupTest.java b/uitest/src/test/java/com/vaadin/tests/themes/valo/LayoutComponentGroupTest.java
index fe141fac58..cf4a319de5 100644
--- a/uitest/src/test/java/com/vaadin/tests/themes/valo/LayoutComponentGroupTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/themes/valo/LayoutComponentGroupTest.java
@@ -3,9 +3,9 @@ package com.vaadin.tests.themes.valo;
import org.junit.Test;
import com.vaadin.testbench.elements.VerticalLayoutElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class LayoutComponentGroupTest extends SingleBrowserTestPhantomJS2 {
+public class LayoutComponentGroupTest extends SingleBrowserTest {
@Test
public void renderedWithoutRoundedBordersInTheMiddle() throws Exception {
diff --git a/uitest/src/test/java/com/vaadin/tests/themes/valo/ResponsiveStylesTest.java b/uitest/src/test/java/com/vaadin/tests/themes/valo/ResponsiveStylesTest.java
index 87671486fc..04ba10b9f4 100644
--- a/uitest/src/test/java/com/vaadin/tests/themes/valo/ResponsiveStylesTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/themes/valo/ResponsiveStylesTest.java
@@ -9,6 +9,7 @@ import org.junit.Test;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
+import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
/**
@@ -62,6 +63,10 @@ public class ResponsiveStylesTest extends MultiBrowserTest {
public void testValoMenuResponsiveHover() throws Exception {
openTestURL(COLLAPSED_MENU_TEST_PARAM);
+ // Make sure mouse is not hovering the menu
+ new Actions(getDriver()).moveToElement($(LabelElement.class).first())
+ .moveByOffset(0, 300).perform();
+
compareScreen("collapsedMenu");
List<WebElement> toggles = findElements(
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/nativeselect/NativeSelectNullTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/nativeselect/NativeSelectNullTest.java
index bb880826c7..3da941f4ce 100644
--- a/uitest/src/test/java/com/vaadin/v7/tests/components/nativeselect/NativeSelectNullTest.java
+++ b/uitest/src/test/java/com/vaadin/v7/tests/components/nativeselect/NativeSelectNullTest.java
@@ -5,9 +5,9 @@ import static org.junit.Assert.assertEquals;
import org.junit.Test;
import com.vaadin.testbench.elements.NativeSelectElement;
-import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
+import com.vaadin.tests.tb3.SingleBrowserTest;
-public class NativeSelectNullTest extends SingleBrowserTestPhantomJS2 {
+public class NativeSelectNullTest extends SingleBrowserTest {
@Test
public void selectNull() {
openTestURL();