diff options
author | Teemu Suo-Anttila <tsuoanttila@users.noreply.github.com> | 2017-05-23 12:54:26 +0300 |
---|---|---|
committer | Aleksi Hietanen <aleksi@vaadin.com> | 2017-05-23 12:54:26 +0300 |
commit | 6b6dc9306a749e24f498507d0eddce10b5c6cbf5 (patch) | |
tree | a4be32a24c55a67d7c6c6682f15397273807ca7a /uitest/src | |
parent | e746334d6444bb16c099f31480919b9020a69bc7 (diff) | |
download | vaadin-framework-6b6dc9306a749e24f498507d0eddce10b5c6cbf5.tar.gz vaadin-framework-6b6dc9306a749e24f498507d0eddce10b5c6cbf5.zip |
Add MultiSelection support for Tree Component (#9354)
Diffstat (limited to 'uitest/src')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/tree/TreeBasicFeatures.java | 8 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java | 39 |
2 files changed, 47 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/tree/TreeBasicFeatures.java b/uitest/src/main/java/com/vaadin/tests/components/tree/TreeBasicFeatures.java index a579c98a12..9f69f3d760 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/tree/TreeBasicFeatures.java +++ b/uitest/src/main/java/com/vaadin/tests/components/tree/TreeBasicFeatures.java @@ -21,6 +21,7 @@ import com.vaadin.ui.MenuBar.Command; import com.vaadin.ui.MenuBar.MenuItem; import com.vaadin.ui.Tree; import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Grid.SelectionMode; @Theme("tests-valo-disabled-animations") @Widgetset("com.vaadin.DefaultWidgetSet") @@ -68,6 +69,7 @@ public class TreeBasicFeatures extends AbstractTestUIWithLog { MenuItem componentMenu = menu.addItem("Component", null); createIconMenu(componentMenu.addItem("Icons", null)); createCaptionMenu(componentMenu.addItem("Captions", null)); + createSelectionModeMenu(componentMenu.addItem("Selection Mode", null)); componentMenu.addItem("Item Click Listener", new Command() { private Registration registration; @@ -108,6 +110,12 @@ public class TreeBasicFeatures extends AbstractTestUIWithLog { return menu; } + private void createSelectionModeMenu(MenuItem modeMenu) { + for (SelectionMode mode : SelectionMode.values()) { + modeMenu.addItem(mode.name(), item -> tree.setSelectionMode(mode)); + } + } + private void createCaptionMenu(MenuItem captionMenu) { captionMenu.addItem("String.valueOf", menu -> tree.setItemCaptionGenerator(String::valueOf)); diff --git a/uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java b/uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java index 8d95bf5ef6..bde38a963a 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java @@ -7,6 +7,8 @@ import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +import org.openqa.selenium.interactions.Actions; import com.vaadin.testbench.TestBenchElement; import com.vaadin.testbench.elements.TreeElement; @@ -164,4 +166,41 @@ public class TreeBasicFeaturesTest extends MultiBrowserTest { Assert.assertEquals("Tree should prevent collapsing all nodes.", "2 | 0", tree.getItem(2).getText()); } + + @Test + public void tree_multiselect() { + selectMenuPath("Component", "Selection Mode", "MULTI"); + TreeElement tree = $(TreeElement.class).first(); + tree.getItem(0).click(); + TreeGridElement wrap = tree.wrap(TreeGridElement.class); + Assert.assertFalse( + "Tree MultiSelection shouldn't have selection column", + wrap.getCell(0, 0).isElementPresent(By.tagName("input"))); + Assert.assertTrue("First row was not selected", + wrap.getRow(0).isSelected()); + new Actions(getDriver()).sendKeys(Keys.ARROW_DOWN, Keys.SPACE) + .perform(); + Assert.assertTrue("First row was deselected", + wrap.getRow(0).isSelected()); + Assert.assertTrue("Second row was not selected", + wrap.getRow(1).isSelected()); + } + + @Test + public void tree_multiselect_click() { + selectMenuPath("Component", "Selection Mode", "MULTI"); + TreeElement tree = $(TreeElement.class).first(); + TreeGridElement wrap = tree.wrap(TreeGridElement.class); + tree.getItem(0).click(); + Assert.assertTrue("First row was not selected", + wrap.getRow(0).isSelected()); + tree.getItem(1).click(); + Assert.assertTrue("First row was deselected", + wrap.getRow(0).isSelected()); + Assert.assertTrue("Second row was not selected", + wrap.getRow(1).isSelected()); + tree.getItem(0).click(); + Assert.assertFalse("First row was not deselected", + wrap.getRow(0).isSelected()); + } } |