]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix Firefox coordinates, add missing screenshots (#11022)
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>
Tue, 3 Jul 2018 18:32:38 +0000 (21:32 +0300)
committerIlia Motornyi <elmot@vaadin.com>
Tue, 3 Jul 2018 18:32:38 +0000 (21:32 +0300)
42 files changed:
uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png [new file with mode: 0755]
uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png [new file with mode: 0755]
uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png [new file with mode: 0755]
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/GridCaptionTest-LayoutCaption_ANY_Firefox__caption.png
uitest/reference-screenshots/firefox/GridIconTest-LayoutIcon_ANY_Firefox__icon.png
uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png [new file with mode: 0644]
uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png [new file with mode: 0644]
uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
uitest/src/test/java/com/vaadin/tests/components/abstractcomponent/ContextClickUITest.java
uitest/src/test/java/com/vaadin/tests/components/draganddropwrapper/DragStartModesTest.java
uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinatesTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnResizingTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightTest.java
uitest/src/test/java/com/vaadin/tests/components/grid/GridResizeHiddenColumnTest.java
uitest/src/test/java/com/vaadin/tests/components/table/ColumnReorderingWithManyColumnsTest.java
uitest/src/test/java/com/vaadin/tests/components/table/ContextMenuSizeTest.java
uitest/src/test/java/com/vaadin/tests/components/textarea/TextAreaSizeResettedTest.java
uitest/src/test/java/com/vaadin/tests/components/upload/UploadImmediateButtonWidthChameleonTest.java
uitest/src/test/java/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java
uitest/src/test/java/com/vaadin/tests/components/window/ModalWindowRefocusTest.java
uitest/src/test/java/com/vaadin/tests/components/window/WindowZIndexTest.java
uitest/src/test/java/com/vaadin/tests/contextclick/AbstractContextClickTest.java
uitest/src/test/java/com/vaadin/tests/contextclick/TreeContextClickTest.java
uitest/src/test/java/com/vaadin/tests/dd/DnDOnSubtreeTest.java
uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveUITest.java
uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicPersonFormTest.java
uitest/src/test/java/com/vaadin/tests/layouts/TestLayoutClickListenersTest.java
uitest/src/test/java/com/vaadin/tests/resources/FrontendInitialResourceUITest.java
uitest/src/test/java/com/vaadin/tests/resources/FrontendLaterLoadedResourceUITest.java
uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java
uitest/src/test/java/com/vaadin/tests/themes/valo/ContrastFontColorTest.java

diff --git a/uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png b/uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png
new file mode 100755 (executable)
index 0000000..61ea766
Binary files /dev/null and b/uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png differ
diff --git a/uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png b/uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png
new file mode 100755 (executable)
index 0000000..a81614c
Binary files /dev/null and b/uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png differ
diff --git a/uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png b/uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png
new file mode 100755 (executable)
index 0000000..30073c6
Binary files /dev/null and b/uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png differ
diff --git a/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png
new file mode 100644 (file)
index 0000000..a79d2c1
Binary files /dev/null and b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png differ
diff --git a/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png
new file mode 100644 (file)
index 0000000..0966b68
Binary files /dev/null and b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png differ
diff --git a/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png
new file mode 100644 (file)
index 0000000..1d5e6a0
Binary files /dev/null and b/uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png differ
index fb96a2c36b35139b10e6a5da18b938ca923d2cfc..c553137a0280fd8d7ba5abb181f7e3ec8c12d2e0 100644 (file)
Binary files a/uitest/reference-screenshots/firefox/GridCaptionTest-LayoutCaption_ANY_Firefox__caption.png and b/uitest/reference-screenshots/firefox/GridCaptionTest-LayoutCaption_ANY_Firefox__caption.png differ
index 9eda2e6bac9844604d9193d89198210f327e3c42..b65504fdfdb8c89f9d15b373d15de219db47895a 100644 (file)
Binary files a/uitest/reference-screenshots/firefox/GridIconTest-LayoutIcon_ANY_Firefox__icon.png and b/uitest/reference-screenshots/firefox/GridIconTest-LayoutIcon_ANY_Firefox__icon.png differ
diff --git a/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png b/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png
new file mode 100644 (file)
index 0000000..6125e60
Binary files /dev/null and b/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png differ
diff --git a/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png b/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png
new file mode 100644 (file)
index 0000000..1823269
Binary files /dev/null and b/uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png differ
diff --git a/uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png b/uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png
new file mode 100644 (file)
index 0000000..4e8e613
Binary files /dev/null and b/uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png differ
diff --git a/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png
new file mode 100644 (file)
index 0000000..cb8cdf7
Binary files /dev/null and b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png differ
diff --git a/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png
new file mode 100644 (file)
index 0000000..c6fda14
Binary files /dev/null and b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png differ
diff --git a/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png
new file mode 100644 (file)
index 0000000..c3ce161
Binary files /dev/null and b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png differ
diff --git a/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png
new file mode 100644 (file)
index 0000000..8197945
Binary files /dev/null and b/uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png differ
diff --git a/uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png b/uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png
new file mode 100644 (file)
index 0000000..7f98a63
Binary files /dev/null and b/uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png differ
diff --git a/uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png b/uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png
new file mode 100644 (file)
index 0000000..7133485
Binary files /dev/null and b/uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png differ
index fc2693c13f9dadfb1a06cb1a0150a0143a6134f5..f7d0563441bd0acf6e9f3d63b29d3db3b835b021 100644 (file)
@@ -26,6 +26,9 @@ public class VerifyBrowserVersionTest extends MultiBrowserTest {
             // because of auto updates...
             browserIdentifier = getExpectedUserAgentString(
                     getDesiredCapabilities()) + "66";
+        } else if (BrowserUtil.isFirefox(getDesiredCapabilities())) {
+            browserIdentifier = getExpectedUserAgentString(
+                    getDesiredCapabilities()) + "58";
         } else {
             browserIdentifier = getExpectedUserAgentString(desiredCapabilities)
                     + desiredCapabilities.getVersion();
index 2dea0fbd4c746861ed989f13f338fe8a308cd78b..c6b6203f35dfb028ae5ff9613de9b4d21eab1dff 100644 (file)
@@ -16,8 +16,9 @@ public class ContextClickUITest extends MultiBrowserTest {
     public void testContextClick() {
         openTestURL();
 
-        new Actions(getDriver())
-                .moveToElement($(UIElement.class).first(), 10, 10)
+        final UIElement uiElement = $(UIElement.class).first();
+        new Actions(getDriver()).moveToElement(uiElement,
+                getXOffset(uiElement, 10), getYOffset(uiElement, 10))
                 .contextClick().perform();
 
         assertEquals("Context click not received correctly",
index e23a61a8a99aac663a7c54c1eaca4b9f6700e8f2..2ecaa51e52023550babf96ae50a9834474930f84 100644 (file)
@@ -23,9 +23,13 @@ public class DragStartModesTest extends MultiBrowserTest {
     private void dragToTarget(String dragMode, WebElement dropTarget)
             throws IOException {
         WebElement draggable = vaadinElementById("label" + dragMode);
-        new Actions(driver).moveToElement(draggable, 10, 10).clickAndHold()
-                .moveByOffset(5, 0).perform();
-        new Actions(driver).moveToElement(dropTarget, 12, 10).perform();
+        new Actions(driver)
+                .moveToElement(draggable, getXOffset(draggable, 10),
+                        getYOffset(draggable, 10))
+                .clickAndHold().moveByOffset(5, 0).perform();
+        new Actions(driver).moveToElement(dropTarget,
+                getXOffset(dropTarget, 12), getYOffset(dropTarget, 10))
+                .perform();
         compareScreen("dragImageMode" + dragMode);
         new Actions(driver).release().perform();
     }
index 2a4f8558ccc9b7db9c159d514ac8979b0c728e50..820b07fadb583f2a3211208bdc60cf9ff53851ca 100644 (file)
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertTrue;
 import org.junit.Before;
 import org.junit.Test;
 import org.openqa.selenium.By;
+import org.openqa.selenium.interactions.Actions;
 
 import com.vaadin.testbench.elements.EmbeddedElement;
 import com.vaadin.testbench.elements.LabelElement;
@@ -28,14 +29,14 @@ public class EmbeddedClickListenerRelativeCoordinatesTest
         clickAt(41, 22);
         checkLocation(41, 22);
 
-        clickAt(0, 0);
-        checkLocation(0, 0);
+        clickAt(1, 1);
+        checkLocation(1, 1);
     }
 
     private void clickAt(int x, int y) {
         EmbeddedElement embedded = $(EmbeddedElement.class).first();
 
-        embedded.click(x, y);
+        embedded.click(getXOffset(embedded, x), getYOffset(embedded, y));
     }
 
     private void checkLocation(int expectedX, int expectedY) {
@@ -51,9 +52,9 @@ public class EmbeddedClickListenerRelativeCoordinatesTest
 
         // IE10 and IE11 sometimes click one pixel below the given position
         int tolerance = isIE() ? 1 : 0;
-        assertTrue(
+        assertEquals(
                 "Reported Y-coordinate from Embedded does not match click location",
-                Math.abs(expectedY - y) <= tolerance);
+                expectedY, y, tolerance);
     }
 
     private boolean isIE() {
index a95992df2308ca965349c0067a651dc045331013..68f427c11970109a229f439d81129c901b2e42d0 100644 (file)
@@ -130,8 +130,9 @@ public class GridColumnResizingTest extends MultiBrowserTest {
         GridCellElement headerCell = getGrid().getHeaderCell(0, columnIndex);
         Dimension size = headerCell.getSize();
         new Actions(getDriver())
-                .moveToElement(headerCell, size.getWidth() + posX,
-                        size.getHeight() / 2)
+                .moveToElement(headerCell,
+                        getXOffset(headerCell, size.getWidth() + posX),
+                        getYOffset(headerCell, size.getHeight() / 2))
                 .clickAndHold().moveByOffset(offset, 0).release().perform();
     }
 
index 1c134f97e4e9d4f961a057a0f997fe7ca28d1ef1..34892da664880a9f0685608a3e21f8ebf8be97e8 100644 (file)
@@ -8,6 +8,7 @@ import java.util.Locale;
 import java.util.stream.IntStream;
 import java.util.stream.Stream;
 
+import org.junit.Assume;
 import org.junit.Test;
 import org.openqa.selenium.Keys;
 import org.openqa.selenium.WebElement;
@@ -18,20 +19,16 @@ import com.vaadin.testbench.elements.ButtonElement;
 import com.vaadin.testbench.elements.GridElement;
 import com.vaadin.testbench.elements.GridElement.GridCellElement;
 import com.vaadin.testbench.elements.GridElement.GridRowElement;
+import com.vaadin.testbench.parallel.BrowserUtil;
 import com.vaadin.testbench.elements.LabelElement;
 import com.vaadin.testbench.elements.NotificationElement;
 import com.vaadin.testbench.elements.TextFieldElement;
-import com.vaadin.testbench.parallel.BrowserUtil;
 import com.vaadin.tests.tb3.MultiBrowserTest;
 
 public class GridComponentsTest extends MultiBrowserTest {
 
     @Test
     public void testReuseTextFieldOnScroll() {
-        if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
-            // skip test on PhantomJS as it often crashes the browser
-            return;
-        }
         openTestURL();
         GridElement grid = $(GridElement.class).first();
         editTextFieldInCell(grid, 0, 1);
@@ -54,7 +51,7 @@ public class GridComponentsTest extends MultiBrowserTest {
         GridElement grid = $(GridElement.class).first();
         editTextFieldInCell(grid, 1, 1);
         // Select row
-        grid.getCell(1, 1).click(1, 1);
+        grid.getCell(1, 0).click();
 
         WebElement textField = grid.getCell(1, 1)
                 .findElement(By.tagName("input"));
@@ -186,6 +183,9 @@ public class GridComponentsTest extends MultiBrowserTest {
 
     @Test
     public void testTabNavigation() {
+        Assume.assumeFalse("Firefox has issues with Shift",
+                BrowserUtil.isFirefox(getDesiredCapabilities()));
+
         openTestURL();
 
         GridElement grid = $(GridElement.class).first();
index 1c6b36bf899d6712669e705334476750492f6d37..091df9608750c3a16c13fb1a42294b5b6e3e1342 100644 (file)
@@ -14,6 +14,7 @@ import org.junit.Test;
 import org.openqa.selenium.By;
 
 import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.testbench.elements.GridElement.GridRowElement;
 import com.vaadin.testbench.elements.RadioButtonGroupElement;
 import com.vaadin.testbench.parallel.TestCategory;
 import com.vaadin.tests.tb3.MultiBrowserTest;
@@ -83,7 +84,8 @@ public class GridHeightTest extends MultiBrowserTest {
                     fail();
                 }
 
-                grid.getRow(2).click(5, 5);
+                GridRowElement row = grid.getRow(2);
+                row.click(getXOffset(row, 5), getYOffset(row, 5));
                 waitForElementPresent(By.id("lbl1"));
 
                 int openHeight = grid.getSize().getHeight();
@@ -96,7 +98,7 @@ public class GridHeightTest extends MultiBrowserTest {
                             detailsRowHeight, "opened" });
                 }
 
-                grid.getRow(2).click(5, 5);
+                row.click(getXOffset(row, 5), getYOffset(row, 5));
                 waitForElementNotPresent(By.id("lbl1"));
 
                 int afterHeight = grid.getSize().getHeight();
index 6125fe2f1627bfb07b4fefdfbdb2a46a6aab5888..1a6a03aea1814c9ad9e1df38e296ef84b5b634b0 100644 (file)
@@ -97,8 +97,9 @@ public class GridResizeHiddenColumnTest extends MultiBrowserTest {
             int offset) {
         Dimension size = headerCell.getSize();
         new Actions(getDriver())
-                .moveToElement(headerCell, size.getWidth() + posX,
-                        size.getHeight() / 2)
+                .moveToElement(headerCell,
+                        getXOffset(headerCell, size.getWidth() + posX),
+                        getYOffset(headerCell, size.getHeight() / 2))
                 .clickAndHold().moveByOffset(offset, 0).release().perform();
     }
 }
index 5e5773fc3f35fede9accdb1bfa460587cd69273c..a7a11a6e1acf15553fbadca8bd4c8870e7f91693 100644 (file)
@@ -31,9 +31,11 @@ public class ColumnReorderingWithManyColumnsTest extends MultiBrowserTest {
 
     private void drag(WebElement source, WebElement target) {
         Actions actions = new Actions(getDriver());
-        actions.moveToElement(source, 10, 10);
+        actions.moveToElement(source, getXOffset(source, 10),
+                getYOffset(source, 10));
         actions.clickAndHold(source);
-        actions.moveToElement(target, 10, 10);
+        actions.moveToElement(target, getXOffset(target, 10),
+                getYOffset(target, 10));
         actions.perform();
     }
 }
index 6dab60b655b1d03f76d9d7174d70167eff879266..2ecde5c1bc49a365f591b3f777a2a64881aa2f3b 100644 (file)
@@ -47,8 +47,14 @@ public class ContextMenuSizeTest extends MultiBrowserTest {
     }
 
     private WebElement openContextMenu() {
+        WebElement target = findElement(By.className("v-table-cell-wrapper"));
+
+        // Make sure target is visible.
+        target.click();
+
         Actions actions = new Actions(getDriver());
-        actions.contextClick(findElement(By.className("v-table-cell-wrapper")));
+        actions.moveToElement(target, getXOffset(target, 1),
+                getYOffset(target, 1)).contextClick();
         actions.perform();
         return findElement(By.className("v-contextmenu"));
     }
index e288636815f9d5913519aeb8dd90b76b40f87f96..492e5c300fe1eea5743e3d30d9b2946e414ae286 100644 (file)
@@ -70,10 +70,10 @@ public class TextAreaSizeResettedTest extends MultiBrowserTest {
 
     private void resizeTextAreaBy(int offset) {
         int resizeHandlerOffset = 10;
-        new Actions(getDriver())
-                .moveToElement(getTextArea(),
-                        TEXTAREAWIDTH - resizeHandlerOffset,
-                        TEXTAREAHEIGHT - resizeHandlerOffset)
+        TextAreaElement textArea = getTextArea();
+        new Actions(getDriver()).moveToElement(textArea,
+                getXOffset(textArea, TEXTAREAWIDTH - resizeHandlerOffset),
+                getYOffset(textArea, TEXTAREAHEIGHT - resizeHandlerOffset))
                 .clickAndHold().moveByOffset(offset, offset).release().build()
                 .perform();
     }
index 7c1500ce75a35e246593a4b7b655501aa077c07e..17223fc67000327d5f3cf7f9c1e22c4011ce83ab 100644 (file)
@@ -17,6 +17,6 @@ public class UploadImmediateButtonWidthChameleonTest
 
     @Test
     public void immediateButtonWithUndefinedWidth() {
-        assertThat(getButtonWidth("upload3"), closeTo(69, 4));
+        assertThat(getButtonWidth("upload3"), closeTo(69, 5));
     }
 }
index 05d8594962f3feebeda4bb893c8b5ed6113ebfbf..abf3443da81ba79a6a0f544fd0653c6dddeb3386 100644 (file)
@@ -5,6 +5,8 @@ import static org.hamcrest.Matchers.greaterThan;
 import static org.junit.Assert.assertThat;
 
 import org.junit.Test;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.interactions.Actions;
 
 import com.vaadin.testbench.elements.WindowElement;
 import com.vaadin.testbench.elements.ButtonElement;
@@ -61,10 +63,19 @@ public class MaximizedWindowOrderTest extends MultiBrowserTest {
         WindowElement anotherWindow = openAnotherWindow();
 
         // move the window to make the maximize button visible.
-        anotherWindow.move(10, 20);
+        moveWindow(anotherWindow, 10, 20);
         maximizedWindow.maximize();
 
         assertThat(maximizedWindow.getCssValue("z-index"),
                 is(greaterThan(anotherWindow.getCssValue("z-index"))));
     }
+
+    private void moveWindow(WindowElement window, int xOffset, int yOffset) {
+        WebElement wrap = window
+                .findElement(org.openqa.selenium.By.className("v-window-wrap"));
+        new Actions(getDriver())
+                .moveToElement(wrap, getXOffset(wrap, 5), getYOffset(wrap, 5))
+                .clickAndHold().moveByOffset(xOffset, yOffset).release().build()
+                .perform();
+    }
 }
index d09d3ce027e3f44f5293b60fcf323671f35a40c2..eaf4b7e6a30731da79d4da50e3b32ddb420165c8 100755 (executable)
@@ -46,7 +46,8 @@ public class ModalWindowRefocusTest extends ModalWindowFocusTest {
         waitForElementPresent(By.id("focusfield"));
         WebElement curtain = findElement(
                 org.openqa.selenium.By.className("v-window-modalitycurtain"));
-        curtain.click();
+        testBenchElement(curtain).click(getXOffset(curtain, 20),
+                getYOffset(curtain, 20));
 
         pressKeyAndWait(Keys.TAB);
         pressKeyAndWait(Keys.TAB);
index 72a919921960ae01617819ce7a351ebde5fbde01..93aaaae2fecbaa2a2fea8b8f02ab12ee021cf43d 100644 (file)
@@ -39,7 +39,8 @@ public class WindowZIndexTest extends MultiBrowserTest {
 
         WebElement window4 = driver
                 .findElement(By.xpath("//*[contains(text(), 'Window 4')]"));
-        new Actions(driver).moveToElement(window4, 1, 9).click().perform();
+        new Actions(driver).moveToElement(window4, getXOffset(window4, 1),
+                getYOffset(window4, 9)).click().perform();
 
         compareScreen("win4-on-top");
     }
index e8663a687cf7192dfffdb19fd8994ea2302da7c7..e5817da952e775fd34f2da6323431d86afbe2442 100644 (file)
@@ -126,7 +126,9 @@ public abstract class AbstractContextClickTest extends MultiBrowserTest {
                     "var ev = document.createEvent('MouseEvents'); ev.initMouseEvent('click', true, true, document.defaultView, 1, arguments[1]-5, arguments[2]-5, arguments[1]-5, arguments[2]-5, false, false, false, false, 1, null); arguments[0].dispatchEvent(ev);",
                     e, x, y);
         } else {
-            new Actions(getDriver()).moveToElement(e, xCoord, yCoord)
+            new Actions(getDriver())
+                    .moveToElement(e, getXOffset(e, xCoord),
+                            getYOffset(e, yCoord))
                     .contextClick().moveByOffset(-5, -5).click().perform();
         }
     }
index 412e7593d2b0cad869e0af956c814b4845253ec5..0f43fb7872ebb1931023f6a14d5d4119f942939d 100644 (file)
@@ -40,8 +40,9 @@ public class TreeContextClickTest extends AbstractContextClickTest {
         List<WebElement> nodes = $(TreeElement.class).first()
                 .findElements(By.className("v-tree-node"));
 
-        new Actions(getDriver()).moveToElement(nodes.get(1), 10, 10).click()
-                .perform();
+        new Actions(getDriver()).moveToElement(nodes.get(1),
+                getXOffset(nodes.get(1), 10), getYOffset(nodes.get(1), 10))
+                .click().perform();
 
         nodes = $(TreeElement.class).first()
                 .findElements(By.className("v-tree-node"));
index 0e929451903f7e739a54c15b35a5ec7db0d8768c..59d0248f1efabd361ddde70393e718bbba7b93e2 100644 (file)
@@ -8,6 +8,7 @@ import org.openqa.selenium.support.ui.ExpectedCondition;
 
 import com.vaadin.testbench.By;
 import com.vaadin.testbench.TestBenchElement;
+import com.vaadin.testbench.commands.TestBenchElementCommands;
 import com.vaadin.tests.tb3.MultiBrowserTest;
 import com.vaadin.v7.testbench.elements.TreeElement;
 
@@ -24,12 +25,16 @@ public class DnDOnSubtreeTest extends MultiBrowserTest {
         TreeElement tree = $(TreeElement.class).first();
         WebElement bar2 = tree.findElement(By.vaadin("#n[3]"));
         WebElement bar5 = tree.findElement(By.vaadin("#n[6]"));
-        new Actions(driver).moveToElement(bar2, 11, 8).clickAndHold()
-                .moveByOffset(10, 10).perform();
+        new Actions(driver)
+                .moveToElement(bar2, getXOffset(bar2, 11), getYOffset(bar2, 8))
+                .clickAndHold().moveByOffset(10, 10).perform();
         /* Drop on Bar5, which is a subtree target */
-        new Actions(driver).moveToElement(bar5, 34, 9).release().perform();
-        testBenchElement(tree.findElement(By.vaadin("#n[5]/expand"))).click(5,
-                5);
+        new Actions(driver)
+                .moveToElement(bar5, getXOffset(bar5, 34), getYOffset(bar5, 9))
+                .release().perform();
+        WebElement target = tree.findElement(By.vaadin("#n[5]/expand"));
+        testBenchElement(target).click(getXOffset(target, 5),
+                getYOffset(target, 5));
         /* Assert that the dragged & dropped node is now a child of Bar5 */
         waitUntilElementPresent(tree, "#n[5]/n[0]");
     }
index cd37ba6248b329ddd4b16bd0504aec3b359e19fb..7287372adb92d9f837c10783b47b0da66f865291 100644 (file)
@@ -7,7 +7,6 @@ import org.junit.Test;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.interactions.Actions;
 import org.openqa.selenium.support.ui.ExpectedConditions;
-import org.openqa.selenium.support.ui.WebDriverWait;
 
 import com.vaadin.testbench.By;
 import com.vaadin.tests.tb3.MultiBrowserTest;
index 25bd5c7cdd86cec8fa5c898bd092a21fc63ca996..1baccbb5bce210a0e18a74e111a618d7c8f5917f 100644 (file)
@@ -12,7 +12,9 @@ import com.vaadin.testbench.elements.TableRowElement;
 import com.vaadin.testbench.elements.TextAreaElement;
 import com.vaadin.testbench.elements.TextFieldElement;
 import com.vaadin.tests.data.bean.Sex;
+import com.vaadin.tests.tb3.AbstractTB3Test;
 import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.tests.tb3.PrivateTB3Configuration;
 
 public abstract class BasicPersonFormTest extends MultiBrowserTest {
 
@@ -24,6 +26,9 @@ public abstract class BasicPersonFormTest extends MultiBrowserTest {
         super.setup();
 
         logCounter = 0;
+
+        // Use larger view port to make sure everything is visible.
+        testBench().resizeViewPortTo(1500, 1500);
     }
 
     @Override
index eb1ef853180241baf2b5311761fb1c7ba39abbe0..1209e6910e190fa554185f3b5a46b37fc020e42e 100644 (file)
@@ -42,7 +42,7 @@ public class TestLayoutClickListenersTest extends MultiBrowserTest {
                 "2. GridLayout: left click on This is tf5");
 
         // click on the layout body (not any component inside the layout)
-        layout.click(130, 41);
+        layout.click(getXOffset(layout, 130), getYOffset(layout, 41));
         assertLogText("GridLayout body clicked",
                 "3. GridLayout: left click on <none>");
     }
@@ -99,17 +99,22 @@ public class TestLayoutClickListenersTest extends MultiBrowserTest {
         GridLayoutElement layout = $(GridLayoutElement.class).first();
 
         // Drag inside the first label in this layout
+        LabelElement label = layout.$(LabelElement.class).first();
         new Actions(getDriver())
-                .moveToElement(layout.$(LabelElement.class).first(), 40, 8)
+                .moveToElement(label, getXOffset(label, 40),
+                        getYOffset(label, 8))
                 .clickAndHold().moveByOffset(-20, 0).release().perform();
         assertLogText("Mouse dragged in GridLayout",
                 "1. GridLayout: left click on This is label 1");
 
         // Drag from the third label to a text field in this layout
+        label = layout.$(LabelElement.class).get(2);
+        TextFieldElement textField = layout.$(TextFieldElement.class).get(3);
         new Actions(getDriver())
-                .moveToElement(layout.$(LabelElement.class).get(2), 40, 8)
-                .clickAndHold()
-                .moveToElement(layout.$(TextFieldElement.class).get(3), 46, 33)
+                .moveToElement(label, getXOffset(label, 40),
+                        getYOffset(label, 8))
+                .clickAndHold().moveToElement(textField,
+                        getXOffset(textField, 46), getYOffset(textField, 33))
                 .release().perform();
         assertLogText("Expected the drag to be ignored between elements",
                 "1. GridLayout: left click on This is label 1");
@@ -120,17 +125,21 @@ public class TestLayoutClickListenersTest extends MultiBrowserTest {
         VerticalLayoutElement layout = $(VerticalLayoutElement.class).get(4);
 
         // Drag inside the first text field
+        TextFieldElement textField = layout.$(TextFieldElement.class).first();
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).first(), 25, 9)
+                .moveToElement(textField, getXOffset(textField, 25),
+                        getYOffset(textField, 9))
                 .clickAndHold().moveByOffset(-20, 0).release().perform();
         assertLogText("Mouse dragged in VerticalLayout",
                 "1. VerticalLayout: left click on This is tf5");
 
         // Drag from a caption to its text field
+        textField = layout.$(TextFieldElement.class).get(4);
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).get(4), 28, 11)
-                .clickAndHold()
-                .moveToElement(layout.$(TextFieldElement.class).get(4), 39, 30)
+                .moveToElement(textField, getXOffset(textField, 28),
+                        getYOffset(textField, 11))
+                .clickAndHold().moveToElement(textField,
+                        getXOffset(textField, 39), getYOffset(textField, 30))
                 .release().perform();
         assertLogText("Expected the drag to be ignored between elements",
                 "1. VerticalLayout: left click on This is tf5");
@@ -141,17 +150,24 @@ public class TestLayoutClickListenersTest extends MultiBrowserTest {
         AbsoluteLayoutElement layout = $(AbsoluteLayoutElement.class).first();
 
         // Drag inside the first text field's caption
+        TextFieldElement firstTextField = layout.$(TextFieldElement.class)
+                .first();
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).first(), 21, 9)
+                .moveToElement(firstTextField, getXOffset(firstTextField, 21),
+                        getYOffset(firstTextField, 9))
                 .clickAndHold().moveByOffset(-10, 0).release().perform();
         assertLogText("Mouse dragged in AbsoluteLayout",
                 "1. AbsoluteLayout: left click on This is its caption");
 
         // Drag from a text field to another text field
+        TextFieldElement otherTextField = layout.$(TextFieldElement.class)
+                .get(1);
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).get(1), 54, 7)
+                .moveToElement(otherTextField, getXOffset(otherTextField, 54),
+                        getYOffset(otherTextField, 7))
                 .clickAndHold()
-                .moveToElement(layout.$(TextFieldElement.class).first(), 52, 10)
+                .moveToElement(firstTextField, getXOffset(firstTextField, 52),
+                        getYOffset(firstTextField, 10))
                 .release().perform();
         assertLogText("Expected the drag to be ignored between elements",
                 "1. AbsoluteLayout: left click on This is its caption");
@@ -162,17 +178,24 @@ public class TestLayoutClickListenersTest extends MultiBrowserTest {
         CssLayoutElement layout = $(CssLayoutElement.class).first();
 
         // Drag inside the first text field's caption
+        TextFieldElement firstTextField = layout.$(TextFieldElement.class)
+                .first();
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).first(), 51, 7)
+                .moveToElement(firstTextField, getXOffset(firstTextField, 51),
+                        getYOffset(firstTextField, 7))
                 .clickAndHold().moveByOffset(-20, 0).release().perform();
         assertLogText("Mouse dragged in CSSLayout",
                 "1. CSSLayout: left click on This is its caption");
 
         // Drag from the first text field to the second text field
