From 2aba81c12d0b11d8618fb11142d7c74559647426 Mon Sep 17 00:00:00 2001 From: Henrik Paul Date: Tue, 26 Aug 2014 15:58:37 +0300 Subject: [PATCH] Tests vScroll behavior in row-amount border cases (#13334) Change-Id: I1a14e9721549b50ddda0aec0ed2cbbabe6f1abd6 --- .../grid/basicfeatures/GridBasicFeatures.java | 54 +++++++++++-------- .../basicfeatures/GridBasicFeaturesTest.java | 2 +- .../server/GridStructureTest.java | 23 ++++++++ 3 files changed, 55 insertions(+), 24 deletions(-) diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java index 87109b5007..b760f8531c 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeatures.java @@ -537,36 +537,44 @@ public class GridBasicFeatures extends AbstractComponentTest { protected void createRowActions() { createCategory("Body rows", null); - createClickAction("Add first row", "Body rows", + final Command newRowCommand = new Command() { + @Override + public void execute(Grid c, String value, Object data) { + Item item = ds.addItemAt(0, new Object()); + for (int i = 0; i < COLUMNS; i++) { + Class type = ds.getType(getColumnProperty(i)); + if (String.class.isAssignableFrom(type)) { + Property itemProperty = getProperty(item, i); + itemProperty.setValue("newcell: " + i); + } else if (Integer.class.isAssignableFrom(type)) { + Property itemProperty = getProperty(item, i); + itemProperty.setValue(Integer.valueOf(i)); + } else { + // let the default value be taken implicitly. + } + } + } + + private Property getProperty(Item item, int i) { + @SuppressWarnings("unchecked") + Property itemProperty = item + .getItemProperty(getColumnProperty(i)); + return itemProperty; + } + }; + + createClickAction("Add 18 rows", "Body rows", new Command() { @Override public void execute(Grid c, String value, Object data) { - Item item = ds.addItemAt(0, new Object()); - for (int i = 0; i < COLUMNS; i++) { - Class type = ds.getType(getColumnProperty(i)); - if (String.class.isAssignableFrom(type)) { - Property itemProperty = getProperty( - item, i); - itemProperty.setValue("newcell: " + i); - } else if (Integer.class.isAssignableFrom(type)) { - Property itemProperty = getProperty( - item, i); - itemProperty.setValue(Integer.valueOf(i)); - } else { - // let the default value be taken implicitly. - } + for (int i = 0; i < 18; i++) { + newRowCommand.execute(c, value, data); } } - - private Property getProperty( - Item item, int i) { - @SuppressWarnings("unchecked") - Property itemProperty = item - .getItemProperty(getColumnProperty(i)); - return itemProperty; - } }, null); + createClickAction("Add first row", "Body rows", newRowCommand, null); + createClickAction("Remove first row", "Body rows", new Command() { @Override 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 8952b04d02..56f5f63c39 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/GridBasicFeaturesTest.java @@ -111,7 +111,7 @@ public abstract class GridBasicFeaturesTest extends MultiBrowserTest { } } - private WebElement getGridVerticalScrollbar() { + protected WebElement getGridVerticalScrollbar() { return getDriver() .findElement( By.xpath("//div[contains(@class, \"v-grid-scroller-vertical\")]")); diff --git a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridStructureTest.java b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridStructureTest.java index 7c5607d4e6..a3cbaa980d 100644 --- a/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridStructureTest.java +++ b/uitest/src/com/vaadin/tests/components/grid/basicfeatures/server/GridStructureTest.java @@ -18,6 +18,7 @@ package com.vaadin.tests.components.grid.basicfeatures.server; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.IsNot.not; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.util.List; @@ -208,6 +209,28 @@ public class GridStructureTest extends GridBasicFeaturesTest { .findElements(By.tagName("tr")).size()); } + @Test + public void testVerticalScrollBarVisibilityWhenEnoughRows() + throws Exception { + openTestURL(); + + assertTrue(verticalScrollbarIsPresent()); + + selectMenuPath("Component", "Body rows", "Remove all rows"); + assertFalse(verticalScrollbarIsPresent()); + + selectMenuPath("Component", "Body rows", "Add 18 rows"); + assertFalse(verticalScrollbarIsPresent()); + + selectMenuPath("Component", "Body rows", "Add first row"); + assertTrue(verticalScrollbarIsPresent()); + } + + private boolean verticalScrollbarIsPresent() { + return "scroll".equals(getGridVerticalScrollbar().getCssValue( + "overflow-y")); + } + private void assertPrimaryStylename(String stylename) { assertTrue(getGridElement().getAttribute("class").contains(stylename)); -- 2.39.5