summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2016-01-17 19:15:48 +0200
committerVaadin Code Review <review@vaadin.com>2016-01-18 09:26:35 +0000
commit8e255bd65e087cddc4ab27d9ffdfc1617a6d79a6 (patch)
tree329870d18b3e781e84ba6e2511d249dff08b8d19 /uitest
parentaa5e54685d681db112e7b35407b646e26549bfe9 (diff)
downloadvaadin-framework-8e255bd65e087cddc4ab27d9ffdfc1617a6d79a6.tar.gz
vaadin-framework-8e255bd65e087cddc4ab27d9ffdfc1617a6d79a6.zip
Test for selection after container reset (#19469, #19465)
Change-Id: I04ba09bd8396ac46f5df160d982c613961fd43bf
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridReplaceContainer.java94
-rw-r--r--uitest/src/com/vaadin/tests/components/grid/GridReplaceContainerTest.java39
2 files changed, 133 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainer.java b/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainer.java
new file mode 100644
index 0000000000..e81733cb86
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainer.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2000-2014 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.grid;
+
+import com.vaadin.data.Container.Indexed;
+import com.vaadin.data.util.BeanItemContainer;
+import com.vaadin.event.SelectionEvent;
+import com.vaadin.event.SelectionEvent.SelectionListener;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUIWithLog;
+import com.vaadin.ui.Button;
+import com.vaadin.ui.Button.ClickEvent;
+import com.vaadin.ui.Grid;
+import com.vaadin.ui.Grid.SelectionMode;
+
+public class GridReplaceContainer extends AbstractTestUIWithLog {
+
+ @Override
+ protected void setup(VaadinRequest request) {
+ final Grid grid = new Grid();
+ grid.setSelectionMode(SelectionMode.SINGLE);
+ grid.setContainerDataSource(createContainer());
+ grid.addSelectionListener(new SelectionListener() {
+
+ @Override
+ public void select(SelectionEvent event) {
+ Bean selected = (Bean) grid.getSelectedRow();
+ if (selected != null) {
+ log("Now selected: " + selected.getData());
+ } else {
+ log("Now selected: null");
+ }
+
+ }
+ });
+ addComponent(grid);
+ Button b = new Button("Re-set data source", new Button.ClickListener() {
+
+ @Override
+ public void buttonClick(ClickEvent event) {
+ grid.setContainerDataSource(createContainer());
+ }
+ });
+ addComponent(b);
+ }
+
+ public static class Bean {
+ private int id;
+ private String data;
+
+ public Bean(int id, String data) {
+ this.id = id;
+ this.data = data;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
+ }
+
+ private Indexed createContainer() {
+ BeanItemContainer<Bean> bic = new BeanItemContainer<Bean>(Bean.class);
+ bic.addBean(new Bean(1, "First item"));
+ bic.addBean(new Bean(2, "Second item"));
+ bic.addBean(new Bean(3, "Third item"));
+ return bic;
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainerTest.java b/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainerTest.java
new file mode 100644
index 0000000000..cf20ac87b5
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/components/grid/GridReplaceContainerTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2000-2014 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.grid;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+
+public class GridReplaceContainerTest extends SingleBrowserTest {
+
+ @Test
+ public void selectAfterContainerChange() {
+ openTestURL();
+ GridElement grid = $(GridElement.class).first();
+ grid.getCell(0, 0).click();
+ Assert.assertTrue(grid.getRow(0).isSelected());
+
+ $(ButtonElement.class).first().click();
+ Assert.assertFalse(grid.getRow(0).isSelected());
+ grid.getCell(0, 0).click();
+ Assert.assertTrue(grid.getRow(0).isSelected());
+ }
+}