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.

GridAriaRowcountTest.java 2.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.assertTrue;
  3. import org.junit.Test;
  4. import com.vaadin.testbench.elements.ButtonElement;
  5. import com.vaadin.testbench.elements.GridElement;
  6. import com.vaadin.tests.tb3.SingleBrowserTest;
  7. /**
  8. * @author Vaadin Ltd
  9. */
  10. public class GridAriaRowcountTest extends SingleBrowserTest {
  11. private GridElement grid;
  12. @Test
  13. public void checkGridAriaRowcount() {
  14. openTestURL();
  15. grid = $(GridElement.class).first();
  16. // default grid should contain at least one of each role
  17. String gridHtml = grid.getHTML();
  18. assertTrue("Grid should contain a role=\"rowheader\"",
  19. gridHtml.contains("role=\"rowheader\""));
  20. assertTrue("Grid should contain a role=\"columnheader\"",
  21. gridHtml.contains("role=\"columnheader\""));
  22. assertTrue("Grid should contain a role=\"row\"",
  23. gridHtml.contains("role=\"row\""));
  24. assertTrue("Grid should contain a role=\"gridcell\"",
  25. gridHtml.contains("role=\"gridcell\""));
  26. assertTrue("Grid should contain a role=\"rowgroup\"",
  27. gridHtml.contains("role=\"rowgroup\""));
  28. // default with 1 header row and 2 body rows.
  29. assertTrue("Grid should have 3 rows", containsRows(3));
  30. $(ButtonElement.class).caption("addFooter").first().click();
  31. // 1 header row, 2 body rows and 1 footer row.
  32. assertTrue("Grid should have 4 rows", containsRows(4));
  33. $(ButtonElement.class).caption("removeFooter").first().click();
  34. // 1 header row and 2 body rows.
  35. assertTrue("Grid should have 3 rows", containsRows(3));
  36. $(ButtonElement.class).caption("addHeader").first().click();
  37. // 2 header row and 2 body rows.
  38. assertTrue("Grid should have 4 rows", containsRows(4));
  39. $(ButtonElement.class).caption("removeHeader").first().click();
  40. // 1 header row and 2 body rows.
  41. assertTrue("Grid should have 3 rows", containsRows(3));
  42. $(ButtonElement.class).caption("setItemsTo3").first().click();
  43. // 1 header row and 3 body rows.
  44. assertTrue("Grid should have 4 rows", containsRows(4));
  45. $(ButtonElement.class).caption("setItemsTo6").first().click();
  46. // 1 header row and 6 body rows.
  47. assertTrue("Grid should have 7 rows", containsRows(7));
  48. $(ButtonElement.class).caption("updateAll").first().click();
  49. // 2 header rows, 4 body rows and 1 footer row.
  50. assertTrue("Grid should have 7 rows", containsRows(7));
  51. }
  52. private boolean containsRows(int rowcount) {
  53. return grid.getHTML()
  54. .contains("aria-rowcount=\"" + String.valueOf(rowcount) + "\"");
  55. }
  56. }