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.

DisabledSortingTableTest.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package com.vaadin.tests.components.table;
  2. import static org.hamcrest.CoreMatchers.is;
  3. import static org.hamcrest.MatcherAssert.assertThat;
  4. import org.junit.Test;
  5. import org.openqa.selenium.WebDriver;
  6. import org.openqa.selenium.support.ui.ExpectedCondition;
  7. import com.vaadin.testbench.TestBenchElement;
  8. import com.vaadin.testbench.elements.ButtonElement;
  9. import com.vaadin.testbench.elements.TableElement;
  10. import com.vaadin.tests.tb3.MultiBrowserTest;
  11. public class DisabledSortingTableTest extends MultiBrowserTest {
  12. Class<?> uiClass;
  13. @Override
  14. protected java.lang.Class<?> getUIClass() {
  15. return uiClass;
  16. };
  17. @Test
  18. public void sortingByEmptyArrayShouldClearSortingIndicator() {
  19. uiClass = DisabledSortingTable.class;
  20. openTestURL();
  21. assertThatFirstCellHasText("0");
  22. sortFirstColumnAscending();
  23. assertThatFirstCellHasText("4");
  24. disableSorting();
  25. sortByEmptyArray();
  26. assertThatFirstCellHasText("4");
  27. }
  28. @Test
  29. public void emptySortingClearsIndicatorAndResetsSortingWithSQLContainer() {
  30. uiClass = DisabledSortingTableSqlContainer.class;
  31. openTestURL();
  32. assertThatFirstCellHasText("1");
  33. sortFirstColumnAscending();
  34. assertThatFirstCellHasText("2");
  35. disableSorting();
  36. sortByEmptyArray();
  37. assertThatFirstCellHasText("1");
  38. }
  39. private void sortFirstColumnAscending() {
  40. getFirstColumnHeader().click();
  41. waitUntilHeaderHasExpectedClass("v-table-header-cell-asc");
  42. }
  43. private TestBenchElement getFirstColumnHeader() {
  44. return getTable().getHeaderCell(1);
  45. }
  46. private TableElement getTable() {
  47. return $(TableElement.class).first();
  48. }
  49. private void assertThatFirstCellHasText(String text) {
  50. assertThat(getTable().getCell(0, 0).getText(), is(text));
  51. }
  52. private void sortByEmptyArray() {
  53. $(ButtonElement.class).caption("Sort by empty array").first().click();
  54. waitUntilHeaderHasExpectedClass("v-table-header-cell");
  55. }
  56. private void disableSorting() {
  57. $(ButtonElement.class).caption("Disable sorting").first().click();
  58. }
  59. protected void waitUntilHeaderHasExpectedClass(final String className) {
  60. final TestBenchElement header = getFirstColumnHeader();
  61. waitUntil(new ExpectedCondition<Boolean>() {
  62. @Override
  63. public Boolean apply(WebDriver input) {
  64. return className.equals(header.getAttribute("class"));
  65. }
  66. @Override
  67. public String toString() {
  68. // Timed out after 10 seconds waiting for ...
  69. return String
  70. .format("header to get class name '%s'", className);
  71. }
  72. });
  73. }
  74. }