summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorDenis <denis@vaadin.com>2016-12-15 11:50:04 +0200
committerIlia Motornyi <elmot@vaadin.com>2016-12-15 11:50:04 +0200
commit2984fbe70475685209d76061d1c8b9bdcf3d9a04 (patch)
treec7ca9a5a0d71ad15e05b4f5daa64d3b9fdf6955a /uitest
parent56c44b996205a071e2e8ccc26a707bddf023bcd5 (diff)
downloadvaadin-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.java6
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/basics/GridSortingTest.java76
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);
+ }
+
}