diff options
Diffstat (limited to 'server/src/test/java')
-rw-r--r-- | server/src/test/java/com/vaadin/data/BinderTest.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/server/src/test/java/com/vaadin/data/BinderTest.java b/server/src/test/java/com/vaadin/data/BinderTest.java index 5988061cd5..abbbe541ae 100644 --- a/server/src/test/java/com/vaadin/data/BinderTest.java +++ b/server/src/test/java/com/vaadin/data/BinderTest.java @@ -812,6 +812,25 @@ public class BinderTest extends BinderTestBase<Binder<Person>, Person> { } @Test + public void remove_binding_fromFieldValueChangeListener() { + // Add listener before bind to make sure it will be executed first. + nameField.addValueChangeListener(e -> { + if (e.getValue() == "REMOVE") { + binder.removeBinding(nameField); + } + }); + + binder.bind(nameField, Person::getFirstName, Person::setFirstName); + + binder.setBean(item); + + nameField.setValue("REMOVE"); + + // Removed binding should not update bean. + assertNotEquals("REMOVE", item.getFirstName()); + } + + @Test public void beanvalidation_two_fields_not_equal() { TextField lastNameField = new TextField(); setBeanValidationFirstNameNotEqualsLastName(nameField, lastNameField); |