diff options
Diffstat (limited to 'uitest/src/test/java')
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(); |