Browse Source

Fix Firefox coordinates, add missing screenshots (#11022)

tags/8.6.0.alpha1
Teemu Suo-Anttila 6 years ago
parent
commit
5df0f50ab8
42 changed files with 172 additions and 65 deletions
  1. BIN
      uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png
  2. BIN
      uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png
  3. BIN
      uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png
  4. BIN
      uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png
  5. BIN
      uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png
  6. BIN
      uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png
  7. BIN
      uitest/reference-screenshots/firefox/GridCaptionTest-LayoutCaption_ANY_Firefox__caption.png
  8. BIN
      uitest/reference-screenshots/firefox/GridIconTest-LayoutIcon_ANY_Firefox__icon.png
  9. BIN
      uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png
  10. BIN
      uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png
  11. BIN
      uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png
  12. BIN
      uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png
  13. BIN
      uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png
  14. BIN
      uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png
  15. BIN
      uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png
  16. BIN
      uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png
  17. BIN
      uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png
  18. 3
    0
      uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java
  19. 3
    2
      uitest/src/test/java/com/vaadin/tests/components/abstractcomponent/ContextClickUITest.java
  20. 7
    3
      uitest/src/test/java/com/vaadin/tests/components/draganddropwrapper/DragStartModesTest.java
  21. 6
    5
      uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinatesTest.java
  22. 3
    2
      uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnResizingTest.java
  23. 6
    6
      uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java
  24. 4
    2
      uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightTest.java
  25. 3
    2
      uitest/src/test/java/com/vaadin/tests/components/grid/GridResizeHiddenColumnTest.java
  26. 4
    2
      uitest/src/test/java/com/vaadin/tests/components/table/ColumnReorderingWithManyColumnsTest.java
  27. 7
    1
      uitest/src/test/java/com/vaadin/tests/components/table/ContextMenuSizeTest.java
  28. 4
    4
      uitest/src/test/java/com/vaadin/tests/components/textarea/TextAreaSizeResettedTest.java
  29. 1
    1
      uitest/src/test/java/com/vaadin/tests/components/upload/UploadImmediateButtonWidthChameleonTest.java
  30. 12
    1
      uitest/src/test/java/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java
  31. 2
    1
      uitest/src/test/java/com/vaadin/tests/components/window/ModalWindowRefocusTest.java
  32. 2
    1
      uitest/src/test/java/com/vaadin/tests/components/window/WindowZIndexTest.java
  33. 3
    1
      uitest/src/test/java/com/vaadin/tests/contextclick/AbstractContextClickTest.java
  34. 3
    2
      uitest/src/test/java/com/vaadin/tests/contextclick/TreeContextClickTest.java
  35. 10
    5
      uitest/src/test/java/com/vaadin/tests/dd/DnDOnSubtreeTest.java
  36. 0
    1
      uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveUITest.java
  37. 5
    0
      uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicPersonFormTest.java
  38. 38
    15
      uitest/src/test/java/com/vaadin/tests/layouts/TestLayoutClickListenersTest.java
  39. 1
    3
      uitest/src/test/java/com/vaadin/tests/resources/FrontendInitialResourceUITest.java
  40. 1
    3
      uitest/src/test/java/com/vaadin/tests/resources/FrontendLaterLoadedResourceUITest.java
  41. 42
    0
      uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java
  42. 2
    2
      uitest/src/test/java/com/vaadin/tests/themes/valo/ContrastFontColorTest.java

BIN
uitest/reference-screenshots/firefox/AccordionClipsContentTest-testAccordionClipsContent_ANY_Firefox__button-clicked.png View File


BIN
uitest/reference-screenshots/firefox/ComboBoxBorderTest-testComboBoxArrow_ANY_Firefox__arrow.png View File


BIN
uitest/reference-screenshots/firefox/ComboBoxLargeIconsTest-testComboBoxIcons_ANY_Firefox__icons-64x64-page1-highlight-first.png View File


BIN
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT.png View File


BIN
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeCOMPONENT_OTHER.png View File


BIN
uitest/reference-screenshots/firefox/DragStartModesTest-testDragStartModes_ANY_Firefox__dragImageModeWRAPPER.png View File


BIN
uitest/reference-screenshots/firefox/GridCaptionTest-LayoutCaption_ANY_Firefox__caption.png View File


BIN
uitest/reference-screenshots/firefox/GridIconTest-LayoutIcon_ANY_Firefox__icon.png View File


BIN
uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__collapsedMenu.png View File


BIN
uitest/reference-screenshots/firefox/ResponsiveStylesTest-testValoMenuResponsiveHover_ANY_Firefox__expandedMenu.png View File


BIN
uitest/reference-screenshots/firefox/ResponsiveUITest-testResizingSplitPanelReflowsLayout_ANY_Firefox__responsive.png View File


BIN
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__caption-only-and-has-icon.png View File


BIN
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-empty.png View File


BIN
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__contextmenu-noicon.png View File


BIN
uitest/reference-screenshots/firefox/TableContextMenuAndIconsTest-tableContextMenuWithIcons_ANY_Firefox__large-icon.png View File


BIN
uitest/reference-screenshots/firefox/TableDropIndicatorValoTest-indicator_ANY_Firefox__indicator.png View File


BIN
uitest/reference-screenshots/firefox/WindowZIndexTest-removingUpdatesZIndices_ANY_Firefox__win4-on-top.png View File


+ 3
- 0
uitest/src/test/java/com/vaadin/tests/VerifyBrowserVersionTest.java View File

// because of auto updates... // because of auto updates...
browserIdentifier = getExpectedUserAgentString( browserIdentifier = getExpectedUserAgentString(
getDesiredCapabilities()) + "66"; getDesiredCapabilities()) + "66";
} else if (BrowserUtil.isFirefox(getDesiredCapabilities())) {
browserIdentifier = getExpectedUserAgentString(
getDesiredCapabilities()) + "58";
} else { } else {
browserIdentifier = getExpectedUserAgentString(desiredCapabilities) browserIdentifier = getExpectedUserAgentString(desiredCapabilities)
+ desiredCapabilities.getVersion(); + desiredCapabilities.getVersion();

+ 3
- 2
uitest/src/test/java/com/vaadin/tests/components/abstractcomponent/ContextClickUITest.java View File

public void testContextClick() { public void testContextClick() {
openTestURL(); 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(); .contextClick().perform();


assertEquals("Context click not received correctly", assertEquals("Context click not received correctly",

+ 7
- 3
uitest/src/test/java/com/vaadin/tests/components/draganddropwrapper/DragStartModesTest.java View File

private void dragToTarget(String dragMode, WebElement dropTarget) private void dragToTarget(String dragMode, WebElement dropTarget)
throws IOException { throws IOException {
WebElement draggable = vaadinElementById("label" + dragMode); 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); compareScreen("dragImageMode" + dragMode);
new Actions(driver).release().perform(); new Actions(driver).release().perform();
} }

+ 6
- 5
uitest/src/test/java/com/vaadin/tests/components/embedded/EmbeddedClickListenerRelativeCoordinatesTest.java View File

import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.interactions.Actions;


import com.vaadin.testbench.elements.EmbeddedElement; import com.vaadin.testbench.elements.EmbeddedElement;
import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
clickAt(41, 22); clickAt(41, 22);
checkLocation(41, 22); checkLocation(41, 22);


clickAt(0, 0);
checkLocation(0, 0);
clickAt(1, 1);
checkLocation(1, 1);
} }


private void clickAt(int x, int y) { private void clickAt(int x, int y) {
EmbeddedElement embedded = $(EmbeddedElement.class).first(); EmbeddedElement embedded = $(EmbeddedElement.class).first();


embedded.click(x, y);
embedded.click(getXOffset(embedded, x), getYOffset(embedded, y));
} }


private void checkLocation(int expectedX, int expectedY) { private void checkLocation(int expectedX, int expectedY) {


// IE10 and IE11 sometimes click one pixel below the given position // IE10 and IE11 sometimes click one pixel below the given position
int tolerance = isIE() ? 1 : 0; int tolerance = isIE() ? 1 : 0;
assertTrue(
assertEquals(
"Reported Y-coordinate from Embedded does not match click location", "Reported Y-coordinate from Embedded does not match click location",
Math.abs(expectedY - y) <= tolerance);
expectedY, y, tolerance);
} }


private boolean isIE() { private boolean isIE() {

+ 3
- 2
uitest/src/test/java/com/vaadin/tests/components/grid/GridColumnResizingTest.java View File

GridCellElement headerCell = getGrid().getHeaderCell(0, columnIndex); GridCellElement headerCell = getGrid().getHeaderCell(0, columnIndex);
Dimension size = headerCell.getSize(); Dimension size = headerCell.getSize();
new Actions(getDriver()) 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(); .clickAndHold().moveByOffset(offset, 0).release().perform();
} }



+ 6
- 6
uitest/src/test/java/com/vaadin/tests/components/grid/GridComponentsTest.java View File

import java.util.stream.IntStream; import java.util.stream.IntStream;
import java.util.stream.Stream; import java.util.stream.Stream;


import org.junit.Assume;
import org.junit.Test; import org.junit.Test;
import org.openqa.selenium.Keys; import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridCellElement; import com.vaadin.testbench.elements.GridElement.GridCellElement;
import com.vaadin.testbench.elements.GridElement.GridRowElement; import com.vaadin.testbench.elements.GridElement.GridRowElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.testbench.elements.LabelElement; import com.vaadin.testbench.elements.LabelElement;
import com.vaadin.testbench.elements.NotificationElement; import com.vaadin.testbench.elements.NotificationElement;
import com.vaadin.testbench.elements.TextFieldElement; import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.testbench.parallel.BrowserUtil;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;


public class GridComponentsTest extends MultiBrowserTest { public class GridComponentsTest extends MultiBrowserTest {


@Test @Test
public void testReuseTextFieldOnScroll() { public void testReuseTextFieldOnScroll() {
if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
// skip test on PhantomJS as it often crashes the browser
return;
}
openTestURL(); openTestURL();
GridElement grid = $(GridElement.class).first(); GridElement grid = $(GridElement.class).first();
editTextFieldInCell(grid, 0, 1); editTextFieldInCell(grid, 0, 1);
GridElement grid = $(GridElement.class).first(); GridElement grid = $(GridElement.class).first();
editTextFieldInCell(grid, 1, 1); editTextFieldInCell(grid, 1, 1);
// Select row // Select row
grid.getCell(1, 1).click(1, 1);
grid.getCell(1, 0).click();


WebElement textField = grid.getCell(1, 1) WebElement textField = grid.getCell(1, 1)
.findElement(By.tagName("input")); .findElement(By.tagName("input"));


@Test @Test
public void testTabNavigation() { public void testTabNavigation() {
Assume.assumeFalse("Firefox has issues with Shift",
BrowserUtil.isFirefox(getDesiredCapabilities()));

openTestURL(); openTestURL();


GridElement grid = $(GridElement.class).first(); GridElement grid = $(GridElement.class).first();

+ 4
- 2
uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightTest.java View File

import org.openqa.selenium.By; import org.openqa.selenium.By;


import com.vaadin.testbench.elements.GridElement; import com.vaadin.testbench.elements.GridElement;
import com.vaadin.testbench.elements.GridElement.GridRowElement;
import com.vaadin.testbench.elements.RadioButtonGroupElement; import com.vaadin.testbench.elements.RadioButtonGroupElement;
import com.vaadin.testbench.parallel.TestCategory; import com.vaadin.testbench.parallel.TestCategory;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
fail(); fail();
} }


grid.getRow(2).click(5, 5);
GridRowElement row = grid.getRow(2);
row.click(getXOffset(row, 5), getYOffset(row, 5));
waitForElementPresent(By.id("lbl1")); waitForElementPresent(By.id("lbl1"));


int openHeight = grid.getSize().getHeight(); int openHeight = grid.getSize().getHeight();
detailsRowHeight, "opened" }); detailsRowHeight, "opened" });
} }


