]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix broken method signature of Grid.addColumn (#8180)
authorAleksi Hietanen <aleksi@vaadin.com>
Tue, 10 Jan 2017 12:23:53 +0000 (14:23 +0200)
committerGitHub <noreply@github.com>
Tue, 10 Jan 2017 12:23:53 +0000 (14:23 +0200)
Fixes #8129

server/src/main/java/com/vaadin/ui/Grid.java
server/src/test/java/com/vaadin/tests/server/component/grid/GridTest.java
uitest/src/main/java/com/vaadin/tests/components/grid/GridAddColumn.java [new file with mode: 0644]
uitest/src/test/java/com/vaadin/tests/components/grid/GridAddColumnTest.java [new file with mode: 0644]

index 203cf5e5213f4e46aed67aff4320bbb232a7077c..b4058964473d8652c76b13a4488bcae57b87c371 100644 (file)
@@ -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<T> extends AbstractListing<T> implements HasComponents,
      *
      * @return the new column
      */
-    public Column<T, String> addColumn(ValueProvider<T, String> valueProvider) {
+    public Column<T, String> addColumn(ValueProvider<T, ?> valueProvider) {
         return addColumn(t -> String.valueOf(valueProvider.apply(t)),
                 new TextRenderer());
     }
index 5dc49c5e8f381112ce6d7eefe3584cd119296cdf..f545581bb3317d99690019b51942bb7f59a77627 100644 (file)
@@ -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 (file)
index 0000000..10fad97
--- /dev/null
@@ -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<String> 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 (file)
index 0000000..f6755d1
--- /dev/null
@@ -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));
+    }
+}