diff options
author | Leif Åstrand <leif@vaadin.com> | 2016-11-22 09:33:11 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2016-11-29 10:18:54 +0000 |
commit | 0d57c15577f5d5e15453024ce90144120948eae9 (patch) | |
tree | 2c15be36daeaf87e379ac73101a2c631888a9496 /uitest | |
parent | f2d8f812efa067b4baa7e27c0ea76f7596b291e6 (diff) | |
download | vaadin-framework-0d57c15577f5d5e15453024ce90144120948eae9.tar.gz vaadin-framework-0d57c15577f5d5e15453024ce90144120948eae9.zip |
Make it possible to reset single select values
Change-Id: I60c5d9f183d1955fbbd3341e3ac9f93aae755f80
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValue.java | 52 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValueTest.java | 59 |
2 files changed, 111 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValue.java b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValue.java new file mode 100644 index 0000000000..c957cc0673 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValue.java @@ -0,0 +1,52 @@ +/* + * Copyright 2000-2016 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.combobox; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.ComboBox; + +public class ComboBoxAutoresetValue extends AbstractTestUIWithLog { + + public static final String RESET = "Reset"; + public static final String CHANGE = "Change to something else"; + public static final String SOMETHING = "Something else"; + + @Override + protected void setup(VaadinRequest request) { + ComboBox<String> comboBox = new ComboBox<>(); + comboBox.setItems(RESET, CHANGE, SOMETHING); + comboBox.addValueChangeListener(e -> { + String value = e.getValue(); + log("Value changed to " + value); + + if (e.isUserOriginated()) { + if (RESET.equals(value)) { + e.getSource().setValue(null); + } else if (CHANGE.equals(value)) { + e.getSource().setValue(SOMETHING); + } + } + }); + addComponent(comboBox); + } + + @Override + public String getDescription() { + return "Changing the ComboBox value in its own value change listener should work"; + } + +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValueTest.java b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValueTest.java new file mode 100644 index 0000000000..b3a34b7edb --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxAutoresetValueTest.java @@ -0,0 +1,59 @@ +/* + * Copyright 2000-2016 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.combobox; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.testbench.customelements.ComboBoxElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +public class ComboBoxAutoresetValueTest extends SingleBrowserTest { + + @Test + public void testValueChanges() { + openTestURL(); + + ComboBoxElement comboBox = $(ComboBoxElement.class).first(); + + Assert.assertEquals("", comboBox.getValue()); + + comboBox.selectByText(ComboBoxAutoresetValue.RESET); + + assertLogChange(1, ComboBoxAutoresetValue.RESET, 1); + assertLogChange(2, null, 0); + Assert.assertEquals("", comboBox.getValue()); + + comboBox.selectByText(ComboBoxAutoresetValue.CHANGE); + assertLogChange(3, ComboBoxAutoresetValue.CHANGE, 1); + assertLogChange(4, ComboBoxAutoresetValue.SOMETHING, 0); + Assert.assertEquals(ComboBoxAutoresetValue.SOMETHING, + comboBox.getValue()); + + comboBox.selectByText(ComboBoxAutoresetValue.SOMETHING); + // No new log items + assertLogChange(4, ComboBoxAutoresetValue.SOMETHING, 0); + Assert.assertEquals(ComboBoxAutoresetValue.SOMETHING, + comboBox.getValue()); + } + + private void assertLogChange(int sequenceNumber, String expectedValue, + int rowIndex) { + Assert.assertEquals( + sequenceNumber + ". Value changed to " + expectedValue, + getLogRow(rowIndex)); + } +} |