You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

GridSortWhenPossibleTest.java 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertFalse;
  4. import static org.junit.Assert.assertTrue;
  5. import org.junit.Test;
  6. import com.vaadin.testbench.elements.ButtonElement;
  7. import com.vaadin.testbench.elements.CheckBoxElement;
  8. import com.vaadin.testbench.elements.GridElement;
  9. import com.vaadin.tests.tb3.MultiBrowserTest;
  10. public class GridSortWhenPossibleTest extends MultiBrowserTest {
  11. @Test
  12. public void inMemory() throws InterruptedException {
  13. openTestURL();
  14. $(CheckBoxElement.class).first().click();
  15. $(ButtonElement.class).first().click();
  16. GridElement grid = $(GridElement.class).first();
  17. assertRow(grid, 0, "a", "4", true);
  18. assertRow(grid, 1, "b", "5", false);
  19. assertRow(grid, 2, "c", "3", false);
  20. assertRow(grid, 3, "a", "6", false);
  21. assertRow(grid, 4, "a", "2", true);
  22. assertRow(grid, 5, "c", "7", false);
  23. assertRow(grid, 6, "b", "1", true);
  24. grid.getHeaderCell(0, 0).click();
  25. assertTrue("First column should be sorted ascending",
  26. grid.getHeaderCell(0, 0).getAttribute("class")
  27. .contains("sort-asc"));
  28. assertFalse("Second column should not be sorted", grid
  29. .getHeaderCell(0, 1).getAttribute("class").contains("sort-"));
  30. assertFalse("Third column should not be sorted", grid
  31. .getHeaderCell(0, 2).getAttribute("class").contains("sort-"));
  32. assertRow(grid, 0, "a", "4", true);
  33. assertRow(grid, 1, "a", "6", false);
  34. assertRow(grid, 2, "a", "2", true);
  35. assertRow(grid, 3, "b", "5", false);
  36. assertRow(grid, 4, "b", "1", true);
  37. assertRow(grid, 5, "c", "3", false);
  38. assertRow(grid, 6, "c", "7", false);
  39. grid.getHeaderCell(0, 1).click();
  40. assertFalse("First column should not be sorted", grid
  41. .getHeaderCell(0, 0).getAttribute("class").contains("sort-"));
  42. assertTrue("Second column should be sorted ascending",
  43. grid.getHeaderCell(0, 1).getAttribute("class")
  44. .contains("sort-asc"));
  45. assertFalse("Third column should not be sorted", grid
  46. .getHeaderCell(0, 2).getAttribute("class").contains("sort-"));
  47. assertRow(grid, 0, "b", "1", true);
  48. assertRow(grid, 1, "a", "2", true);
  49. assertRow(grid, 2, "c", "3", false);
  50. assertRow(grid, 3, "a", "4", true);
  51. assertRow(grid, 4, "b", "5", false);
  52. assertRow(grid, 5, "a", "6", false);
  53. assertRow(grid, 6, "c", "7", false);
  54. grid.getHeaderCell(0, 2).click();
  55. assertFalse("First column should not be sorted", grid
  56. .getHeaderCell(0, 0).getAttribute("class").contains("sort-"));
  57. assertFalse("Second column should not be sorted", grid
  58. .getHeaderCell(0, 1).getAttribute("class").contains("sort-"));
  59. assertTrue("Third column should be sorted ascending",
  60. grid.getHeaderCell(0, 2).getAttribute("class")
  61. .contains("sort-asc"));
  62. assertRow(grid, 0, "b", "5", false);
  63. assertRow(grid, 1, "c", "3", false);
  64. assertRow(grid, 2, "a", "6", false);
  65. assertRow(grid, 3, "c", "7", false);
  66. assertRow(grid, 4, "a", "4", true);
  67. assertRow(grid, 5, "a", "2", true);
  68. assertRow(grid, 6, "b", "1", true);
  69. }
  70. @Test
  71. public void lazyLoading() throws InterruptedException {
  72. openTestURL();
  73. $(ButtonElement.class).first().click();
  74. GridElement grid = $(GridElement.class).first();
  75. assertRow(grid, 0, "a", "4", true);
  76. assertRow(grid, 1, "b", "5", false);
  77. assertRow(grid, 2, "c", "3", false);
  78. assertRow(grid, 3, "a", "6", false);
  79. assertRow(grid, 4, "a", "2", true);
  80. assertRow(grid, 5, "c", "7", false);
  81. assertRow(grid, 6, "b", "1", true);
  82. grid.getHeaderCell(0, 0).click();
  83. assertTrue("First column should be sorted ascending",
  84. grid.getHeaderCell(0, 0).getAttribute("class")
  85. .contains("sort-asc"));
  86. assertFalse("Second column should not be sorted", grid
  87. .getHeaderCell(0, 1).getAttribute("class").contains("sort-"));
  88. assertFalse("Third column should not be sorted", grid
  89. .getHeaderCell(0, 2).getAttribute("class").contains("sort-"));
  90. assertRow(grid, 0, "a", "4", true);
  91. assertRow(grid, 1, "a", "6", false);
  92. assertRow(grid, 2, "a", "2", true);
  93. assertRow(grid, 3, "b", "5", false);
  94. assertRow(grid, 4, "b", "1", true);
  95. assertRow(grid, 5, "c", "3", false);
  96. assertRow(grid, 6, "c", "7", false);
  97. grid.getHeaderCell(0, 1).click();
  98. assertFalse("First column should not be sorted", grid
  99. .getHeaderCell(0, 0).getAttribute("class").contains("sort-"));
  100. assertTrue("Second column should be sorted ascending",
  101. grid.getHeaderCell(0, 1).getAttribute("class")
  102. .contains("sort-asc"));
  103. assertFalse("Third column should not be sorted", grid
  104. .getHeaderCell(0, 2).getAttribute("class").contains("sort-"));
  105. assertRow(grid, 0, "b", "1", true);
  106. assertRow(grid, 1, "a", "2", true);
  107. assertRow(grid, 2, "c", "3", false);
  108. assertRow(grid, 3, "a", "4", true);
  109. assertRow(grid, 4, "b", "5", false);
  110. assertRow(grid, 5, "a", "6", false);
  111. assertRow(grid, 6, "c", "7", false);
  112. grid.getHeaderCell(0, 2).click();
  113. assertFalse("First column should not be sorted", grid
  114. .getHeaderCell(0, 0).getAttribute("class").contains("sort-"));
  115. assertTrue("Second column should be sorted ascending",
  116. grid.getHeaderCell(0, 1).getAttribute("class")
  117. .contains("sort-asc"));
  118. assertFalse("Third column should not be sorted", grid
  119. .getHeaderCell(0, 2).getAttribute("class").contains("sort-"));
  120. assertRow(grid, 0, "b", "1", true);
  121. assertRow(grid, 1, "a", "2", true);
  122. assertRow(grid, 2, "c", "3", false);
  123. assertRow(grid, 3, "a", "4", true);
  124. assertRow(grid, 4, "b", "5", false);
  125. assertRow(grid, 5, "a", "6", false);
  126. assertRow(grid, 6, "c", "7", false);
  127. }
  128. private void assertRow(GridElement grid, int row, Object... values) {
  129. for (int col = 0; col < values.length; col++) {
  130. assertEquals(String.valueOf(values[col]),
  131. grid.getCell(row, col).getText());
  132. }
  133. }
  134. }