diff options
Diffstat (limited to 'uitest/src/com/vaadin/tests/extensions/ResponsiveUITest.java')
-rw-r--r-- | uitest/src/com/vaadin/tests/extensions/ResponsiveUITest.java | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/uitest/src/com/vaadin/tests/extensions/ResponsiveUITest.java b/uitest/src/com/vaadin/tests/extensions/ResponsiveUITest.java new file mode 100644 index 0000000000..76babed333 --- /dev/null +++ b/uitest/src/com/vaadin/tests/extensions/ResponsiveUITest.java @@ -0,0 +1,78 @@ +/* + * Copyright 2000-2013 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.extensions; + +import static org.junit.Assert.assertEquals; + +import org.junit.Before; +import org.junit.Test; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.interactions.Actions; + +import com.vaadin.testbench.By; +import com.vaadin.tests.tb3.MultiBrowserTest; + +public class ResponsiveUITest extends MultiBrowserTest { + + @Before + public void setUp() throws Exception { + // We need this in order to ensure that the initial width-range is + // 401px-600px + testBench().resizeViewPortTo(1024, 768); + } + + // JQuery style selector + private WebElement $(String cssSelector) { + return getDriver().findElement(By.cssSelector(cssSelector)); + } + + @Test + public void testResizingSplitPanelReflowsLayout() throws Exception { + openTestURL(); + + assertEquals("401px-600px", + $(".v-csslayout-grid.first").getAttribute("width-range")); + assertEquals("501px-", + $(".v-csslayout-grid.second").getAttribute("width-range")); + + moveSplitter(200); + + assertEquals("601-800", + $(".v-csslayout-grid.first").getAttribute("width-range")); + assertEquals("501px-", + $(".v-csslayout-grid.second").getAttribute("width-range")); + + moveSplitter(-350); + + assertEquals("201px-400px", + $(".v-csslayout-grid.first").getAttribute("width-range")); + assertEquals("301px-400px", + $(".v-csslayout-grid.second").getAttribute("width-range")); + + compareScreen("responsive"); + + moveSplitter(-200); + assertEquals("-200px", + $(".v-csslayout-grid.first").getAttribute("width-range")); + + } + + private void moveSplitter(int xOffset) { + new Actions(getDriver()).clickAndHold($(".v-splitpanel-hsplitter")) + .moveByOffset(xOffset, 0).release().build().perform(); + } +} |