diff options
author | Artur Signell <artur@vaadin.com> | 2016-01-17 19:15:48 +0200 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2016-01-18 09:26:35 +0000 |
commit | 8e255bd65e087cddc4ab27d9ffdfc1617a6d79a6 (patch) | |
tree | 329870d18b3e781e84ba6e2511d249dff08b8d19 /uitest | |
parent | aa5e54685d681db112e7b35407b646e26549bfe9 (diff) | |
download | vaadin-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.java | 94 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/grid/GridReplaceContainerTest.java | 39 |
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()); + } +} |