diff options
Diffstat (limited to 'uitest/src')
6 files changed, 368 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetails.java b/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetails.java new file mode 100644 index 0000000000..f96a04c5a3 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetails.java @@ -0,0 +1,47 @@ +/* + * 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.calendar; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.table.DndTableTargetDetails; +import com.vaadin.ui.Calendar; + +/** + * Test UI for calendar as a drop target: CalendarTargetDetails should provide + * getMouseEvent() method. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndCalendarTargetDetails extends DndTableTargetDetails { + + @Override + protected void setup(VaadinRequest request) { + createSourceTable(); + + Calendar calendar = new Calendar(); + calendar.addStyleName("target"); + calendar.setDropHandler(new TestDropHandler()); + calendar.setWidth(100, Unit.PERCENTAGE); + addComponent(calendar); + } + + @Override + protected String getTestDescription() { + return "Mouse details should be available for CalendarTargetDetails DnD when calendar is a target"; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetailsTest.java b/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetailsTest.java new file mode 100644 index 0000000000..19413e678f --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/calendar/DndCalendarTargetDetailsTest.java @@ -0,0 +1,37 @@ +/* + * 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.calendar; + +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.By; +import com.vaadin.tests.components.table.DndTableTargetDetailsTest; + +/** + * Test for mouse details in CalendarTargetDetails class when DnD target is a + * calendar. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndCalendarTargetDetailsTest extends DndTableTargetDetailsTest { + + @Override + protected WebElement getTarget() { + return driver.findElement(By.className("v-datecellslot-even")); + } + +} diff --git a/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetails.java b/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetails.java new file mode 100644 index 0000000000..cdac8d1da0 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetails.java @@ -0,0 +1,129 @@ +/* + * 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 com.vaadin.data.util.BeanItemContainer; +import com.vaadin.event.dd.DragAndDropEvent; +import com.vaadin.event.dd.DropHandler; +import com.vaadin.event.dd.TargetDetailsImpl; +import com.vaadin.event.dd.acceptcriteria.AcceptAll; +import com.vaadin.event.dd.acceptcriteria.AcceptCriterion; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.MouseEventDetails; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Label; +import com.vaadin.ui.Table; +import com.vaadin.ui.Table.TableDragMode; +import com.vaadin.ui.VerticalLayout; + +/** + * Test UI for table as a drop target: AbstractSelectTargetDetails should + * provide getMouseEvent() method. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndTableTargetDetails extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + createSourceTable(); + + Table target = new Table(); + BeanItemContainer<TestBean> container = new BeanItemContainer<TestBean>( + TestBean.class); + container.addBean(new TestBean("target-item")); + target.setContainerDataSource(container); + target.setPageLength(1); + target.addStyleName("target"); + target.setWidth(100, Unit.PERCENTAGE); + target.setDropHandler(new TestDropHandler()); + addComponent(target); + } + + protected void createSourceTable() { + Table table = new Table(); + table.setPageLength(1); + table.setDragMode(TableDragMode.ROW); + table.setWidth(100, Unit.PERCENTAGE); + BeanItemContainer<TestBean> container = new BeanItemContainer<TestBean>( + TestBean.class); + container.addBean(new TestBean("item")); + table.setContainerDataSource(container); + addComponent(table); + } + + @Override + protected String getTestDescription() { + return "Mouse details should be available for AbstractSelectTargetDetails DnD when table is a target"; + } + + @Override + protected Integer getTicketNumber() { + return 13416; + } + + protected static class TestDropHandler implements DropHandler { + + public TestDropHandler() { + } + + @Override + public void drop(DragAndDropEvent event) { + TargetDetailsImpl details = (TargetDetailsImpl) event + .getTargetDetails(); + MouseEventDetails mouseDetails = details.getMouseEvent(); + + VerticalLayout layout = (VerticalLayout) details.getTarget() + .getUI().getContent(); + + Label name = new Label("Button name=" + + mouseDetails.getButtonName()); + name.addStyleName("dnd-button-name"); + layout.addComponent(name); + if (mouseDetails.isCtrlKey()) { + name.addStyleName("ctrl"); + } + if (mouseDetails.isAltKey()) { + name.addStyleName("alt"); + } + if (mouseDetails.isShiftKey()) { + name.addStyleName("shift"); + } + + layout.addComponent(name); + } + + @Override + public AcceptCriterion getAcceptCriterion() { + return AcceptAll.get(); + } + + } + + public static class TestBean { + private String name; + + public TestBean(String name) { + this.name = name; + } + + public String getName() { + return name; + } + } + +} diff --git a/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetailsTest.java b/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetailsTest.java new file mode 100644 index 0000000000..36b2a82688 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/table/DndTableTargetDetailsTest.java @@ -0,0 +1,70 @@ +/* + * 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 org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.Keys; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import com.vaadin.testbench.By; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * Test for mouse details in AbstractSelectTargetDetails class when DnD target + * is a table. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndTableTargetDetailsTest extends MultiBrowserTest { + + @Test + public void testMouseDetails() throws IOException, InterruptedException { + openTestURL(); + + WebElement row = driver.findElement(By + .className("v-table-cell-wrapper")); + + Actions actions = new Actions(driver); + actions.moveToElement(row); + pressKeys(actions); + actions.clickAndHold(); + actions.release(getTarget()); + actions.build().perform(); + + WebElement label = driver.findElement(By.className("dnd-button-name")); + Assert.assertEquals("Button name=left", label.getText()); + checkPressedKeys(); + } + + protected WebElement getTarget() { + return driver.findElement(By.className("target")).findElement( + By.className("v-table-row-spacer")); + } + + protected void pressKeys(Actions actions) { + actions.keyDown(Keys.CONTROL); + } + + protected void checkPressedKeys() { + Assert.assertTrue(isElementPresent(By.className("ctrl"))); + } + +} diff --git a/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetails.java b/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetails.java new file mode 100644 index 0000000000..853e6fe35e --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetails.java @@ -0,0 +1,48 @@ +/* + * 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.tree; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.table.DndTableTargetDetails; +import com.vaadin.ui.Tree; + +/** + * Test UI for tree as a drop target: AbstractSelectTargetDetails should provide + * getMouseEvent() method. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndTreeTargetDetails extends DndTableTargetDetails { + + @Override + protected void setup(VaadinRequest request) { + createSourceTable(); + + Tree target = new Tree(); + target.addStyleName("target"); + target.setWidth(100, Unit.PERCENTAGE); + target.addItem("treeItem"); + target.setDropHandler(new TestDropHandler()); + addComponent(target); + } + + @Override + protected String getTestDescription() { + return "Mouse details should be available for AbstractSelectTargetDetails DnD when tree is a target"; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetailsTest.java b/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetailsTest.java new file mode 100644 index 0000000000..384034b70f --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/tree/DndTreeTargetDetailsTest.java @@ -0,0 +1,37 @@ +/* + * 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.tree; + +import org.openqa.selenium.WebElement; + +import com.vaadin.testbench.By; +import com.vaadin.tests.components.table.DndTableTargetDetailsTest; + +/** + * Test for mouse details in AbstractSelectTargetDetails class when DnD target + * is a tree. + * + * @since 7.3 + * @author Vaadin Ltd + */ +public class DndTreeTargetDetailsTest extends DndTableTargetDetailsTest { + + @Override + protected WebElement getTarget() { + return driver.findElement(By.className("target")); + } + +} |