aboutsummaryrefslogtreecommitdiffstats
path: root/server/src/test/java
diff options
context:
space:
mode:
authorPekka Hyvönen <pekka@vaadin.com>2016-12-09 09:14:56 +0200
committerGitHub <noreply@github.com>2016-12-09 09:14:56 +0200
commit22063cfe1a027057e523ccd85937162af43edfd8 (patch)
tree21fae6cecb4c32de02787b4b1ee5cff284d5754b /server/src/test/java
parenta95dadcde5a223aacc3005b298d66e00419454e8 (diff)
downloadvaadin-framework-22063cfe1a027057e523ccd85937162af43edfd8.tar.gz
vaadin-framework-22063cfe1a027057e523ccd85937162af43edfd8.zip
Add a generic selection listener to Grid & SelectionModels (#105)
* Add a generic selection listener to Grid & SelectionModels Fixes some inconsistent event naming and invalid javadocs. Fixes vaadin/framework8-issues#541
Diffstat (limited to 'server/src/test/java')
-rw-r--r--server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java (renamed from server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java)2
-rw-r--r--server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java (renamed from server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java)2
-rw-r--r--server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java15
-rw-r--r--server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java18
-rw-r--r--server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java99
-rw-r--r--server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java4
-rw-r--r--server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java4
7 files changed, 123 insertions, 21 deletions
diff --git a/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java b/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java
index 703ed9e170..c3921ff5fc 100644
--- a/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinder.java
+++ b/server/src/test/java/com/vaadin/data/GridAsMultiSelectInBinderTest.java
@@ -28,7 +28,7 @@ import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.MultiSelect;
import com.vaadin.ui.components.grid.MultiSelectionModelImpl;
-public class GridAsMultiSelectInBinder
+public class GridAsMultiSelectInBinderTest
extends BinderTestBase<Binder<BeanWithEnums>, BeanWithEnums> {
public class TestEnumSetToStringConverter
implements Converter<Set<TestEnum>, String> {
diff --git a/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java b/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java
index e1fc394fe6..964cf0bc98 100644
--- a/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinder.java
+++ b/server/src/test/java/com/vaadin/data/GridAsSingleSelectInBinderTest.java
@@ -19,7 +19,7 @@ import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.SingleSelect;
import com.vaadin.ui.components.grid.SingleSelectionModelImpl;
-public class GridAsSingleSelectInBinder
+public class GridAsSingleSelectInBinderTest
extends BinderTestBase<Binder<Person>, Person> {
private class GridWithCustomSingleSelectionModel extends Grid<Sex> {
diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java b/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java
index aa601c67be..c2896315f2 100644
--- a/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java
+++ b/server/src/test/java/com/vaadin/tests/components/grid/GridMultiSelectionModelTest.java
@@ -103,7 +103,7 @@ public class GridMultiSelectionModelTest {
oldSelectionCapture = new Capture<>();
events = new AtomicInteger();
- selectionModel.addSelectionListener(event -> {
+ selectionModel.addMultiSelectionListener(event -> {
currentSelectionCapture
.setValue(new ArrayList<>(event.getNewSelection()));
oldSelectionCapture
@@ -135,7 +135,7 @@ public class GridMultiSelectionModelTest {
List<String> selectionChanges = new ArrayList<>();
Capture<List<String>> oldSelectionCapture = new Capture<>();
((MultiSelectionModelImpl<String>) customGrid.getSelectionModel())
- .addSelectionListener(e -> {
+ .addMultiSelectionListener(e -> {
selectionChanges.addAll(e.getValue());
oldSelectionCapture
.setValue(new ArrayList<>(e.getOldSelection()));
@@ -578,7 +578,7 @@ public class GridMultiSelectionModelTest {
Registration registration = Mockito.mock(Registration.class);
MultiSelectionModelImpl<String> model = new MultiSelectionModelImpl<String>() {
@Override
- public Registration addSelectionListener(
+ public Registration addMultiSelectionListener(
MultiSelectionListener<String> listener) {
selectionListener.set(listener);
return registration;
@@ -595,10 +595,11 @@ public class GridMultiSelectionModelTest {
grid.setItems("foo", "bar");
AtomicReference<MultiSelectionEvent<String>> event = new AtomicReference<>();
- Registration actualRegistration = model.addSelectionListener(evt -> {
- Assert.assertNull(event.get());
- event.set(evt);
- });
+ Registration actualRegistration = model
+ .addMultiSelectionListener(evt -> {
+ Assert.assertNull(event.get());
+ event.set(evt);
+ });
Assert.assertSame(registration, actualRegistration);
selectionListener.get().accept(new MultiSelectionEvent<>(grid,
diff --git a/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java b/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java
index bae7c9c19b..9dd7d7e27a 100644
--- a/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java
+++ b/server/src/test/java/com/vaadin/tests/components/grid/GridSingleSelectionModelTest.java
@@ -73,8 +73,8 @@ public class GridSingleSelectionModelTest {
.getSelectionModel();
selectionChanges = new ArrayList<>();
- selectionModel
- .addSelectionListener(e -> selectionChanges.add(e.getValue()));
+ selectionModel.addSingleSelectionListener(
+ e -> selectionChanges.add(e.getValue()));
}
@Test(expected = IllegalStateException.class)
@@ -97,7 +97,8 @@ public class GridSingleSelectionModelTest {
List<String> selectionChanges = new ArrayList<>();
((SingleSelectionModelImpl<String>) customGrid.getSelectionModel())
- .addSelectionListener(e -> selectionChanges.add(e.getValue()));
+ .addSingleSelectionListener(
+ e -> selectionChanges.add(e.getValue()));
customGrid.getSelectionModel().select("Foo");
assertEquals("Foo",
@@ -292,7 +293,7 @@ public class GridSingleSelectionModelTest {
String value = "foo";
SingleSelectionModelImpl<String> select = new SingleSelectionModelImpl<String>() {
@Override
- public Registration addSelectionListener(
+ public Registration addSingleSelectionListener(
SingleSelectionListener<String> listener) {
selectionListener.set(listener);
return registration;
@@ -305,10 +306,11 @@ public class GridSingleSelectionModelTest {
};
AtomicReference<ValueChangeEvent<?>> event = new AtomicReference<>();
- Registration actualRegistration = select.addSelectionListener(evt -> {
- Assert.assertNull(event.get());
- event.set(evt);
- });
+ Registration actualRegistration = select
+ .addSingleSelectionListener(evt -> {
+ Assert.assertNull(event.get());
+ event.set(evt);
+ });
Assert.assertSame(registration, actualRegistration);
selectionListener.get().accept(new SingleSelectionEvent<>(grid,
diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java
index 942228ed34..d477a731cf 100644
--- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java
+++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java
@@ -1,13 +1,21 @@
package com.vaadin.tests.server.component.grid;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import java.util.Optional;
+
+import org.easymock.Capture;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
+import com.vaadin.event.selection.SelectionEvent;
import com.vaadin.server.SerializableFunction;
import com.vaadin.shared.ui.grid.HeightMode;
import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.SelectionMode;
import com.vaadin.ui.renderers.NumberRenderer;
public class GridTest {
@@ -78,4 +86,95 @@ public class GridTest {
public void testGridMultipleColumnsWithSameIdentifier() {
grid.addColumn("foo", t -> t);
}
+
+ @Test
+ public void testAddSelectionListener_singleSelectMode() {
+ grid.setItems("foo", "bar", "baz");
+
+ Capture<SelectionEvent<String>> eventCapture = new Capture<>();
+
+ grid.addSelectionListener(event -> eventCapture.setValue(event));
+
+ grid.getSelectionModel().select("foo");
+
+ SelectionEvent<String> event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals("foo", event.getFirstSelected().get());
+ assertEquals("foo",
+ event.getAllSelectedItems().stream().findFirst().get());
+
+ grid.getSelectionModel().select("bar");
+
+ event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals("bar", event.getFirstSelected().get());
+ assertEquals("bar",
+ event.getAllSelectedItems().stream().findFirst().get());
+
+ grid.getSelectionModel().deselect("bar");
+
+ event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals(Optional.empty(), event.getFirstSelected());
+ assertEquals(0, event.getAllSelectedItems().size());
+ }
+
+ @Test
+ public void testAddSelectionListener_multiSelectMode() {
+ grid.setItems("foo", "bar", "baz");
+ grid.setSelectionMode(SelectionMode.MULTI);
+
+ Capture<SelectionEvent<String>> eventCapture = new Capture<>();
+
+ grid.addSelectionListener(event -> eventCapture.setValue(event));
+
+ grid.getSelectionModel().select("foo");
+
+ SelectionEvent<String> event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals("foo", event.getFirstSelected().get());
+ assertEquals("foo",
+ event.getAllSelectedItems().stream().findFirst().get());
+
+ grid.getSelectionModel().select("bar");
+
+ event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals("foo", event.getFirstSelected().get());
+ assertEquals("foo",
+ event.getAllSelectedItems().stream().findFirst().get());
+ Assert.assertArrayEquals(new String[] { "foo", "bar" },
+ event.getAllSelectedItems().toArray(new String[2]));
+
+ grid.getSelectionModel().deselect("foo");
+
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals("bar", event.getFirstSelected().get());
+ assertEquals("bar",
+ event.getAllSelectedItems().stream().findFirst().get());
+ Assert.assertArrayEquals(new String[] { "bar" },
+ event.getAllSelectedItems().toArray(new String[1]));
+
+ grid.getSelectionModel().deselectAll();
+
+ event = eventCapture.getValue();
+ assertNotNull(event);
+ assertFalse(event.isUserOriginated());
+ assertEquals(Optional.empty(), event.getFirstSelected());
+ assertEquals(0, event.getAllSelectedItems().size());
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void testAddSelectionListener_noSelectionMode() {
+ grid.setSelectionMode(SelectionMode.NONE);
+
+ grid.addSelectionListener(
+ event -> Assert.fail("never ever happens (tm)"));
+ }
}
diff --git a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
index ee129d0e0a..c930b8e217 100644
--- a/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
+++ b/server/src/test/java/com/vaadin/ui/AbstractSingleSelectTest.java
@@ -81,7 +81,7 @@ public class AbstractSingleSelectTest {
listing = new PersonListing();
listing.setItems(PERSON_A, PERSON_B, PERSON_C);
selectionChanges = new ArrayList<>();
- listing.addSelectionChangeListener(
+ listing.addSelectionListener(
e -> selectionChanges.add(e.getValue()));
}
@@ -237,7 +237,7 @@ public class AbstractSingleSelectTest {
String value = "foo";
AbstractSingleSelect<String> select = new AbstractSingleSelect<String>() {
@Override
- public Registration addSelectionChangeListener(
+ public Registration addSelectionListener(
SingleSelectionListener<String> listener) {
selectionListener.set(listener);
return registration;
diff --git a/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java b/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java
index 22b9206760..9219ec834e 100644
--- a/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java
+++ b/server/src/test/java/com/vaadin/ui/RadioButtonGroupTest.java
@@ -42,7 +42,7 @@ public class RadioButtonGroupTest {
public void apiSelectionChange_notUserOriginated() {
AtomicInteger listenerCount = new AtomicInteger(0);
- radioButtonGroup.addSelectionChangeListener(event -> {
+ radioButtonGroup.addSelectionListener(event -> {
listenerCount.incrementAndGet();
Assert.assertFalse(event.isUserOriginated());
});
@@ -60,7 +60,7 @@ public class RadioButtonGroupTest {
public void rpcSelectionChange_userOriginated() {
AtomicInteger listenerCount = new AtomicInteger(0);
- radioButtonGroup.addSelectionChangeListener(event -> {
+ radioButtonGroup.addSelectionListener(event -> {
listenerCount.incrementAndGet();
Assert.assertTrue(event.isUserOriginated());
});