1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package com.vaadin.tests.components.grid;
-
- import java.io.IOException;
-
- import org.junit.Test;
- import org.openqa.selenium.By;
- import org.openqa.selenium.JavascriptExecutor;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.WebElement;
- import org.openqa.selenium.interactions.Actions;
-
- import com.vaadin.testbench.elements.GridElement;
- import com.vaadin.testbench.elements.GridElement.GridCellElement;
- import com.vaadin.testbench.parallel.TestCategory;
- import com.vaadin.tests.tb3.MultiBrowserTest;
-
- @TestCategory("grid")
- public class GridEditorFrozenColumnsUITest extends MultiBrowserTest {
-
- @Test
- public void testEditorWithFrozenColumns() throws IOException {
- openTestURL();
-
- openEditor(10);
- waitForElementPresent(By.className("v-grid-editor"));
- compareScreen("noscroll");
-
- scrollGridHorizontallyTo(100);
- sleep(500);
- compareScreen("scrolled");
- }
-
- private void openEditor(int rowIndex) {
- GridElement grid = $(GridElement.class).first();
-
- GridCellElement cell = grid.getCell(rowIndex, 1);
-
- new Actions(driver).moveToElement(cell).doubleClick().build().perform();
- }
-
- private void scrollGridHorizontallyTo(double px) {
- executeScript("arguments[0].scrollLeft = " + px,
- getGridHorizontalScrollbar());
- }
-
- private Object executeScript(String script, WebElement element) {
- final WebDriver driver = getDriver();
- if (driver instanceof JavascriptExecutor) {
- final JavascriptExecutor je = (JavascriptExecutor) driver;
- return je.executeScript(script, element);
- } else {
- throw new IllegalStateException("current driver "
- + getDriver().getClass().getName() + " is not a "
- + JavascriptExecutor.class.getSimpleName());
- }
- }
-
- private WebElement getGridHorizontalScrollbar() {
- return getDriver().findElement(By.xpath(
- "//div[contains(@class, \"v-grid-scroller-horizontal\")]"));
- }
- }
|