aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/test/java/com/vaadin/tests/elements/slider/SliderGetHandleTest.java
blob: 191707a0cb5fb27c69f60dda71261c699d57ae94 (plain)
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);
    }

}