From dd550858b9b4300acac8e35159f4c93e7f58d8ed Mon Sep 17 00:00:00 2001 From: Pekka Hyvönen Date: Tue, 14 Apr 2015 15:39:18 +0300 Subject: Calculate Grid sidebar button height when closed #17412 + contains Valo theming fixes for all browsers. + includes screenshot test for sidebar in Valo Change-Id: Ic6401057efff7e4d4ab65c46885dda2d995bce5d --- .../grid/basicfeatures/GridBasicFeaturesTest.java | 27 +++++++ .../grid/basicfeatures/GridColumnHidingTest.java | 9 ++- .../server/GridColumnVisibilityTest.java | 31 -------- .../basicfeatures/server/GridSidebarThemeTest.java | 86 ++++++++++++++++++++++ .../basicfeatures/server/LoadingIndicatorTest.java | 7 -- .../src/com/vaadin/tests/tb3/AbstractTB3Test.java | 20 +++++ 6 files changed, 139 insertions(+), 41 deletions(-) create mode 100644 uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSidebarThemeTest.java (limited to 'uitest/src') diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java index ca8ea9fd75..469bf37c2f 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java @@ -233,4 +233,31 @@ public abstract class GridBasicFeaturesTest extends MultiBrowserTest { assertTrue(getGridElement().getCell(row, column).getAttribute("class") .contains("focused")); } + + protected WebElement getSidebar() { + List elements = findElements(By.className("v-grid-sidebar")); + return elements.isEmpty() ? null : elements.get(0); + } + + protected WebElement getSidebarOpenButton() { + List elements = findElements(By + .className("v-grid-sidebar-button")); + return elements.isEmpty() ? null : elements.get(0); + } + + /** + * Returns the toggle inside the sidebar for hiding the column at the given + * index, or null if not found. + */ + protected WebElement getColumnHidingToggle(int columnIndex) { + WebElement sidebar = getSidebar(); + List elements = sidebar.findElements(By + .className("column-hiding-toggle")); + for (WebElement e : elements) { + if ((e.getText().toLowerCase()).startsWith("column " + columnIndex)) { + return e; + } + } + return null; + } } diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java index 1213e02799..b446bdef48 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridColumnHidingTest.java @@ -921,12 +921,14 @@ public class GridColumnHidingTest extends GridBasicClientFeaturesTest { assertNotNull(sidebar); } - private WebElement getSidebar() { + @Override + protected WebElement getSidebar() { List elements = findElements(By.className("v-grid-sidebar")); return elements.isEmpty() ? null : elements.get(0); } - private WebElement getSidebarOpenButton() { + @Override + protected WebElement getSidebarOpenButton() { List elements = findElements(By .className("v-grid-sidebar-button")); return elements.isEmpty() ? null : elements.get(0); @@ -936,7 +938,8 @@ public class GridColumnHidingTest extends GridBasicClientFeaturesTest { * Returns the toggle inside the sidebar for hiding the column at the given * index, or null if not found. */ - private WebElement getColumnHidingToggle(int columnIndex) { + @Override + protected WebElement getColumnHidingToggle(int columnIndex) { WebElement sidebar = getSidebar(); List elements = sidebar.findElements(By .className("column-hiding-toggle")); diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridColumnVisibilityTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridColumnVisibilityTest.java index 7942650576..d01e689b72 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridColumnVisibilityTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridColumnVisibilityTest.java @@ -21,12 +21,8 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; -import java.util.List; - import org.junit.Before; import org.junit.Test; -import org.openqa.selenium.By; -import org.openqa.selenium.WebElement; import com.vaadin.testbench.parallel.TestCategory; import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeaturesTest; @@ -281,31 +277,4 @@ public class GridColumnVisibilityTest extends GridBasicFeaturesTest { selectMenuPath("Component", "Columns", "Column " + index, "Add / Remove"); } - - private WebElement getSidebar() { - List elements = findElements(By.className("v-grid-sidebar")); - return elements.isEmpty() ? null : elements.get(0); - } - - private WebElement getSidebarOpenButton() { - List elements = findElements(By - .className("v-grid-sidebar-button")); - return elements.isEmpty() ? null : elements.get(0); - } - - /** - * Returns the toggle inside the sidebar for hiding the column at the given - * index, or null if not found. - */ - private WebElement getColumnHidingToggle(int columnIndex) { - WebElement sidebar = getSidebar(); - List elements = sidebar.findElements(By - .className("column-hiding-toggle")); - for (WebElement e : elements) { - if ((e.getText().toLowerCase()).startsWith("column " + columnIndex)) { - return e; - } - } - return null; - } } diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSidebarThemeTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSidebarThemeTest.java new file mode 100644 index 0000000000..79327993b0 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridSidebarThemeTest.java @@ -0,0 +1,86 @@ +/* + * 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.grid.basicfeatures.server; + +import java.io.IOException; +import java.util.List; + +import org.junit.Test; +import org.openqa.selenium.By; +import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.remote.DesiredCapabilities; +import org.openqa.selenium.support.ui.ExpectedConditions; + +import com.vaadin.testbench.parallel.Browser; +import com.vaadin.tests.components.grid.basicfeatures.GridBasicFeaturesTest; + +public class GridSidebarThemeTest extends GridBasicFeaturesTest { + + @Test + public void testValo() throws Exception { + runTestSequence("valo"); + } + + private void runTestSequence(String theme) throws IOException { + openTestURL("theme=" + theme); + if (getDesiredCapabilities().getBrowserName().equals( + Browser.CHROME.getDesiredCapabilities().getBrowserName())) { + waitUntil(ExpectedConditions.elementToBeClickable(By.id("menu")), 2); + getDriver().findElement(By.id("menu")).click(); + selectMenu("Columns"); + selectMenu("All columns hidable"); + waitUntilLoadingIndicatorNotVisible(); + } else { + selectMenuPath("Component", "Columns", "All columns hidable"); + } + + compareScreen(theme + "|SidebarClosed"); + getSidebarOpenButton().click(); + + compareScreen(theme + "|SidebarOpen"); + + new Actions(getDriver()).moveToElement(getColumnHidingToggle(2), 5, 5) + .perform(); + + compareScreen(theme + "|OnMouseOverNotHiddenToggle"); + + getColumnHidingToggle(2).click(); + getColumnHidingToggle(3).click(); + getColumnHidingToggle(6).click(); + + new Actions(getDriver()).moveToElement(getSidebarOpenButton()) + .perform(); + ; + + compareScreen(theme + "|TogglesTriggered"); + + new Actions(getDriver()).moveToElement(getColumnHidingToggle(2)) + .perform(); + ; + + compareScreen(theme + "|OnMouseOverHiddenToggle"); + + getSidebarOpenButton().click(); + + compareScreen(theme + "|SidebarClosed2"); + } + + @Override + public List getBrowsersToTest() { + // phantom JS looks wrong from the beginning, so not tested + return getBrowsersExcludingPhantomJS(); + } +} diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/LoadingIndicatorTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/LoadingIndicatorTest.java index f251313100..f4771b9067 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/LoadingIndicatorTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/LoadingIndicatorTest.java @@ -19,7 +19,6 @@ import org.junit.Assert; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; -import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.ExpectedConditions; @@ -83,10 +82,4 @@ public class LoadingIndicatorTest extends GridBasicFeaturesTest { }); } - private boolean isLoadingIndicatorVisible() { - WebElement loadingIndicator = findElement(By - .className("v-loading-indicator")); - - return loadingIndicator.isDisplayed(); - } } diff --git a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java index 2d032ecd9e..48f99e5057 100644 --- a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java +++ b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java @@ -938,4 +938,24 @@ public abstract class AbstractTB3Test extends ParallelTest { protected void click(CheckBoxElement checkbox) { checkbox.findElement(By.xpath("input")).click(); } + + protected boolean isLoadingIndicatorVisible() { + WebElement loadingIndicator = findElement(By + .className("v-loading-indicator")); + + return loadingIndicator.isDisplayed(); + } + + protected void waitUntilLoadingIndicatorNotVisible() { + waitUntil(new ExpectedCondition() { + + @Override + public Boolean apply(WebDriver input) { + WebElement loadingIndicator = input.findElement(By + .className("v-loading-indicator")); + + return !loadingIndicator.isDisplayed(); + } + }); + } } -- cgit v1.2.3