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.

GridDetailsWidthTest.java 2.4KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.assertEquals;
  3. import static org.junit.Assert.assertFalse;
  4. import java.util.List;
  5. import org.junit.Test;
  6. import org.openqa.selenium.By;
  7. import org.openqa.selenium.WebElement;
  8. import com.vaadin.testbench.elements.GridElement;
  9. import com.vaadin.testbench.elements.GridElement.GridCellElement;
  10. import com.vaadin.testbench.parallel.TestCategory;
  11. import com.vaadin.tests.tb3.SingleBrowserTest;
  12. @TestCategory("grid")
  13. public class GridDetailsWidthTest extends SingleBrowserTest {
  14. @Test
  15. public void testSpacerTDsHaveNoWidth() {
  16. openTestURL();
  17. GridElement grid = $(GridElement.class).first();
  18. // Open all details rows
  19. grid.getCell(0, 0).click();
  20. checkSpacersHaveNoWidths(1);
  21. grid.getCell(1, 0).click();
  22. checkSpacersHaveNoWidths(2);
  23. grid.getCell(2, 0).click();
  24. checkSpacersHaveNoWidths(3);
  25. // Close all details rows
  26. grid.getCell(2, 0).click();
  27. checkSpacersHaveNoWidths(2);
  28. grid.getCell(1, 0).click();
  29. checkSpacersHaveNoWidths(1);
  30. grid.getCell(0, 0).click();
  31. checkSpacersHaveNoWidths(0);
  32. }
  33. private void checkSpacersHaveNoWidths(int expectedCount) {
  34. List<WebElement> spacers = findElements(By.className("v-grid-spacer"));
  35. assertEquals("Wrong amount of spacers visible.", expectedCount,
  36. spacers.size());
  37. for (WebElement spacer : spacers) {
  38. assertFalse("Spacer element had an unexpected width set.",
  39. spacer.findElement(By.tagName("td")).getAttribute("style")
  40. .contains("width"));
  41. }
  42. }
  43. @Test
  44. public void testDetailsOnSort() {
  45. openTestURL();
  46. GridElement grid = $(GridElement.class).first();
  47. // Open a details rows
  48. grid.getCell(0, 0).click();
  49. GridCellElement cell = grid.getHeaderCell(0, 0);
  50. cell.click();
  51. cell.click();
  52. cell = grid.getCell(2, 0);
  53. WebElement spacer = findElement(By.className("v-grid-spacer"));
  54. assertEquals("Grid was not sorted correctly", "Hello 0",
  55. cell.getText());
  56. assertEquals("Details row was not in correct location",
  57. cell.getLocation().getY() + cell.getSize().getHeight(),
  58. spacer.getLocation().getY(), 2);
  59. }
  60. }