grid.getRow(2).click(5, 5);
row.click(getXOffset(row, 5), getYOffset(row, 5));
waitForElementNotPresent(By.id("lbl1")); waitForElementNotPresent(By.id("lbl1"));


int afterHeight = grid.getSize().getHeight(); int afterHeight = grid.getSize().getHeight();

+ 3
- 2
uitest/src/test/java/com/vaadin/tests/components/grid/GridResizeHiddenColumnTest.java View File

int offset) { int offset) {
Dimension size = headerCell.getSize(); Dimension size = headerCell.getSize();
new Actions(getDriver()) 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(); .clickAndHold().moveByOffset(offset, 0).release().perform();
} }
} }

+ 4
- 2
uitest/src/test/java/com/vaadin/tests/components/table/ColumnReorderingWithManyColumnsTest.java View File



private void drag(WebElement source, WebElement target) { private void drag(WebElement source, WebElement target) {
Actions actions = new Actions(getDriver()); Actions actions = new Actions(getDriver());
actions.moveToElement(source, 10, 10);
actions.moveToElement(source, getXOffset(source, 10),
getYOffset(source, 10));
actions.clickAndHold(source); actions.clickAndHold(source);
actions.moveToElement(target, 10, 10);
actions.moveToElement(target, getXOffset(target, 10),
getYOffset(target, 10));
actions.perform(); actions.perform();
} }
} }

