diff options
3 files changed, 79 insertions, 4 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java b/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java index c61b7efc3c..ffda0166e3 100644 --- a/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java +++ b/client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java @@ -41,8 +41,8 @@ import elemental.json.JsonObject; * @since 8.0 */ @Connect(com.vaadin.ui.NativeSelect.class) -public class NativeSelectConnector extends - AbstractListingConnector<SelectionModel.Single<?>> { +public class NativeSelectConnector + extends AbstractListingConnector<SelectionModel.Single<?>> { private HandlerRegistration selectionChangeRegistration; private Registration dataChangeRegistration; @@ -75,8 +75,8 @@ public class NativeSelectConnector extends if (dataChangeRegistration != null) { dataChangeRegistration.remove(); } - dataChangeRegistration = dataSource.addDataChangeHandler( - this::onDataChange); + dataChangeRegistration = dataSource + .addDataChangeHandler(this::onDataChange); super.setDataSource(dataSource); } @@ -130,5 +130,6 @@ public class NativeSelectConnector extends // Remove extra items if the new dataset is smaller than the old select.removeItem(i); } + updateSelectedItem(); } } diff --git a/uitest/src/main/java/com/vaadin/tests/components/nativeselect/NativeSelectInit.java b/uitest/src/main/java/com/vaadin/tests/components/nativeselect/NativeSelectInit.java new file mode 100644 index 0000000000..44e7027191 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/nativeselect/NativeSelectInit.java @@ -0,0 +1,36 @@ +/* + * 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.nativeselect; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.NativeSelect; + +/** + * @author Vaadin Ltd + * + */ +public class NativeSelectInit extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + NativeSelect<String> select = new NativeSelect<>(); + select.setItems("Foo", "Bar"); + select.select("Bar"); + addComponent(select); + } + +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectInitTest.java b/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectInitTest.java new file mode 100644 index 0000000000..6bbda95e1e --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectInitTest.java @@ -0,0 +1,38 @@ +/* + * 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.nativeselect; + +import org.junit.Assert; +import org.junit.Test; + +import com.vaadin.testbench.customelements.NativeSelectElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * @author Vaadin Ltd + * + */ +public class NativeSelectInitTest extends MultiBrowserTest { + + @Test + public void secondItemIsSelected() { + openTestURL(); + + String selected = $(NativeSelectElement.class).first().getValue(); + Assert.assertEquals("Bar", selected); + } + +} |