1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.vaadin.tests.elements.slider;
import static org.junit.Assert.assertNotEquals;
import org.junit.Test;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.elements.SliderElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
public class SliderGetHandleTest extends MultiBrowserTest {
@Test
public void testGetHandle() {
openTestURL();
// get second slider, to check that getHandler get the handler
// of the correct slider, not of the very first one
SliderElement slider = $(SliderElement.class).get(1);
WebElement handle = slider.getHandle();
slider.isDisplayed();
handle.isDisplayed();
// Handle has 0*0 size in Valo theme and requires some special treatment
((JavascriptExecutor) driver).executeScript(
"function simulate(f,c,d,e){var b,a=null;for(b in eventMatchers)if(eventMatchers[b].test(c)){a=b;break}if(!a)return!1;document.createEvent?(b=document.createEvent(a),a==\"HTMLEvents\"?b.initEvent(c,!0,!0):b.initMouseEvent(c,!0,!0,document.defaultView,0,d,e,d,e,!1,!1,!1,!1,0,null),f.dispatchEvent(b)):(a=document.createEventObject(),a.detail=0,a.screenX=d,a.screenY=e,a.clientX=d,a.clientY=e,a.ctrlKey=!1,a.altKey=!1,a.shiftKey=!1,a.metaKey=!1,a.button=1,f.fireEvent(\"on\"+c,a));return!0} var eventMatchers={HTMLEvents:/^(?:load|unload|abort|error|select|change|submit|reset|focus|blur|resize|scroll)$/,MouseEvents:/^(?:click|dblclick|mouse(?:down|up|over|move|out))$/}; "
+ "simulate(arguments[0],\"mousedown\",0,0); simulate(arguments[0],\"mousemove\",arguments[1],arguments[2]); simulate(arguments[0],\"mouseup\",arguments[1],arguments[2]); ",
handle, handle.getLocation().x + 10, 0);
// action to do the same test using a theme other than Valo
// new Actions(driver).clickAndHold(handle).moveByOffset(10,
// 0).release().perform();
String initial = "" + (int) SliderGetHandle.INITIAL_VALUE;
String actual = slider.getValue();
assertNotEquals(initial, actual);
}
}
|