summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorMika Murtojarvi <mika@vaadin.com>2015-06-25 13:07:23 +0300
committerHenri Sara <hesara@vaadin.com>2015-07-04 14:33:02 +0300
commit861581c1b87a0b3ef42b55544372497bc829d60c (patch)
tree0c61ccbabf82edf07c5d92807c05bfda793bc9d7 /uitest
parent337e4a7fe7836286aa96898b23db34eafb55ade9 (diff)
downloadvaadin-framework-861581c1b87a0b3ef42b55544372497bc829d60c.tar.gz
vaadin-framework-861581c1b87a0b3ef42b55544372497bc829d60c.zip
Change focused Grid cell when scrolling with the keyboard (#18356).
- The focused cell is now updated when scrolling with pageup/down, home or end key. - The scroll amount is slightly reduced to ensure that no cells are skipped over with pgup/down scroll. Change-Id: I8a7dccf46350761f86714715183b24ec29d79f4e
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridKeyboardNavigationTest.java47
1 files changed, 29 insertions, 18 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridKeyboardNavigationTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridKeyboardNavigationTest.java
index 3f2e82793b..6724a7bb49 100644
--- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridKeyboardNavigationTest.java
+++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridKeyboardNavigationTest.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.assertTrue;
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.GridElement;
@@ -192,30 +193,40 @@ public class GridKeyboardNavigationTest extends GridBasicFeaturesTest {
selectMenuPath("Component", "Size", "HeightMode Row");
- getGridElement().getCell(5, 2).click();
-
+ getGridElement().getCell(9, 2).click();
new Actions(getDriver()).sendKeys(Keys.PAGE_DOWN).perform();
- assertTrue("Row 20 did not become visible",
- isElementPresent(By.xpath("//td[text() = '(20, 2)']")));
+ assertTrue("Row 17 did not become visible",
+ isElementPresent(By.xpath("//td[text() = '(17, 2)']")));
new Actions(getDriver()).sendKeys(Keys.PAGE_DOWN).perform();
- assertTrue("Row 30 did not become visible",
- isElementPresent(By.xpath("//td[text() = '(30, 2)']")));
-
- assertTrue("Originally focused cell is no longer focused",
- getGridElement().getCell(5, 2).isFocused());
-
- getGridElement().getCell(50, 2).click();
+ assertTrue("Row 25 did not become visible",
+ isElementPresent(By.xpath("//td[text() = '(25, 2)']")));
+ checkFocusedCell(29, 2, 4);
+ getGridElement().getCell(41, 2).click();
new Actions(getDriver()).sendKeys(Keys.PAGE_UP).perform();
- assertTrue("Row 31 did not become visible",
- isElementPresent(By.xpath("//td[text() = '(31, 2)']")));
+ assertTrue("Row 33 did not become visible",
+ isElementPresent(By.xpath("//td[text() = '(33, 2)']")));
new Actions(getDriver()).sendKeys(Keys.PAGE_UP).perform();
- assertTrue("Row 21 did not become visible",
- isElementPresent(By.xpath("//td[text() = '(21, 2)']")));
+ assertTrue("Row 25 did not become visible",
+ isElementPresent(By.xpath("//td[text() = '(25, 2)']")));
+ checkFocusedCell(21, 2, 4);
+ }
- assertTrue("Originally focused cell is no longer focused",
- getGridElement().getCell(50, 2).isFocused());
+ private void checkFocusedCell(int row, int column, int rowTolerance) {
+ WebElement focusedCell = getGridElement().findElement(
+ By.className("v-grid-cell-focused"));
+ String cellContents = focusedCell.getText();
+ String[] rowAndCol = cellContents.replaceAll("[()\\s]", "").split(",");
+ int focusedRow = Integer.parseInt(rowAndCol[0].trim());
+ int focusedColumn = Integer.parseInt(rowAndCol[1].trim());
+ // rowTolerance is the maximal allowed difference from the expected
+ // focused row. It is required because scrolling using page up/down
+ // may not move the position by exactly the visible height of the grid.
+ assertTrue("The wrong cell is focused. Expected (" + row + "," + column
+ + "), was " + cellContents,
+ column == focusedColumn
+ && Math.abs(row - focusedRow) <= rowTolerance);
}
-}
+} \ No newline at end of file