diff options
author | Dmitrii Rogozin <dmitrii@vaadin.com> | 2014-06-24 15:29:40 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-07-02 14:59:08 +0000 |
commit | 90f66298c0c7179b22ebe4f78c95eba7fc432f4d (patch) | |
tree | 044f033bae6bda75ae7f37ec7be4e06d0539bf85 /uitest | |
parent | d8ac5d4b10609f2e6db2f29e9ce4bf00c5a1b301 (diff) | |
download | vaadin-framework-90f66298c0c7179b22ebe4f78c95eba7fc432f4d.tar.gz vaadin-framework-90f66298c0c7179b22ebe4f78c95eba7fc432f4d.zip |
Disabled shadow divs. Instead use css box-shadow (#13885)
Change-Id: Ibf8888de795b08aed0446607165d7318f94ee6f4
Diffstat (limited to 'uitest')
3 files changed, 130 insertions, 3 deletions
diff --git a/uitest/src/com/vaadin/tests/components/window/WindowMoveListenerTest.java b/uitest/src/com/vaadin/tests/components/window/WindowMoveListenerTest.java index a2b5e0f139..e067ada818 100644 --- a/uitest/src/com/vaadin/tests/components/window/WindowMoveListenerTest.java +++ b/uitest/src/com/vaadin/tests/components/window/WindowMoveListenerTest.java @@ -23,16 +23,15 @@ public class WindowMoveListenerTest extends MultiBrowserTest { // I'd loved to use the header, but that doesn't work. Footer works // fine, though :) - WebElement windowHeader = getDriver().findElement( + WebElement windowFooter = getDriver().findElement( By.className("v-window-footer")); final Point winPos = window.getLocation(); // move window - Action a = new Actions(driver).clickAndHold(windowHeader) + Action a = new Actions(driver).clickAndHold(windowFooter) .moveByOffset(100, 100).release().build(); a.perform(); - assertNotEquals("Window was not dragged correctly.", winPos.x, window.getLocation().x); assertNotEquals("Window was not dragged correctly.", winPos.y, diff --git a/uitest/src/com/vaadin/tests/components/window/WindowShadow.java b/uitest/src/com/vaadin/tests/components/window/WindowShadow.java new file mode 100644 index 0000000000..12e7899503 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/window/WindowShadow.java @@ -0,0 +1,59 @@ +/* + * 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.window; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.UI; +import com.vaadin.ui.Window; + +//Tests that invisible divs don't overlap windows and don't block mouse events +public class WindowShadow extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + Window wnd = createWindow(); + wnd.setId("topwindow"); + Window wnd2 = createWindow(); + wnd2.setId("botwindow"); + wnd.setPositionX(100); + wnd.setPositionY(100); + wnd2.setPositionX(100); + // Pick ycoord, that the top div of the Window overlaps with its footer + int yCoord = (int) (wnd.getPositionX() + wnd.getHeight() - 5); + wnd2.setPositionY(yCoord); + UI.getCurrent().addWindow(wnd); + UI.getCurrent().addWindow(wnd2); + } + + private Window createWindow() { + Window wnd = new Window(); + wnd.setHeight("200"); + wnd.setWidth("200"); + return wnd; + } + + @Override + protected String getTestDescription() { + return "Popup window has shadow div elemetns, which overlaps other elements and blocks mouse events"; + } + + @Override + protected Integer getTicketNumber() { + return 13885; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java b/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java new file mode 100644 index 0000000000..0bd6c9fa44 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/window/WindowShadowTest.java @@ -0,0 +1,69 @@ +/* + * 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.window; + +import java.awt.AWTException; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.Point; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.HasInputDevices; +import org.openqa.selenium.interactions.Mouse; +import org.openqa.selenium.interactions.internal.Coordinates; +import org.openqa.selenium.internal.Locatable; +import org.openqa.selenium.remote.DesiredCapabilities; + +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class WindowShadowTest extends MultiBrowserTest { + + @Test + public void dragBackgroundWindow() throws AWTException, IOException, + InterruptedException { + openTestURL(); + WebElement wnd = getDriver().findElement(By.id("topwindow")); + // There is some bug in Selenium. Can't move window using header + // need use footer instead. + WebElement wnd1Footer = wnd + .findElement(By.className("v-window-footer")); + Point startLoc = wnd.getLocation(); + Coordinates footerCoordinates = ((Locatable) wnd1Footer) + .getCoordinates(); + Mouse mouse = ((HasInputDevices) getDriver()).getMouse(); + mouse.mouseDown(footerCoordinates); + mouse.mouseMove(footerCoordinates, 200, 200); + mouse.mouseUp(footerCoordinates); + Point endLoc = wnd.getLocation(); + // don't compare to specific coordinate, because in IE9 and IE11 + // the window position is random. + // So, checkt that the window was moved + org.junit.Assert.assertNotEquals(startLoc, endLoc); + } + + // IE8 doesn't support shadow-box css rule + // ignore this browser in testing + @Override + public List<DesiredCapabilities> getBrowsersToTest() { + List<DesiredCapabilities> browsers = new ArrayList<DesiredCapabilities>( + getAllBrowsers()); + browsers.remove(Browser.IE8.getDesiredCapabilities()); + return browsers; + } +}
\ No newline at end of file |