diff options
author | Artur Signell <artur@vaadin.com> | 2014-04-23 20:53:03 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2014-04-23 20:53:03 +0300 |
commit | af3b9c6075e365cde8d87b7e7bf46f7c3697086d (patch) | |
tree | 8b2bff2eaa93e2492dda72b4e155f07c85192850 /uitest/src/com/vaadin | |
parent | e2db3e777a587a383f287fab7979cb065821bb5e (diff) | |
parent | 9fa230d416a74206a57b215ebf1e884e87d11f3e (diff) | |
download | vaadin-framework-af3b9c6075e365cde8d87b7e7bf46f7c3697086d.tar.gz vaadin-framework-af3b9c6075e365cde8d87b7e7bf46f7c3697086d.zip |
Merge changes from origin/7.1
9c29442 Replace SelectionRangeDragging TB2 test with TB3 test
9fa230d Avoid eagerly layouting from VScrollTable.updateFromUIDL (#13188)
Change-Id: I4f1395a13e8b1eae44a0030a3679475a3db9160a
Diffstat (limited to 'uitest/src/com/vaadin')
4 files changed, 288 insertions, 52 deletions
diff --git a/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java b/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java new file mode 100644 index 0000000000..db4ed9dcb5 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/CtrlShiftMultiselectTest.java @@ -0,0 +1,78 @@ +/* + * Copyright 2000-2013 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.io.IOException; +import java.util.List; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Keys; +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 CtrlShiftMultiselectTest extends MultiBrowserTest { + + @Override + public List<DesiredCapabilities> getBrowsersToTest() { + List<DesiredCapabilities> browsers = super.getBrowsersToTest(); + browsers.remove(Browser.FIREFOX.getDesiredCapabilities()); + + return browsers; + } + + @Override + protected DesiredCapabilities getDesiredCapabilities() { + DesiredCapabilities cap = new DesiredCapabilities( + super.getDesiredCapabilities()); + cap.setCapability("requireWindowFocus", true); + return cap; + } + + @Test + public void testSelectionRangeDragging() throws IOException { + openTestURL(); + clickRow(3); + new Actions(driver).keyDown(Keys.SHIFT).perform(); + clickRow(8); + new Actions(driver).keyUp(Keys.SHIFT).perform(); + dragRows(5, 700, 0); + compareScreen("draggedMultipleRows"); + new Actions(driver).release().perform(); + } + + private void clickRow(int index) { + List<WebElement> rows = getAllRows(); + rows.get(index).click(); + } + + private void dragRows(int dragIdx, int xOffset, int yOffset) { + List<WebElement> rows = getAllRows(); + new Actions(driver).moveToElement(rows.get(dragIdx)).clickAndHold() + .moveByOffset(5, 0).perform(); + new Actions(driver).moveByOffset(xOffset - 5, yOffset).perform(); + + } + + private List<WebElement> getAllRows() { + WebElement table = vaadinElement("/VVerticalLayout[0]/VVerticalLayout[0]/VScrollTable[0]"); + return table.findElements(By.cssSelector(".v-table-table tr")); + + } +} diff --git a/uitest/src/com/vaadin/tests/components/table/SelectionRangeDragging.html b/uitest/src/com/vaadin/tests/components/table/SelectionRangeDragging.html deleted file mode 100644 index 1e911699d1..0000000000 --- a/uitest/src/com/vaadin/tests/components/table/SelectionRangeDragging.html +++ /dev/null @@ -1,52 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> -<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> -<head profile="http://selenium-ide.openqa.org/profiles/test-case"> -<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> -<link rel="selenium.base" href="" /> -<title>New Test</title> -</head> -<body> -<table cellpadding="1" cellspacing="1" border="1"> -<thead> -<tr><td rowspan="1" colspan="3">New Test</td></tr> -</thead><tbody> -<tr> - <td>open</td> - <td>/run/com.vaadin.tests.components.table.CtrlShiftMultiselect?restartApplication</td> - <td></td> -</tr> -<tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestscomponentstableCtrlShiftMultiselect::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[5]/domChild[1]/domChild[0]</td> - <td>112,12</td> -</tr> -<tr> - <td>mouseClick</td> - <td>vaadin=runcomvaadintestscomponentstableCtrlShiftMultiselect::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[10]/domChild[1]/domChild[0]</td> - <td>82,16:shift</td> -</tr> -<tr> - <td>drag</td> - <td>vaadin=runcomvaadintestscomponentstableCtrlShiftMultiselect::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/ChildComponentContainer[0]/VScrollTable[0]/domChild[1]/domChild[0]/domChild[1]/domChild[0]/domChild[8]/domChild[1]/domChild[0]</td> - <td>87,1</td> -</tr> -<tr> - <td>mouseMoveAt</td> - <td>vaadin=runcomvaadintestscomponentstableCtrlShiftMultiselect::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[0]</td> - <td>700,210</td> -</tr> -<tr> - <td>screenCapture</td> - <td></td> - <td>multiple-rows-dragged</td> -</tr> -<tr> - <td>drop</td> - <td>vaadin=runcomvaadintestscomponentstableCtrlShiftMultiselect::/VVerticalLayout[0]/ChildComponentContainer[1]/VVerticalLayout[0]/domChild[0]/domChild[0]</td> - <td>700,210</td> -</tr> - -</tbody></table> -</body> -</html> diff --git a/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindow.java b/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindow.java new file mode 100644 index 0000000000..44239ba649 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindow.java @@ -0,0 +1,135 @@ +/* + * Copyright 2000-2013 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.window; + +import com.vaadin.data.Item; +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.Button.ClickListener; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.TreeTable; +import com.vaadin.ui.UI; +import com.vaadin.ui.Window; + +@SuppressWarnings("serial") +public class CloseModalSubWindow extends AbstractTestUIWithLog { + + public static final String SUB_WINDOW = "sub-win"; + public static final String TREE_TABLE = "treetable"; + public static final String DELETE_BUTTON = "del-btn"; + public static final String CONFIRM_BUTTON = "confirm-btn"; + + private ConfirmWindow win; + + private TreeTable table; + + @Override + protected String getTestDescription() { + return "Lists a dozen items in a TreeTable with a Delete Button in each row. " + + "Delete button will open an sub-window allowing user to either confirm delete operation or cancel. " + + "Confirming should close the sub-window at the same time as the item is removed from the TreeTable."; + } + + @Override + protected Integer getTicketNumber() { + return 13188; + } + + @SuppressWarnings("unchecked") + @Override + protected void setup(VaadinRequest request) { + table = new TreeTable(); + table.setId(TREE_TABLE); + table.addContainerProperty("column", String.class, null); + table.addContainerProperty("delete", Button.class, null); + + for (int i = 0; i < 10; i++) { + Item item = table.addItem(i); + item.getItemProperty("column").setValue("" + i); + + Button b = new Button("Delete", deleteClickListener); + b.setId(DELETE_BUTTON + i); + b.setData(i); + item.getItemProperty("delete").setValue(b); + } + + table.setSortEnabled(false); + table.setColumnReorderingAllowed(false); + table.setEditable(true); + table.setPageLength(0); + + addComponent(table); + + } + + private void deleteItem(Object itemId) { + table.removeItem(itemId); + } + + private ClickListener deleteClickListener = new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + win = new ConfirmWindow(event.getButton().getData()); + log("Modal sub-window opened"); + } + }; + + private ClickListener confirmClickListener = new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + deleteItem(event.getButton().getData()); + win.close(); + log("Modal sub-window closed"); + } + }; + + private ClickListener cancelClickListener = new ClickListener() { + + @Override + public void buttonClick(ClickEvent event) { + win.close(); + log("Modal sub-window closed"); + } + }; + + /** Modal confirmation sub-window. */ + class ConfirmWindow extends Window { + + public ConfirmWindow(Object itemId) { + setModal(true); + setWidth("300px"); + setHeight("200px"); + setId(SUB_WINDOW); + + Button ok = new Button("Confirm Delete", confirmClickListener); + ok.setId(CONFIRM_BUTTON); + ok.setData(itemId); + Button cancel = new Button("Cancel", cancelClickListener); + + HorizontalLayout l = new HorizontalLayout(); + l.addComponent(ok); + l.addComponent(cancel); + + setContent(l); + + UI.getCurrent().addWindow(this); + } + } +} diff --git a/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindowTest.java b/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindowTest.java new file mode 100644 index 0000000000..6c50c01277 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/window/CloseModalSubWindowTest.java @@ -0,0 +1,75 @@ +/* + * Copyright 2000-2013 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.window; + +import java.util.List; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.WebElement; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class CloseModalSubWindowTest extends MultiBrowserTest { + + @Test + public void testCloseModalSubWindow() throws Exception { + + openTestURL(); + + // assert that there's a button with a 'del-btn0' id + List<WebElement> buttons = getDriver().findElements( + By.id(CloseModalSubWindow.DELETE_BUTTON + "0")); + int deleteButtonCount = buttons.size(); + Assert.assertEquals(1, deleteButtonCount); + + // assert that there's no sub-windows open + List<WebElement> subWindows = getDriver().findElements( + By.id(CloseModalSubWindow.SUB_WINDOW)); + Assert.assertEquals(0, subWindows.size()); + + // click the first delete button + getFirstDeteleButton(0).click(); + + // assert that there's ONE sub-window open + subWindows = getDriver().findElements( + By.id(CloseModalSubWindow.SUB_WINDOW)); + Assert.assertEquals(1, subWindows.size()); + + WebElement confirm = getDriver().findElement( + By.id(CloseModalSubWindow.CONFIRM_BUTTON)); + + // click the confirm button in the sub-window + confirm.click(); + + // assert that there's no sub-windows open + subWindows = getDriver().findElements( + By.id(CloseModalSubWindow.SUB_WINDOW)); + Assert.assertEquals(0, subWindows.size()); + + // assert that there's no button with 'del-btn0' id anymore + buttons = getDriver().findElements( + By.id(CloseModalSubWindow.DELETE_BUTTON + "0")); + Assert.assertEquals(0, buttons.size()); + } + + private WebElement getFirstDeteleButton(int index) { + WebElement button = getDriver().findElement( + By.id(CloseModalSubWindow.DELETE_BUTTON + index)); + return button; + } +} |