aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/main/java/com/vaadin/client/ui/nativeselect/NativeSelectConnector.java9
-rw-r--r--uitest/src/main/java/com/vaadin/tests/components/nativeselect/NativeSelectInit.java36
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/nativeselect/NativeSelectInitTest.java38
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);
+ }
+
+}