aboutsummaryrefslogtreecommitdiffstats
path: root/uitest/src/test/java/com/vaadin/tests/components/window/BottomComponentScrollsUpTest.java
blob: ec3c3bb1bd7eeefb9846a2de887884935adb47c2 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package com.vaadin.tests.components.window;

import static org.junit.Assert.assertEquals;

import java.io.IOException;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;

import com.vaadin.testbench.TestBenchElement;
import com.vaadin.tests.tb3.MultiBrowserTest;

/**
 * Automatic test for fix for #12943.
 *
 * While testing without the fix, the test failed on both Chrome and PhantomJS.
 *
 * @author Vaadin Ltd
 */
public class BottomComponentScrollsUpTest extends MultiBrowserTest {

    @Override
    public void setup() throws Exception {
        super.setup();

        openTestURL();
    }

    @Test
    public void windowScrollTest() throws IOException, InterruptedException {
        TestBenchElement panelScrollable = (TestBenchElement) getDriver()
                .findElement(By.className("v-panel-content"));
        Dimension panelScrollableSize = panelScrollable.getSize();

        WebElement verticalLayout = panelScrollable
                .findElement(By.className("v-verticallayout"));
        Dimension verticalLayoutSize = verticalLayout.getSize();

        panelScrollable.scroll(verticalLayoutSize.height);
        int beforeClick = getScrollTop(panelScrollable);

        WebElement button = verticalLayout
                .findElement(By.className("v-button"));

        button.click();

        // Loose the focus from the button.
        new Actions(getDriver())
                .moveToElement(panelScrollable, panelScrollableSize.width / 2,
                        panelScrollableSize.height / 2)
                .click().build().perform();

        assertEquals(
                "Clicking a button or the panel should not cause scrolling.",
                beforeClick, getScrollTop(panelScrollable));
    }
}