diff options
author | Juho Nurminen <juho@vaadin.com> | 2014-05-14 14:14:43 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-05-16 07:56:01 +0000 |
commit | f453676e7318e19abae2ba3e23cd18ef8eb53b4e (patch) | |
tree | 8f7efc5b29fcda9b1d291cfa51d0c50c98894341 /uitest | |
parent | d67022303ae9e4d3448012a07572f1bf3c71f46c (diff) | |
download | vaadin-framework-f453676e7318e19abae2ba3e23cd18ef8eb53b4e.tar.gz vaadin-framework-f453676e7318e19abae2ba3e23cd18ef8eb53b4e.zip |
Made user-initiated column resizing take precedence over other updates (#13432)
VScrollTable ignores server-initiated changes to column size while the user is
dragging a table resizer element.
Change-Id: I2866246e7975a8ddddbfdc12a9d99fb2c813a870
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/TableWithPolling.java | 60 | ||||
-rw-r--r-- | uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java | 65 |
2 files changed, 125 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/table/TableWithPolling.java b/uitest/src/com/vaadin/tests/components/table/TableWithPolling.java new file mode 100644 index 0000000000..fdd5c2901a --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableWithPolling.java @@ -0,0 +1,60 @@ +/* + * 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.table; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Table; + +public class TableWithPolling extends AbstractTestUI { + + @Override + protected String getTestDescription() { + return "Polling shouldn't affect table column resizing in any way."; + } + + @Override + protected Integer getTicketNumber() { + return 13432; + } + + @Override + protected void setup(VaadinRequest request) { + + Table table = new Table("This is my Table"); + + table.addContainerProperty("First Name", String.class, null); + table.addContainerProperty("Last Name", String.class, null); + table.addContainerProperty("Year", Integer.class, null); + + table.addItem(new Object[] { "Nicolaus", "Copernicus", + new Integer(1473) }, new Integer(1)); + table.addItem(new Object[] { "Tycho", "Brahe", new Integer(1546) }, + new Integer(2)); + table.addItem(new Object[] { "Giordano", "Bruno", new Integer(1548) }, + new Integer(3)); + table.addItem(new Object[] { "Galileo", "Galilei", new Integer(1564) }, + new Integer(4)); + table.addItem(new Object[] { "Johannes", "Kepler", new Integer(1571) }, + new Integer(5)); + table.addItem(new Object[] { "Isaac", "Newton", new Integer(1643) }, + new Integer(6)); + + addComponent(table); + + setPollInterval(1000); + } +} diff --git a/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java b/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java new file mode 100644 index 0000000000..6aae1e27fc --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/TableWithPollingTest.java @@ -0,0 +1,65 @@ +/* + * 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.table; + +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.remote.DesiredCapabilities; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class TableWithPollingTest extends MultiBrowserTest { + + @Test + public void testColumnResizing() throws Exception { + openTestURL(); + + WebElement headerCell = driver.findElement(By + .xpath("(//td[contains(@class, 'v-table-header-cell')])[1]")); + WebElement bodyCell = driver.findElement(By + .xpath("(//td[contains(@class, 'v-table-cell-content')])[1]")); + WebElement resizer = driver.findElement(By + .xpath("(//div[contains(@class, 'v-table-resizer')])[1]")); + + final int offset = 50; + final int headerCellWidth = headerCell.getSize().width; + final int bodyCellWidth = bodyCell.getSize().width; + + new Actions(driver).clickAndHold(resizer).moveByOffset(offset, 0) + .perform(); + sleep(2000); + new Actions(driver).release().perform(); + + Assert.assertEquals(headerCellWidth + offset, + headerCell.getSize().width); + Assert.assertEquals(bodyCellWidth + offset, bodyCell.getSize().width); + } + + @Override + public List<DesiredCapabilities> getBrowsersToTest() { + // Selenium has issues with drag-and-drop on IE8 making it impossible to + // drag a target as small as the table resizer. So we'll just have to + // ignore IE8 completely. + List<DesiredCapabilities> browsers = super.getBrowsersToTest(); + browsers.remove(Browser.IE8.getDesiredCapabilities()); + return browsers; + } +} |