+ 7
- 1
uitest/src/test/java/com/vaadin/tests/components/table/ContextMenuSizeTest.java View File

} }


private WebElement openContextMenu() { 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 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(); actions.perform();
return findElement(By.className("v-contextmenu")); return findElement(By.className("v-contextmenu"));
} }

+ 4
- 4
uitest/src/test/java/com/vaadin/tests/components/textarea/TextAreaSizeResettedTest.java View File



private void resizeTextAreaBy(int offset) { private void resizeTextAreaBy(int offset) {
int resizeHandlerOffset = 10; 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() .clickAndHold().moveByOffset(offset, offset).release().build()
.perform(); .perform();
} }

+ 1
- 1
uitest/src/test/java/com/vaadin/tests/components/upload/UploadImmediateButtonWidthChameleonTest.java View File



@Test @Test
public void immediateButtonWithUndefinedWidth() { public void immediateButtonWithUndefinedWidth() {
assertThat(getButtonWidth("upload3"), closeTo(69, 4));
assertThat(getButtonWidth("upload3"), closeTo(69, 5));
} }
} }

+ 12
- 1
uitest/src/test/java/com/vaadin/tests/components/window/MaximizedWindowOrderTest.java View File

import static org.junit.Assert.assertThat; import static org.junit.Assert.assertThat;


