diff options
author | Denis <denis@vaadin.com> | 2016-12-15 11:50:04 +0200 |
---|---|---|
committer | Ilia Motornyi <elmot@vaadin.com> | 2016-12-15 11:50:04 +0200 |
commit | 2984fbe70475685209d76061d1c8b9bdcf3d9a04 (patch) | |
tree | c7ca9a5a0d71ad15e05b4f5daa64d3b9fdf6955a /uitest | |
parent | 56c44b996205a071e2e8ccc26a707bddf023bcd5 (diff) | |
download | vaadin-framework-2984fbe70475685209d76061d1c8b9bdcf3d9a04.tar.gz vaadin-framework-2984fbe70475685209d76061d1c8b9bdcf3d9a04.zip |
(Re)introduce server side sort for Grid.
Fixes vaadin/framework8-issues#557
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java | 6 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java | 76 |
2 files changed, 82 insertions, 0 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java index ed82395c88..c074bd4d14 100644 --- a/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java +++ b/uitest/src/main/java/com/vaadin/tests/components/grid/basics/GridBasics.java @@ -21,6 +21,7 @@ import com.vaadin.event.selection.MultiSelectionEvent; import com.vaadin.event.selection.SingleSelectionEvent; import com.vaadin.server.VaadinRequest; import com.vaadin.shared.Registration; +import com.vaadin.shared.data.sort.SortDirection; import com.vaadin.shared.ui.grid.HeightMode; import com.vaadin.tests.components.AbstractTestUIWithLog; import com.vaadin.ui.Button; @@ -338,7 +339,12 @@ public class GridBasics extends AbstractTestUIWithLog { .setCheckable(true); columnMenu.addItem("Remove", selectedItem -> grid.removeColumn(col)); + + columnMenu.addItem("Sort ASC", item -> grid.sort(col)); + columnMenu.addItem("Sort DESC", + item -> grid.sort(col, SortDirection.DESCENDING)); } + columnsMenu.addItem("Clear sort", item -> grid.clearSortOrder()); } private void createSizeMenu(MenuItem sizeMenu) { diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java index 9b97f8def4..c172f53f3b 100644 --- a/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java +++ b/uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java @@ -2,6 +2,7 @@ package com.vaadin.tests.components.grid.basics; import java.util.Collections; import java.util.Comparator; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -57,4 +58,79 @@ public class GridSortingTest extends GridBasicsTest { getGridElement().getCell(i++, 3).getText()); } } + + @Test + public void serverSideOrderByColumn0() { + selectMenuPath("Component", "Columns", "Column 0", "Sort ASC"); + + Comparator<String> comparator = Comparator.naturalOrder(); + + int i = 0; + for (String coord : getTestData().map(DataObject::getCoordinates) + .sorted(comparator).limit(5).collect(Collectors.toList())) { + Assert.assertEquals( + "Grid was not sorted as expected, row number mismatch", + coord, getGridElement().getCell(i++, 0).getText()); + } + // self-verification + Assert.assertTrue(i > 0); + + selectMenuPath("Component", "Columns", "Column 0", "Sort DESC"); + + i = 0; + for (String coord : getTestData().map(DataObject::getCoordinates) + .sorted(comparator.reversed()).limit(5) + .collect(Collectors.toList())) { + Assert.assertEquals( + "Grid was not sorted as expected, row number mismatch", + coord, getGridElement().getCell(i++, 0).getText()); + } + } + + @Test + public void serverSideOrderByDate() { + selectMenuPath("Component", "Columns", "Date", "Sort ASC"); + + Comparator<Date> comparator = Comparator.naturalOrder(); + + int i = 0; + for (Date date : getTestData().map(DataObject::getDate) + .sorted(comparator).limit(5).collect(Collectors.toList())) { + Assert.assertEquals( + "Grid was not sorted as expected, row number mismatch", + date.toString(), + getGridElement().getCell(i++, 4).getText()); + } + // self-verification + Assert.assertTrue(i > 0); + + selectMenuPath("Component", "Columns", "Date", "Sort DESC"); + + i = 0; + for (Date date : getTestData().map(DataObject::getDate) + .sorted(comparator.reversed()).limit(5) + .collect(Collectors.toList())) { + Assert.assertEquals( + "Grid was not sorted as expected, row number mismatch", + date.toString(), + getGridElement().getCell(i++, 4).getText()); + } + } + + @Test + public void serverSideClearOrder() { + selectMenuPath("Component", "Columns", "Column 0", "Sort ASC"); + selectMenuPath("Component", "Columns", "Clear sort"); + + int i = 0; + for (String coord : getTestData().map(DataObject::getCoordinates) + .limit(5).collect(Collectors.toList())) { + Assert.assertEquals( + "Grid was not sorted as expected, row number mismatch", + coord, getGridElement().getCell(i++, 0).getText()); + } + // self-verification + Assert.assertTrue(i > 0); + } + } |