summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur <artur@vaadin.com>2017-03-07 12:44:01 +0200
committerHenri Sara <henri.sara@gmail.com>2017-03-16 12:32:19 +0200
commit833e6e3bd98ff04a35b428c35afe16c874893780 (patch)
treed657866c79341476bcbcd13dac0944f6daf2fd5a /uitest
parentc299a6bb4803bb132409fa2b9c0d4b45636a7a4c (diff)
downloadvaadin-framework-833e6e3bd98ff04a35b428c35afe16c874893780.tar.gz
vaadin-framework-833e6e3bd98ff04a35b428c35afe16c874893780.zip
Always calculate Escalator max row count the same way (#8740)
* Rename getMaxEscalatorRowCapacity to describe what it does * Always calculate Escalator max row count the same way This changes Escalator to not take a horizontal scrollbar into account when trying to determine "maximum visible rows". This will add another row, compared to previous versions, when there is a horizontal scrollbar. In reality, it would likely make sense to always add 10 more rows to have some buffer above and below the visible area. Fixes #8661
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/main/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeight.java92
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java4
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridScrollTest.java46
-rw-r--r--uitest/src/test/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeightTest.java40
4 files changed, 180 insertions, 2 deletions
diff --git a/uitest/src/main/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeight.java b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeight.java
new file mode 100644
index 0000000000..d5e6c41063
--- /dev/null
+++ b/uitest/src/main/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeight.java
@@ -0,0 +1,92 @@
+package com.vaadin.v7.tests.components.grid;
+
+import com.vaadin.annotations.Theme;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.tests.components.AbstractTestUI;
+import com.vaadin.v7.data.Item;
+import com.vaadin.v7.data.util.BeanItemContainer;
+import com.vaadin.v7.data.util.GeneratedPropertyContainer;
+import com.vaadin.v7.data.util.PropertyValueGenerator;
+import com.vaadin.v7.ui.Grid;
+import com.vaadin.v7.ui.Grid.Column;
+import com.vaadin.v7.ui.renderers.ButtonRenderer;
+
+@Theme("valo")
+public class HideGridColumnWhenHavingUnsuitableHeight extends AbstractTestUI {
+
+ private Grid grid;
+
+ public static class SampleBean {
+
+ private String col1;
+ private String col2;
+
+ public SampleBean() {
+ }
+
+ public String getCol1() {
+ return col1;
+ }
+
+ public void setCol1(String col1) {
+ this.col1 = col1;
+ }
+
+ public String getCol2() {
+ return col2;
+ }
+
+ public void setCol2(String col2) {
+ this.col2 = col2;
+ }
+ }
+
+ @SuppressWarnings("serial")
+ @Override
+ protected void setup(VaadinRequest vaadinRequest) {
+ grid = new Grid();
+
+ BeanItemContainer<SampleBean> container = generateData(50);
+ GeneratedPropertyContainer gpc = new GeneratedPropertyContainer(
+ container);
+ grid.setContainerDataSource(gpc);
+
+ gpc.addGeneratedProperty("Button1",
+ new PropertyValueGenerator<String>() {
+ @Override
+ public String getValue(Item item, Object itemId,
+ Object propertyId) {
+ return "Button 1";
+ }
+
+ @Override
+ public Class<String> getType() {
+ return String.class;
+ }
+ });
+ grid.getColumn("Button1").setRenderer(new ButtonRenderer());
+ grid.getColumn("col1").setWidth(1600);
+ for (Column gridCol : grid.getColumns()) {
+ gridCol.setHidable(true);
+ }
+ grid.setWidth("100%");
+ grid.setHeight("425px");
+
+ grid.setColumns("col1", "col2", "Button1");
+
+ addComponent(grid);
+ }
+
+ private BeanItemContainer<SampleBean> generateData(int rows) {
+ BeanItemContainer<SampleBean> container = new BeanItemContainer<SampleBean>(
+ SampleBean.class);
+ for (int y = 0; y < rows; ++y) {
+ SampleBean sampleBean = new SampleBean();
+ sampleBean.setCol1("Row " + y + " Column 1");
+ sampleBean.setCol2("Row " + y + " Column 2");
+ container.addBean(sampleBean);
+ }
+ return container;
+ }
+
+}
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java
index 12f55b8864..f3c97cfeea 100644
--- a/uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basicfeatures/escalator/EscalatorSpacerTest.java
@@ -290,12 +290,12 @@ public class EscalatorSpacerTest extends EscalatorBasicClientFeaturesTest {
selectMenuPath(FEATURES, SPACERS, ROW_1, SET_100PX);
/*
- * we check for row -2 instead of -1, because escalator has the one row
+ * we check for row -3 instead of -1, because escalator has two rows
* buffered underneath the footer
*/
selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, SCROLL_TO, ROW_75);
Thread.sleep(500);
- assertEquals("Row 75: 0,75", getBodyCell(-2, 0).getText());
+ assertEquals("Row 75: 0,75", getBodyCell(-3, 0).getText());
selectMenuPath(COLUMNS_AND_ROWS, BODY_ROWS, SCROLL_TO, ROW_25);
Thread.sleep(500);
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridScrollTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridScrollTest.java
new file mode 100644
index 0000000000..9bb35bc311
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridScrollTest.java
@@ -0,0 +1,46 @@
+/*
+ * 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.basics;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import com.vaadin.testbench.elements.GridElement;
+
+public class GridScrollTest extends GridBasicsTest {
+
+ @Test
+ public void workPendingWhileScrolling() {
+ openTestURL("theme=valo");
+ String script = "var c = window.vaadin.clients.runcomvaadintestscomponentsgridbasicsGridBasics;\n"
+ // Scroll down and cause lazy loading
+ + "c.getElementByPath(\"//Grid[0]#cell[21]\"); \n"
+ + "return c.isActive();";
+
+ Boolean active = (Boolean) executeScript(script);
+ assertTrue("Grid should be marked to have workPending while scrolling",
+ active);
+ }
+
+ @Test
+ public void scrollIntoViewThroughSubPart() {
+ openTestURL("theme=valo");
+ GridElement grid = $(GridElement.class).first();
+ assertEquals("(10, 0)", grid.getCell(10, 0).getText());
+ }
+}
diff --git a/uitest/src/test/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeightTest.java b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeightTest.java
new file mode 100644
index 0000000000..3018986090
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/v7/tests/components/grid/HideGridColumnWhenHavingUnsuitableHeightTest.java
@@ -0,0 +1,40 @@
+package com.vaadin.v7.tests.components.grid;
+
+import java.util.List;
+import java.util.logging.Level;
+
+import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+
+import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+
+public class HideGridColumnWhenHavingUnsuitableHeightTest
+ extends SingleBrowserTest {
+
+ @Test
+ public void hideAndScroll() {
+ openTestURL("debug");
+ GridElement grid = $(GridElement.class).first();
+
+ getSidebarOpenButton(grid).click();
+ // Hide first column
+ getSidebarPopup().findElements(By.tagName("td")).get(0).click();
+
+ grid.scrollToRow(25);
+ assertNoDebugMessage(Level.SEVERE);
+ }
+
+ protected WebElement getSidebarOpenButton(GridElement grid) {
+ List<WebElement> elements = grid
+ .findElements(By.className("v-grid-sidebar-button"));
+ return elements.isEmpty() ? null : elements.get(0);
+ }
+
+ protected WebElement getSidebarPopup() {
+ List<WebElement> elements = findElements(
+ By.className("v-grid-sidebar-popup"));
+ return elements.isEmpty() ? null : elements.get(0);
+ }
+}