123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- 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;
-
- import org.junit.Test;
- import org.openqa.selenium.Keys;
- import org.openqa.selenium.remote.DesiredCapabilities;
-
- import com.vaadin.testbench.parallel.Browser;
-
- import static org.junit.Assert.assertEquals;
- import static org.junit.Assert.assertTrue;
-
- public class GridSortingTest extends GridBasicsTest {
-
- public static final Comparator<DataObject> BIG_RANDOM = Comparator
- .comparing(DataObject::getBigRandom);
- public static final Comparator<DataObject> SMALL_RANDOM = Comparator
- .comparing(DataObject::getSmallRandom);
-
- @Override
- public List<DesiredCapabilities> getBrowsersToTest() {
- // Should be browsersSupportingShiftClick but for whatever reason IE11
- // fails to shift click
- return Collections
- .singletonList(Browser.CHROME.getDesiredCapabilities());
- }
-
- @Test
- public void testSortBySingleColumnByUser() {
- getGridElement().getHeaderCell(0, 6).click();
- int i = 0;
- for (Integer rowNumber : getTestData().sorted(BIG_RANDOM)
- .map(DataObject::getRowNumber).limit(5)
- .collect(Collectors.toList())) {
- assertEquals("Grid was not sorted as expected, row number mismatch",
- rowNumber.toString(),
- getGridElement().getCell(i++, 3).getText());
- }
- }
-
- @Test
- public void testSortByMultipleColumnsByUser() {
- getGridElement().getHeaderCell(0, 7).click();
- getGridElement().getHeaderCell(0, 6).click(0, 0, Keys.SHIFT);
-
- int i = 0;
- for (Integer rowNumber : getTestData()
- .sorted(SMALL_RANDOM.thenComparing(BIG_RANDOM))
- .map(DataObject::getRowNumber).limit(5)
- .collect(Collectors.toList())) {
- assertEquals("Grid was not sorted as expected, row number mismatch",
- rowNumber.toString(),
- getGridElement().getCell(i++, 3).getText());
- }
- }
-
- @Test
- public void serverSideOrderByColumn0() {
- selectMenuPath("Component", "Columns", "Column 0", "Sort ASC");
-
- assertEquals("1. SortEvent: isUserOriginated? false", getLogRow(0));
-
- Comparator<String> comparator = Comparator.naturalOrder();
-
- int i = 0;
- for (String coord : getTestData().map(DataObject::getCoordinates)
- .sorted(comparator).limit(5).collect(Collectors.toList())) {
- assertEquals("Grid was not sorted as expected, row number mismatch",
- coord, getGridElement().getCell(i++, 0).getText());
- }
- // self-verification
- assertTrue(i > 0);
-
- selectMenuPath("Component", "Columns", "Column 0", "Sort DESC");
- assertEquals("2. SortEvent: isUserOriginated? false", getLogRow(0));
-
- i = 0;
- for (String coord : getTestData().map(DataObject::getCoordinates)
- .sorted(comparator.reversed()).limit(5)
- .collect(Collectors.toList())) {
- 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");
-
- assertEquals("1. SortEvent: isUserOriginated? false", getLogRow(0));
-
- Comparator<Date> comparator = Comparator.naturalOrder();
-
- int i = 0;
- for (Date date : getTestData().map(DataObject::getDate)
- .sorted(comparator).limit(5).collect(Collectors.toList())) {
- assertEquals("Grid was not sorted as expected, row number mismatch",
- date.toString(),
- getGridElement().getCell(i++, 4).getText());
- }
- // self-verification
- assertTrue(i > 0);
-
- selectMenuPath("Component", "Columns", "Date", "Sort DESC");
- assertEquals("2. SortEvent: isUserOriginated? false", getLogRow(0));
-
- i = 0;
- for (Date date : getTestData().map(DataObject::getDate)
- .sorted(comparator.reversed()).limit(5)
- .collect(Collectors.toList())) {
- 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");
-
- assertEquals("2. SortEvent: isUserOriginated? false", getLogRow(0));
-
- int i = 0;
- for (String coord : getTestData().map(DataObject::getCoordinates)
- .limit(5).collect(Collectors.toList())) {
- assertEquals("Grid was not sorted as expected, row number mismatch",
- coord, getGridElement().getCell(i++, 0).getText());
- }
- // self-verification
- assertTrue(i > 0);
- }
-
- }
|