diff options
author | Mehdi Javan <mehdi@vaadin.com> | 2018-07-30 18:53:24 +0300 |
---|---|---|
committer | Mehdi Javan <32511762+mehdi-vaadin@users.noreply.github.com> | 2018-07-31 14:51:51 +0300 |
commit | a6625c1ac92fc84e42ffe5cf3bb69e4788bc91bb (patch) | |
tree | 189553cef809290e8152310ef9ce65c4d002a473 | |
parent | c37513ce99827d45da113e165b5dcc7d891ca4c8 (diff) | |
download | vaadin-framework-a6625c1ac92fc84e42ffe5cf3bb69e4788bc91bb.tar.gz vaadin-framework-a6625c1ac92fc84e42ffe5cf3bb69e4788bc91bb.zip |
Fix Escalator to properly reset height by rows (#11090)8.5.1
(cherry picked from commit 49f6f45cdf4895f179d9a630df6db096db3cdf66)
4 files changed, 91 insertions, 7 deletions
diff --git a/client/src/main/java/com/vaadin/client/widgets/Escalator.java b/client/src/main/java/com/vaadin/client/widgets/Escalator.java index fc7dc534f3..819e7f8d32 100644 --- a/client/src/main/java/com/vaadin/client/widgets/Escalator.java +++ b/client/src/main/java/com/vaadin/client/widgets/Escalator.java @@ -2054,6 +2054,7 @@ public class Escalator extends Widget defaultRowHeightShouldBeAutodetected = false; defaultRowHeight = px; reapplyDefaultRowHeights(); + applyHeightByRows(); } @Override diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridHeightByRow.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridHeightByRow.java new file mode 100644 index 0000000000..5254f9091f --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridHeightByRow.java @@ -0,0 +1,46 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.data.provider.DataProvider; +import com.vaadin.data.provider.ListDataProvider; +import com.vaadin.server.VaadinRequest; +import com.vaadin.shared.ui.grid.HeightMode; +import com.vaadin.tests.components.AbstractTestUIWithLog; +import com.vaadin.ui.Button; +import com.vaadin.ui.Grid; + +import java.util.ArrayList; +import java.util.List; + +public class GridHeightByRow extends AbstractTestUIWithLog { + @Override + protected void setup(VaadinRequest request) { + List<String> data = new ArrayList<>(); + for (int i = 0; i < 10; i++) + data.add("Data " + i); + + Grid<String> grid = new Grid<>(); + grid.addColumn(String::toString).setCaption("Test"); + ListDataProvider<String> provider = DataProvider.ofCollection(data); + grid.setDataProvider(provider); + + grid.setHeightMode(HeightMode.UNDEFINED); + grid.setRowHeight(50); + + Button addButton = new Button("Add Data"); + addButton.addClickListener(event -> { + data.add("Data"); + grid.getDataProvider().refreshAll(); + }); + + Button removeButton = new Button("Remove Data"); + removeButton.addClickListener(event -> { + if (data.isEmpty()) + return; + + data.remove(0); + grid.getDataProvider().refreshAll(); + }); + + addComponents(addButton, removeButton, grid); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightByRowTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightByRowTest.java new file mode 100644 index 0000000000..e6da5314cc --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridHeightByRowTest.java @@ -0,0 +1,37 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.testbench.parallel.TestCategory; +import com.vaadin.tests.tb3.MultiBrowserTest; +import org.junit.Assert; +import org.junit.Test; + +@TestCategory("grid") +public class GridHeightByRowTest extends MultiBrowserTest { + @Test + public void testHeightByRow() { + openTestURL(); + + GridElement grid = $(GridElement.class).first(); + ButtonElement addButton = $(ButtonElement.class).caption("Add Data") + .first(); + ButtonElement removeButton = $(ButtonElement.class) + .caption("Remove Data").first(); + + // 10 rows and the header, each has height of 50 + Assert.assertEquals(550, grid.getSize().getHeight()); + + addButton.click(); + + Assert.assertEquals(600, grid.getSize().getHeight()); + + addButton.click(); + + Assert.assertEquals(650, grid.getSize().getHeight()); + + removeButton.click(); + + Assert.assertEquals(600, grid.getSize().getHeight()); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java b/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java index 3415663ca5..bead1fb71d 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/menubar/MenuBarIconsTest.java @@ -1,17 +1,16 @@ package com.vaadin.tests.components.menubar; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Assume; -import org.junit.Test; -import org.openqa.selenium.WebElement; - import com.vaadin.server.FontAwesome; import com.vaadin.testbench.By; import com.vaadin.testbench.elements.MenuBarElement; import com.vaadin.testbench.parallel.BrowserUtil; import com.vaadin.tests.tb3.SingleBrowserTest; +import org.junit.Assume; +import org.junit.Test; +import org.openqa.selenium.WebElement; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; public class MenuBarIconsTest extends SingleBrowserTest { @@ -70,6 +69,7 @@ public class MenuBarIconsTest extends SingleBrowserTest { assertImage(image, moreItem); moreItem.click(); + waitForElementPresent(By.className("v-menubar-submenu")); WebElement filler5 = moreItem.findElement(By.vaadin("#Filler 5")); assertImage(image, filler5); |