Change-Id: I27c0a236d4dd654c1cf8d567752af9d1ea3c1de5tags/7.3.0.rc1
@@ -1,95 +0,0 @@ | |||
/* | |||
* 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 static org.junit.Assert.assertEquals; | |||
import org.junit.Test; | |||
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 com.vaadin.testbench.By; | |||
import com.vaadin.tests.tb3.MultiBrowserTest; | |||
/** | |||
* | |||
* @since | |||
* @author Vaadin Ltd | |||
*/ | |||
public class TooltipInWindowTest extends MultiBrowserTest { | |||
@Test | |||
public void testTooltipsInSubWindow() throws InterruptedException { | |||
openTestURL(); | |||
WebElement textfield = vaadinElementById("tf1"); | |||
Coordinates textfieldCoordinates = ((Locatable) textfield) | |||
.getCoordinates(); | |||
Mouse mouse = ((HasInputDevices) getDriver()).getMouse(); | |||
// Show tooltip | |||
mouse.mouseMove(textfieldCoordinates, 10, 10); | |||
sleep(100); | |||
ensureVisibleTooltipPositionedCorrectly(); | |||
assertEquals("My tooltip", getTooltipElement().getText()); | |||
// Hide tooltip | |||
mouse.mouseMove(textfieldCoordinates, -100, -100); | |||
sleep(2000); | |||
ensureHiddenTooltipPositionedCorrectly(); | |||
assertEquals("", getTooltipElement().getText()); | |||
// Show tooltip again | |||
mouse.mouseMove(textfieldCoordinates, 10, 10); | |||
sleep(100); | |||
ensureVisibleTooltipPositionedCorrectly(); | |||
assertEquals("My tooltip", getTooltipElement().getText()); | |||
// Hide tooltip | |||
mouse.mouseMove(textfieldCoordinates, -100, -100); | |||
sleep(2000); | |||
ensureHiddenTooltipPositionedCorrectly(); | |||
assertEquals("", getTooltipElement().getText()); | |||
} | |||
private WebElement getTooltipContainerElement() { | |||
return getDriver().findElement(By.className("v-tooltip")); | |||
} | |||
private void ensureVisibleTooltipPositionedCorrectly() { | |||
WebElement textfield = vaadinElementById("tf1"); | |||
int tooltipX = getTooltipContainerElement().getLocation().getX(); | |||
int textfieldX = textfield.getLocation().getX(); | |||
assertGreaterOrEqual("Tooltip should be positioned on the textfield (" | |||
+ tooltipX + " < " + textfieldX + ")", tooltipX, textfieldX); | |||
} | |||
private void ensureHiddenTooltipPositionedCorrectly() { | |||
int tooltipX = getTooltipContainerElement().getLocation().getX(); | |||
assertLessThanOrEqual( | |||
"Tooltip should be positioned outside of viewport (was at " | |||
+ tooltipX + ")", tooltipX, -1000); | |||
} | |||
} |
@@ -1,12 +1,12 @@ | |||
/* | |||
/* | |||
* 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 | |||
@@ -14,7 +14,7 @@ | |||
* the License. | |||
*/ | |||
package com.vaadin.tests.components.window; | |||
package com.vaadin.tests.tooltip; | |||
import com.vaadin.server.VaadinRequest; | |||
import com.vaadin.tests.components.AbstractTestUI; | |||
@@ -41,9 +41,6 @@ public class TooltipInWindow extends AbstractTestUI { | |||
TextField tf = new TextField("TextField with a tooltip"); | |||
tf.setDescription("My tooltip"); | |||
tf.setId(id); | |||
getTooltipConfiguration().setOpenDelay(0); | |||
getTooltipConfiguration().setQuickOpenDelay(0); | |||
getTooltipConfiguration().setCloseTimeout(1000); | |||
return tf; | |||
} | |||
@@ -54,7 +51,7 @@ public class TooltipInWindow extends AbstractTestUI { | |||
@Override | |||
protected Integer getTicketNumber() { | |||
return Integer.valueOf(9172); | |||
return 9172; | |||
} | |||
} |
@@ -0,0 +1,66 @@ | |||
/* | |||
* 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.tooltip; | |||
import org.junit.Test; | |||
import org.openqa.selenium.WebElement; | |||
import com.vaadin.testbench.By; | |||
import com.vaadin.tests.tb3.TooltipTest; | |||
/** | |||
* Test if tooltips in subwindows behave correctly | |||
* | |||
* @author Vaadin Ltd | |||
*/ | |||
public class TooltipInWindowTest extends TooltipTest { | |||
@Test | |||
public void testTooltipsInSubWindow() throws Exception { | |||
openTestURL(); | |||
WebElement textfield = vaadinElementById("tf1"); | |||
checkTooltip(textfield, "My tooltip"); | |||
ensureVisibleTooltipPositionedCorrectly(textfield); | |||
clearTooltip(); | |||
checkTooltip(textfield, "My tooltip"); | |||
clearTooltip(); | |||
} | |||
private WebElement getTooltipContainerElement() { | |||
return getDriver().findElement(By.className("v-tooltip")); | |||
} | |||
private void ensureVisibleTooltipPositionedCorrectly(WebElement textfield) | |||
throws InterruptedException { | |||
int tooltipX = getTooltip().getLocation().getX(); | |||
int textfieldX = textfield.getLocation().getX(); | |||
assertGreaterOrEqual("Tooltip should be positioned on the textfield (" | |||
+ tooltipX + " < " + textfieldX + ")", tooltipX, textfieldX); | |||
} | |||
private void ensureHiddenTooltipPositionedCorrectly() { | |||
int tooltipX = getTooltipContainerElement().getLocation().getX(); | |||
assertLessThanOrEqual( | |||
"Tooltip should be positioned outside of viewport (was at " | |||
+ tooltipX + ")", tooltipX, -1000); | |||
} | |||
} |