From: Aleksi Hietanen Date: Tue, 10 Jan 2017 12:23:53 +0000 (+0200) Subject: Fix broken method signature of Grid.addColumn (#8180) X-Git-Tag: 8.0.0.beta2~91 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=5e89da2f8a6c457e0c853db55d7443a6abd25aaa;p=vaadin-framework.git Fix broken method signature of Grid.addColumn (#8180) Fixes #8129 --- diff --git a/server/src/main/java/com/vaadin/ui/Grid.java b/server/src/main/java/com/vaadin/ui/Grid.java index 203cf5e521..b405896447 100644 --- a/server/src/main/java/com/vaadin/ui/Grid.java +++ b/server/src/main/java/com/vaadin/ui/Grid.java @@ -34,7 +34,6 @@ import java.util.Optional; import java.util.Set; import java.util.UUID; import java.util.function.BinaryOperator; -import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -1855,7 +1854,7 @@ public class Grid extends AbstractListing implements HasComponents, * * @return the new column */ - public Column addColumn(ValueProvider valueProvider) { + public Column addColumn(ValueProvider valueProvider) { return addColumn(t -> String.valueOf(valueProvider.apply(t)), new TextRenderer()); } diff --git a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java index 5dc49c5e8f..f545581bb3 100644 --- a/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java +++ b/server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java @@ -35,6 +35,7 @@ public class GridTest { grid.addColumn(ValueProvider.identity()).setId("foo"); grid.addColumn(String::length, new NumberRenderer()); + grid.addColumn(string -> new Object()); grid.addColumn(ValueProvider.identity()).setId("randomColumnId"); } diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/GridAddColumn.java b/uitest/src/main/java/com/vaadin/tests/components/grid/GridAddColumn.java new file mode 100644 index 0000000000..10fad97259 --- /dev/null +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/GridAddColumn.java @@ -0,0 +1,22 @@ +package com.vaadin.tests.components.grid; + +import com.vaadin.data.ValueProvider; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.Grid; +import com.vaadin.ui.renderers.NumberRenderer; + +public class GridAddColumn extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + Grid grid = new Grid<>(); + grid.addColumn(ValueProvider.identity()); + grid.addColumn(String::length, new NumberRenderer()); + grid.addColumn(String::length); + grid.addColumn(string -> -string.length()); + grid.addColumn(string -> new Object()); + grid.setItems("a", "aa", "aaa"); + addComponent(grid); + } +} diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridAddColumnTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridAddColumnTest.java new file mode 100644 index 0000000000..f6755d1c31 --- /dev/null +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridAddColumnTest.java @@ -0,0 +1,68 @@ +package com.vaadin.tests.components.grid; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; + +import com.vaadin.testbench.elements.GridElement; +import com.vaadin.tests.tb3.SingleBrowserTest; + +public class GridAddColumnTest extends SingleBrowserTest { + + GridElement grid; + + @Before + public void init() { + openTestURL(); + grid = $(GridElement.class).first(); + } + + @Test + public void columns_rendered_correctly() { + assertCellEquals(0, 0, "a"); + assertCellEquals(1, 0, "aa"); + assertCellEquals(2, 0, "aaa"); + + assertCellEquals(0, 1, "1"); + assertCellEquals(1, 1, "2"); + assertCellEquals(2, 1, "3"); + + assertCellEquals(0, 2, "1"); + assertCellEquals(1, 2, "2"); + assertCellEquals(2, 2, "3"); + + assertCellEquals(0, 3, "-1"); + assertCellEquals(1, 3, "-2"); + assertCellEquals(2, 3, "-3"); + + assertCellStartsWith(0, 4, "java.lang.Object@"); + assertCellStartsWith(1, 4, "java.lang.Object@"); + assertCellStartsWith(2, 4, "java.lang.Object@"); + } + + @Test + @Ignore // TODO re-enable once #8128 is resolved + public void sort_column_with_automatic_conversion() { + grid.getHeaderCell(0, 2).click(); + assertCellEquals(0, 0, "a"); + assertCellEquals(1, 0, "aa"); + assertCellEquals(2, 0, "aaa"); + + grid.getHeaderCell(0, 3).click(); + assertCellEquals(0, 0, "aaa"); + assertCellEquals(1, 0, "aa"); + assertCellEquals(2, 0, "a"); + } + + private void assertCellEquals(int rowIndex, int colIndex, String content) { + Assert.assertEquals("Cell text should equal", content, + grid.getCell(rowIndex, colIndex).getText()); + } + + private void assertCellStartsWith(int rowIndex, int colIndex, + String startsWith) { + Assert.assertTrue("Cell text should start with", grid + .getCell(rowIndex, colIndex).getText().startsWith(startsWith)); + } +}