From 6f9825319a80797e22c83f855fe083dd93567137 Mon Sep 17 00:00:00 2001 From: Henri Sara Date: Tue, 9 May 2017 09:18:47 +0300 Subject: Fix selection with space in TreeGrid/Tree Makes subclasses of Grid call custom key and mouse event handlers. --- .../treegrid/TreeGridBasicFeaturesTest.java | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'uitest/src') diff --git a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridBasicFeaturesTest.java b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridBasicFeaturesTest.java index b1b4da2c74..18b320abba 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridBasicFeaturesTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/treegrid/TreeGridBasicFeaturesTest.java @@ -192,6 +192,51 @@ public class TreeGridBasicFeaturesTest extends MultiBrowserTest { assertNoErrorNotifications(); } + @Test + public void keyboard_selection() { + grid.getRow(0).getCell(0).click(); + + // Should expand "0 | 0" without moving focus + new Actions(getDriver()).sendKeys(Keys.RIGHT).perform(); + assertEquals(6, grid.getRowCount()); + assertCellTexts(1, 0, new String[] { "1 | 0", "1 | 1", "1 | 2" }); + + // Should navigate 2 times down to "1 | 1" + new Actions(getDriver()).sendKeys(Keys.DOWN, Keys.DOWN).perform(); + assertEquals(6, grid.getRowCount()); + assertCellTexts(1, 0, new String[] { "1 | 0", "1 | 1", "1 | 2" }); + assertFalse( + grid.getRow(0).hasClassName("v-treegrid-rowmode-row-focused")); + assertFalse( + grid.getRow(1).hasClassName("v-treegrid-rowmode-row-focused")); + assertTrue( + grid.getRow(2).hasClassName("v-treegrid-rowmode-row-focused")); + + // Should select "1 | 1" without moving focus + new Actions(getDriver()).sendKeys(Keys.SPACE).perform(); + assertTrue(grid.getRow(2).hasClassName("v-treegrid-row-selected")); + + // Should move focus but not selection + new Actions(getDriver()).sendKeys(Keys.UP).perform(); + assertTrue( + grid.getRow(1).hasClassName("v-treegrid-rowmode-row-focused")); + assertFalse( + grid.getRow(2).hasClassName("v-treegrid-rowmode-row-focused")); + assertFalse(grid.getRow(1).hasClassName("v-treegrid-row-selected")); + assertTrue(grid.getRow(2).hasClassName("v-treegrid-row-selected")); + + // Should select "1 | 0" without moving focus + new Actions(getDriver()).sendKeys(Keys.SPACE).perform(); + assertTrue( + grid.getRow(1).hasClassName("v-treegrid-rowmode-row-focused")); + assertFalse( + grid.getRow(2).hasClassName("v-treegrid-rowmode-row-focused")); + assertTrue(grid.getRow(1).hasClassName("v-treegrid-row-selected")); + assertFalse(grid.getRow(2).hasClassName("v-treegrid-row-selected")); + + assertNoErrorNotifications(); + } + @Test public void changing_hierarchy_column() { assertTrue(grid.getRow(0).getCell(0) -- cgit v1.2.3