aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>2017-05-23 12:54:26 +0300
committerAleksi Hietanen <aleksi@vaadin.com>2017-05-23 12:54:26 +0300
commit6b6dc9306a749e24f498507d0eddce10b5c6cbf5 (patch)
treea4be32a24c55a67d7c6c6682f15397273807ca7a /uitest/src
parente746334d6444bb16c099f31480919b9020a69bc7 (diff)
downloadvaadin-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.java8
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/tree/TreeBasicFeaturesTest.java39
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());
+ }
}