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.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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.TableElement;
  9. import com.vaadin.testbench.elements.ButtonElement;
  10. import com.vaadin.tests.tb3.MultiBrowserTest;
  11. public class DisabledSortingTableTest extends MultiBrowserTest {
  12. Class<?> uiClass;
  13. @Override
  14. protected 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. private void sortFirstColumnAscending() {
  29. getFirstColumnHeader().click();
  30. waitUntilHeaderHasExpectedClass("v-table-header-cell-asc");
  31. }
  32. private TestBenchElement getFirstColumnHeader() {
  33. return getTable().getHeaderCell(1);
  34. }
  35. private TableElement getTable() {
  36. return $(TableElement.class).first();
  37. }
  38. private void assertThatFirstCellHasText(String text) {
  39. assertThat(getTable().getCell(0, 0).getText(), is(text));
  40. }
  41. private void sortByEmptyArray() {
  42. $(ButtonElement.class).caption("Sort by empty array").first().click();
  43. waitUntilHeaderHasExpectedClass("v-table-header-cell");
  44. }
  45. private void disableSorting() {
  46. $(ButtonElement.class).caption("Disable sorting").first().click();
  47. }
  48. protected void waitUntilHeaderHasExpectedClass(final String className) {
  49. final TestBenchElement header = getFirstColumnHeader();
  50. waitUntil(new ExpectedCondition<Boolean>() {
  51. @Override
  52. public Boolean apply(WebDriver input) {
  53. return header.getAttribute("class").contains(className);
  54. }
  55. @Override
  56. public String toString() {
  57. // Timed out after 10 seconds waiting for ...
  58. return String.format("header to get class name '%s'",
  59. className);
  60. }
  61. });
  62. }
  63. }