import org.junit.Test; 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.WindowElement;
import com.vaadin.testbench.elements.ButtonElement; import com.vaadin.testbench.elements.ButtonElement;
WindowElement anotherWindow = openAnotherWindow(); WindowElement anotherWindow = openAnotherWindow();


// move the window to make the maximize button visible. // move the window to make the maximize button visible.
anotherWindow.move(10, 20);
moveWindow(anotherWindow, 10, 20);
maximizedWindow.maximize(); maximizedWindow.maximize();


assertThat(maximizedWindow.getCssValue("z-index"), assertThat(maximizedWindow.getCssValue("z-index"),
is(greaterThan(anotherWindow.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();
}
} }

+ 2
- 1
uitest/src/test/java/com/vaadin/tests/components/window/ModalWindowRefocusTest.java View File

waitForElementPresent(By.id("focusfield")); waitForElementPresent(By.id("focusfield"));
WebElement curtain = findElement( WebElement curtain = findElement(
org.openqa.selenium.By.className("v-window-modalitycurtain")); 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);
pressKeyAndWait(Keys.TAB); pressKeyAndWait(Keys.TAB);

+ 2
- 1
uitest/src/test/java/com/vaadin/tests/components/window/WindowZIndexTest.java View File



WebElement window4 = driver WebElement window4 = driver
.findElement(By.xpath("//*[contains(text(), 'Window 4')]")); .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"); compareScreen("win4-on-top");
} }