+        TextFieldElement otherTextField = layout.$(TextFieldElement.class)
+                .get(1);
         new Actions(getDriver())
-                .moveToElement(layout.$(TextFieldElement.class).first(), 51, 27)
+                .moveToElement(firstTextField, getXOffset(firstTextField, 51),
+                        getYOffset(firstTextField, 27))
                 .clickAndHold()
-                .moveToElement(layout.$(TextFieldElement.class).get(1), 51, 27)
+                .moveToElement(otherTextField, getXOffset(otherTextField, 51),
+                        getYOffset(otherTextField, 27))
                 .release().perform();
         assertLogText("Expected the drag to be ignored between elements",
                 "1. CSSLayout: left click on This is its caption");
index 7f2748461c6b3636b875c6e8a8aa27eadfdf3691..45b386a73eda5f0af481d68666a1975490de60cb 100644 (file)
@@ -14,9 +14,7 @@ public class FrontendInitialResourceUITest extends MultiBrowserTest {
     public void correctEs5Es6FileImportedThroughFrontend() {
         openTestURL();
         String es;
-        if (BrowserUtil.isIE(getDesiredCapabilities())
-                || BrowserUtil.isPhantomJS(getDesiredCapabilities())
-                || BrowserUtil.isFirefox(getDesiredCapabilities())) {
+        if (BrowserUtil.isIE(getDesiredCapabilities())) {
             es = "es5";
         } else {
             es = "es6";
index 36f70948a4f7c66ba270a3fb110300554691796d..bc3d5aa7e0619b21cb2b89c3b6221471f39338ae 100644 (file)
@@ -15,9 +15,7 @@ public class FrontendLaterLoadedResourceUITest extends MultiBrowserTest {
         openTestURL();
         $(ButtonElement.class).first().click();
         String es;
-        if (BrowserUtil.isIE(getDesiredCapabilities())
-                || BrowserUtil.isPhantomJS(getDesiredCapabilities())
-                || BrowserUtil.isFirefox(getDesiredCapabilities())) {
+        if (BrowserUtil.isIE(getDesiredCapabilities())) {
             es = "es5";
         } else {
             es = "es6";
index 9fe174ebe0ed345891b793363c768b4033a725a7..1e093cf7f4d1fca2d4fecdf0eac1867aeb2353e2 100644 (file)
@@ -1188,6 +1188,48 @@ public abstract class AbstractTB3Test extends ParallelTest {
                 element)).intValue();
     }
 
+    /**
+     * Gets the X offset for
+     * {@link Actions#moveToElement(WebElement, int, int)}. This method takes
+     * into account the W3C specification in browsers that properly implement
+     * it.
+     * 
+     * @param element
+     *            the element
+     * @param targetX
+     *            the X coordinate where the move is wanted to go to
+     * @return the correct X offset
+     */
+    protected int getXOffset(WebElement element, int targetX) {
+        if (BrowserUtil.isFirefox(getDesiredCapabilities())) {
+            // Firefox follow W3C spec and moveToElement is relative to center
+            final int width = element.getSize().getWidth();
+            return targetX - ((width + width % 2) / 2);
+        }
+        return targetX;
+    }
+
+    /**
+     * Gets the Y offset for
+     * {@link Actions#moveToElement(WebElement, int, int)}. This method takes
+     * into account the W3C specification in browsers that properly implement
+     * it.
+     * 
+     * @param element
+     *            the element
+     * @param targetY
+     *            the Y coordinate where the move is wanted to go to
+     * @return the correct Y offset
+     */
+    protected int getYOffset(WebElement element, int targetY) {
+        if (BrowserUtil.isFirefox(getDesiredCapabilities())) {
+            // Firefox follow W3C spec and moveToElement is relative to center
+            final int height = element.getSize().getHeight();
+            return targetY - ((height + height % 2) / 2);
+        }
+        return targetY;
+    }
+
     /**
      * Returns client height rounded up instead of as double because of IE9
      * issues: https://dev.vaadin.com/ticket/18469
index 9eafe6279800ab658427ffe951a27c330285ed88..2315050335d901bbcdd5ca631da8c886862529dd 100644 (file)
@@ -5,14 +5,14 @@ import static org.junit.Assert.assertEquals;
 import org.junit.Test;
 
 import com.vaadin.testbench.elements.TextFieldElement;
-import com.vaadin.tests.tb3.MultiBrowserTest;
+import com.vaadin.tests.tb3.SingleBrowserTest;
 
 /**
  * Test for default contrast color variable in valo-font-color function.
  *
  * @author Vaadin Ltd
  */
-public class ContrastFontColorTest extends MultiBrowserTest {
+public class ContrastFontColorTest extends SingleBrowserTest {
 
     @Test
     public void testTextColor() {