Skip to content

Commit 7159823

Browse files
committed
test: add regression test for #26
Add tests for item created and item removed listeners. Close #46
1 parent 1302429 commit 7159823

File tree

3 files changed

+176
-13
lines changed

3 files changed

+176
-13
lines changed

src/test/java/com/flowingcode/vaadin/addons/chipfield/integration/IntegrationView.java

Lines changed: 73 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
* Licensed under the Apache License, Version 2.0 (the "License");
88
* you may not use this file except in compliance with the License.
99
* You may obtain a copy of the License at
10-
*
10+
*
1111
* http://www.apache.org/licenses/LICENSE-2.0
12-
*
12+
*
1313
* Unless required by applicable law or agreed to in writing, software
1414
* distributed under the License is distributed on an "AS IS" BASIS,
1515
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -19,24 +19,25 @@
1919
*/
2020
package com.flowingcode.vaadin.addons.chipfield.integration;
2121

22-
import java.lang.reflect.Method;
23-
import java.util.Arrays;
24-
import java.util.List;
25-
import java.util.Optional;
26-
2722
import com.flowingcode.vaadin.addons.chipfield.ChipField;
2823
import com.flowingcode.vaadin.addons.chipfield.integration.rpc.JsonArrayList;
2924
import com.vaadin.flow.component.ClientCallable;
3025
import com.vaadin.flow.component.html.Div;
3126
import com.vaadin.flow.router.Route;
32-
3327
import elemental.json.Json;
28+
import java.lang.reflect.Method;
29+
import java.util.Arrays;
30+
import java.util.List;
31+
import java.util.Optional;
3432