+ 3
- 1
uitest/src/test/java/com/vaadin/tests/contextclick/AbstractContextClickTest.java View File

"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);", "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); e, x, y);
} else { } 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(); .contextClick().moveByOffset(-5, -5).click().perform();
} }
} }

+ 3
- 2
uitest/src/test/java/com/vaadin/tests/contextclick/TreeContextClickTest.java View File

List<WebElement> nodes = $(TreeElement.class).first() List<WebElement> nodes = $(TreeElement.class).first()
.findElements(By.className("v-tree-node")); .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() nodes = $(TreeElement.class).first()
.findElements(By.className("v-tree-node")); .findElements(By.className("v-tree-node"));

+ 10
- 5
uitest/src/test/java/com/vaadin/tests/dd/DnDOnSubtreeTest.java View File



import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.TestBenchElement;
import com.vaadin.testbench.commands.TestBenchElementCommands;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.v7.testbench.elements.TreeElement; import com.vaadin.v7.testbench.elements.TreeElement;


TreeElement tree = $(TreeElement.class).first(); TreeElement tree = $(TreeElement.class).first();
WebElement bar2 = tree.findElement(By.vaadin("#n[3]")); WebElement bar2 = tree.findElement(By.vaadin("#n[3]"));
WebElement bar5 = tree.findElement(By.vaadin("#n[6]")); 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 */ /* 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 */ /* Assert that the dragged & dropped node is now a child of Bar5 */
waitUntilElementPresent(tree, "#n[5]/n[0]"); waitUntilElementPresent(tree, "#n[5]/n[0]");
} }

+ 0
- 1
uitest/src/test/java/com/vaadin/tests/extensions/ResponsiveUITest.java View File

import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions; import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;


import com.vaadin.testbench.By; import com.vaadin.testbench.By;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;

+ 5
- 0
uitest/src/test/java/com/vaadin/tests/fieldgroup/BasicPersonFormTest.java View File

import com.vaadin.testbench.elements.TextAreaElement; import com.vaadin.testbench.elements.TextAreaElement;
import com.vaadin.testbench.elements.TextFieldElement; import com.vaadin.testbench.elements.TextFieldElement;
import com.vaadin.tests.data.bean.Sex; import com.vaadin.tests.data.bean.Sex;
import com.vaadin.tests.tb3.AbstractTB3Test;
import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.tb3.PrivateTB3Configuration;


public abstract class BasicPersonFormTest extends MultiBrowserTest { public abstract class BasicPersonFormTest extends MultiBrowserTest {


super.setup(); super.setup();


logCounter = 0; logCounter = 0;

// Use larger view port to make sure everything is visible.
testBench().resizeViewPortTo(1500, 1500);
} }


@Override @Override

+ 38
- 15
uitest/src/test/java/com/vaadin/tests/layouts/TestLayoutClickListenersTest.java View File

"2. GridLayout: left click on This is tf5"); "2. GridLayout: left click on This is tf5");


// click on the layout body (not any component inside the layout) // 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", assertLogText("GridLayout body clicked",
"3. GridLayout: left click on <none>"); "3. GridLayout: left click on <none>");
} }
GridLayoutElement layout = $(GridLayoutElement.class).first(); GridLayoutElement layout = $(GridLayoutElement.class).first();


// Drag inside the first label in this layout // Drag inside the first label in this layout
LabelElement label = layout.$(LabelElement.class).first();
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(LabelElement.class).first(), 40, 8)
.moveToElement(label, getXOffset(label, 40),
getYOffset(label, 8))
.clickAndHold().moveByOffset(-20, 0).release().perform(); .clickAndHold().moveByOffset(-20, 0).release().perform();
assertLogText("Mouse dragged in GridLayout", assertLogText("Mouse dragged in GridLayout",
"1. GridLayout: left click on This is label 1"); "1. GridLayout: left click on This is label 1");


// Drag from the third label to a text field in this layout // 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()) 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(); .release().perform();
assertLogText("Expected the drag to be ignored between elements", assertLogText("Expected the drag to be ignored between elements",
"1. GridLayout: left click on This is label 1"); "1. GridLayout: left click on This is label 1");
VerticalLayoutElement layout = $(VerticalLayoutElement.class).get(4); VerticalLayoutElement layout = $(VerticalLayoutElement.class).get(4);


// Drag inside the first text field // Drag inside the first text field
TextFieldElement textField = layout.$(TextFieldElement.class).first();
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(TextFieldElement.class).first(), 25, 9)
.moveToElement(textField, getXOffset(textField, 25),
getYOffset(textField, 9))
.clickAndHold().moveByOffset(-20, 0).release().perform(); .clickAndHold().moveByOffset(-20, 0).release().perform();
assertLogText("Mouse dragged in VerticalLayout", assertLogText("Mouse dragged in VerticalLayout",
"1. VerticalLayout: left click on This is tf5"); "1. VerticalLayout: left click on This is tf5");


// Drag from a caption to its text field // Drag from a caption to its text field
textField = layout.$(TextFieldElement.class).get(4);
new Actions(getDriver()) 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(); .release().perform();
assertLogText("Expected the drag to be ignored between elements", assertLogText("Expected the drag to be ignored between elements",
"1. VerticalLayout: left click on This is tf5"); "1. VerticalLayout: left click on This is tf5");
AbsoluteLayoutElement layout = $(AbsoluteLayoutElement.class).first(); AbsoluteLayoutElement layout = $(AbsoluteLayoutElement.class).first();


// Drag inside the first text field's caption // Drag inside the first text field's caption
TextFieldElement firstTextField = layout.$(TextFieldElement.class)
.first();
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(TextFieldElement.class).first(), 21, 9)
.moveToElement(firstTextField, getXOffset(firstTextField, 21),
getYOffset(firstTextField, 9))
.clickAndHold().moveByOffset(-10, 0).release().perform(); .clickAndHold().moveByOffset(-10, 0).release().perform();
assertLogText("Mouse dragged in AbsoluteLayout", assertLogText("Mouse dragged in AbsoluteLayout",
"1. AbsoluteLayout: left click on This is its caption"); "1. AbsoluteLayout: left click on This is its caption");


// Drag from a text field to another text field // Drag from a text field to another text field
TextFieldElement otherTextField = layout.$(TextFieldElement.class)
.get(1);
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(TextFieldElement.class).get(1), 54, 7)
.moveToElement(otherTextField, getXOffset(otherTextField, 54),
getYOffset(otherTextField, 7))
.clickAndHold() .clickAndHold()
.moveToElement(layout.$(TextFieldElement.class).first(), 52, 10)
.moveToElement(firstTextField, getXOffset(firstTextField, 52),
getYOffset(firstTextField, 10))
.release().perform(); .release().perform();
assertLogText("Expected the drag to be ignored between elements", assertLogText("Expected the drag to be ignored between elements",
"1. AbsoluteLayout: left click on This is its caption"); "1. AbsoluteLayout: left click on This is its caption");
CssLayoutElement layout = $(CssLayoutElement.class).first(); CssLayoutElement layout = $(CssLayoutElement.class).first();