3533
@Route("it")
3634
public class IntegrationView extends Div implements IntegrationViewCallables {
3735

3836
public ChipField<String> field;
3937
private List<String> lastValueChange;
38+
private String lastClickedItem;
39+
private String lastRemovedItem;
40+
private String lastCreatedItem;
4041

4142
public IntegrationView() {
4243
setId("view");
@@ -59,11 +60,29 @@ public void allowAdditionalItems(boolean value) {
5960
}
6061

6162
@Override
62-
@ClientCallable
63+
@ClientCallable
64+
public void setClosable(boolean closable) {
65+
field.setClosable(closable);
66+
}
67+
68+
@Override
69+
@ClientCallable
70+
public boolean isClosable() {
71+
return field.isClosable();
72+
}
73+
74+
@Override
75+
@ClientCallable
6376
public void removeSelectedItem(String itemToRemove) {
6477
field.removeSelectedItem(itemToRemove);
6578
}
6679

80+
@Override
81+
@ClientCallable
82+
public void setAllowedPattern(String pattern) {
83+
field.setAllowedPattern(pattern);
84+
}
85+
6786
@Override
6887
@ClientCallable
6988
public void setFieldReadOnly(boolean value) {
@@ -79,6 +98,9 @@ public void setFieldEnabled(boolean value) {
7998
@Override
8099
@ClientCallable
81100
public void setValue(String... items) {
101+
lastClickedItem=null;
102+
lastRemovedItem=null;
103+
lastCreatedItem=null;
82104
field.setValue(Arrays.asList(items));
83105
}
84106

@@ -121,10 +143,52 @@ public void addValueChangeListener() {
121143
});
122144
}
123145

146+
@Override
147+
@ClientCallable
148+
public void addItemRemovedListener() {
149+
field.addChipRemovedListener(ev -> {
150+
lastRemovedItem = ev.getItem();
151+
});
152+
}
153+
154+
@Override
155+
@ClientCallable
156+
public void addItemClickedListener() {
157+
field.addChipClickedListener(ev -> {
158+
lastClickedItem = ev.getItem();
159+
});
160+
}
161+
162+
@Override
163+
@ClientCallable
164+
public void addItemCreatedListener() {
165+
field.addChipCreatedListener(ev -> {
166+
lastCreatedItem = ev.getItem();
167+
});
168+
}
169+
124170
@Override
125171
@ClientCallable
126172
public JsonArrayList<String> getLastValueChange() {
127173
return JsonArrayList.fromStringArray(lastValueChange);
128174
}
129175

176+
@Override
177+
@ClientCallable
178+
public String getLastClickedItem() {
179+
return lastClickedItem;
180+
}
181+
182+
@Override
183+
@ClientCallable
184+
public String getLastRemovedItem() {
185+
return lastRemovedItem;
186+
}
187+
188+
@Override
189+
@ClientCallable
190+
public String getLastCreatedItem() {
191+
return lastCreatedItem;
192+
}
193+
130194
}

src/test/java/com/flowingcode/vaadin/addons/chipfield/integration/IntegrationViewCallables.java

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
* Licensed under the Apache License, Version 2.0 (the "License");
88
* you may not use this file except in compliance with the License.
99
* You may obtain a copy of the License at
10-
*
10+
*
1111
* http://www.apache.org/licenses/LICENSE-2.0
12-
*
12+
*
1313
* Unless required by applicable law or agreed to in writing, software
1414
* distributed under the License is distributed on an "AS IS" BASIS,
1515
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -27,8 +27,20 @@ public interface IntegrationViewCallables {
2727

2828
void addValueChangeListener();
2929

30+
void addItemRemovedListener();
31+
32+
void addItemClickedListener();
33+
34+
void addItemCreatedListener();
35+
3036
JsonArrayList<String> getLastValueChange();
3137

38+
String getLastClickedItem();
39+
40+
String getLastRemovedItem();
41+
42+
String getLastCreatedItem();
43+
3244
void allowAdditionalItems(boolean value);
3345

3446
void setFieldReadOnly(boolean value);
@@ -41,6 +53,12 @@ public interface IntegrationViewCallables {
4153

4254
JsonArrayList<String> getValue();
4355

56+
void setClosable(boolean closable);
57+
58+
boolean isClosable();
59+
60+
void setAllowedPattern(String pattern);
61+
4462
void removeSelectedItem(String itemToRemove);
4563

4664
boolean hasItemWithLabel(String label);

src/test/java/com/flowingcode/vaadin/addons/chipfield/integration/ViewIT.java

Lines changed: 83 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,16 @@
2222
import static org.hamcrest.MatcherAssert.assertThat;
2323
import static org.junit.Assert.assertThrows;
2424
import static org.junit.Assert.assertTrue;
25-
2625
import java.util.Arrays;
2726
import java.util.Collection;
28-
2927
import org.hamcrest.Matcher;
3028
import org.hamcrest.Matchers;
29+
import org.junit.FixMethodOrder;
3130
import org.junit.Test;
31+
import org.junit.runners.MethodSorters;
3232
import org.openqa.selenium.Keys;
3333

34+
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
3435
public class ViewIT extends AbstractChipfieldTest {
3536

3637
private static final String LOREM = "Lorem";
@@ -126,6 +127,81 @@ public void testAdditionalItemDisabled() {
126127
assertThat($server.getValue(), Matchers.empty());
127128
}
128129

130+
@Test
131+
public void testItemCreatedListenerFromClient() {
132+
$server.addItemCreatedListener();
133+
134+
chipfield.selectByText(LOREM);
135+
assertThat($server.getLastCreatedItem(), Matchers.is(LOREM));
136+
}
137+
138+
@Test
139+
public void testItemCreatedListenerFromServer() {
140+
$server.addItemCreatedListener();
141+
142+
$server.setValue(IPSUM);
143+
assertThat($server.getLastCreatedItem(), Matchers.is(IPSUM));
144+
}
145+
146+
@Test
147+
public void testAdditionalItemCreatedListenerFromClient() {
148+
$server.allowAdditionalItems(true);
149+
$server.useNewItemHandler(true);
150+
$server.addItemCreatedListener();
151+
152+
chipfield.sendKeys(ADDITIONAL, Keys.ENTER);
153+
assertThat($server.getLastCreatedItem(), Matchers.is(ADDITIONAL));
154+
}
155+
156+
@Test
157+
public void testAdditionalItemCreatedListenerFromServer() {
158+
$server.allowAdditionalItems(true);
159+
$server.useNewItemHandler(true);
160+
$server.addItemCreatedListener();
161+
162+
$server.setValue(ADDITIONAL);
163+
assertThat($server.getLastCreatedItem(), Matchers.is(ADDITIONAL));
164+
}
165+
166+
@Test
167+
public void testItemRemovedListenerFromClient() {
168+
$server.addItemRemovedListener();
169+
170+
$server.setValue(LOREM);
171+
chipfield.sendKeys(Keys.BACK_SPACE);
172+
assertThat($server.getLastRemovedItem(), Matchers.is(LOREM));
173+
}
174+
175+
@Test
176+
public void testItemRemovedListenerFromServer() {
177+
$server.addItemRemovedListener();
178+
179+
$server.setValue(LOREM);
180+
$server.setValue();
181+
assertThat($server.getLastRemovedItem(), Matchers.is(LOREM));
182+
}
183+
184+
@Test
185+
public void testAdditionalItemRemovedListenerFromClient() {
186+
$server.allowAdditionalItems(true);
187+
$server.useNewItemHandler(true);
188+
$server.addItemRemovedListener();
189+
190+
$server.setValue(ADDITIONAL);
191+
chipfield.sendKeys(Keys.BACK_SPACE);
192+
assertThat($server.getLastRemovedItem(), Matchers.is(ADDITIONAL));
193+
}
194+
195+
@Test
196+
public void testAdditionalItemRemovedListenerFromServer() {
197+
$server.allowAdditionalItems(true);
198+
$server.useNewItemHandler(true);
199+
$server.addItemRemovedListener();
200+
201+
$server.setValue(ADDITIONAL);
202+
$server.setValue();
203+
assertThat($server.getLastRemovedItem(), Matchers.is(ADDITIONAL));
204+
}
129205
/**
130206
* Test that readonly does not allow deleting chips
131207
*
@@ -170,6 +246,11 @@ public void testSetValue() {
170246
$server.setValue(IPSUM, LOREM);
171247
assertThat(chipfield.getValue(), isEqualTo(IPSUM, LOREM));
172248
assertThat($server.getValue(), isEqualTo(IPSUM, LOREM));
249+
250+
$server.allowAdditionalItems(true);
251+
$server.setValue(ADDITIONAL);
252+
assertThat(chipfield.getValue(), isEqualTo(ADDITIONAL));
253+
assertThat($server.getValue(), isEqualTo(ADDITIONAL));
173254
}
174255

175256
/**

0 commit comments

Comments
 (0)