// Drag inside the first text field's caption // Drag inside the first text field's caption
TextFieldElement firstTextField = layout.$(TextFieldElement.class)
.first();
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(TextFieldElement.class).first(), 51, 7)
.moveToElement(firstTextField, getXOffset(firstTextField, 51),
getYOffset(firstTextField, 7))
.clickAndHold().moveByOffset(-20, 0).release().perform(); .clickAndHold().moveByOffset(-20, 0).release().perform();
assertLogText("Mouse dragged in CSSLayout", assertLogText("Mouse dragged in CSSLayout",
"1. CSSLayout: left click on This is its caption"); "1. CSSLayout: left click on This is its caption");


// Drag from the first text field to the second text field // Drag from the first text field to the second text field
TextFieldElement otherTextField = layout.$(TextFieldElement.class)
.get(1);
new Actions(getDriver()) new Actions(getDriver())
.moveToElement(layout.$(TextFieldElement.class).first(), 51, 27)
.moveToElement(firstTextField, getXOffset(firstTextField, 51),
getYOffset(firstTextField, 27))
.clickAndHold() .clickAndHold()
.moveToElement(layout.$(TextFieldElement.class).get(1), 51, 27)
.moveToElement(otherTextField, getXOffset(otherTextField, 51),
getYOffset(otherTextField, 27))
.release().perform(); .release().perform();
assertLogText("Expected the drag to be ignored between elements", assertLogText("Expected the drag to be ignored between elements",
"1. CSSLayout: left click on This is its caption"); "1. CSSLayout: left click on This is its caption");

+ 1
- 3
uitest/src/test/java/com/vaadin/tests/resources/FrontendInitialResourceUITest.java View File

public void correctEs5Es6FileImportedThroughFrontend() { public void correctEs5Es6FileImportedThroughFrontend() {
openTestURL(); openTestURL();
String es; String es;
if (BrowserUtil.isIE(getDesiredCapabilities())
|| BrowserUtil.isPhantomJS(getDesiredCapabilities())
|| BrowserUtil.isFirefox(getDesiredCapabilities())) {
if (BrowserUtil.isIE(getDesiredCapabilities())) {
es = "es5"; es = "es5";
} else { } else {
es = "es6"; es = "es6";

+ 1
- 3
uitest/src/test/java/com/vaadin/tests/resources/FrontendLaterLoadedResourceUITest.java View File

openTestURL(); openTestURL();
$(ButtonElement.class).first().click(); $(ButtonElement.class).first().click();
String es; String es;
if (BrowserUtil.isIE(getDesiredCapabilities())
|| BrowserUtil.isPhantomJS(getDesiredCapabilities())
|| BrowserUtil.isFirefox(getDesiredCapabilities())) {
if (BrowserUtil.isIE(getDesiredCapabilities())) {
es = "es5"; es = "es5";
} else { } else {
es = "es6"; es = "es6";

+ 42
- 0
uitest/src/test/java/com/vaadin/tests/tb3/AbstractTB3Test.java View File

element)).intValue(); 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 * Returns client height rounded up instead of as double because of IE9
* issues: https://dev.vaadin.com/ticket/18469 * issues: https://dev.vaadin.com/ticket/18469

+ 2
- 2
uitest/src/test/java/com/vaadin/tests/themes/valo/ContrastFontColorTest.java View File

import org.junit.Test; import org.junit.Test;


import com.vaadin.testbench.elements.TextFieldElement; 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. * Test for default contrast color variable in valo-font-color function.
* *
* @author Vaadin Ltd * @author Vaadin Ltd
*/ */
public class ContrastFontColorTest extends MultiBrowserTest {
public class ContrastFontColorTest extends SingleBrowserTest {


@Test @Test
public void testTextColor() { public void testTextColor() {

Loading…
Cancel
Save