Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

GridHeaderFooterComponentsTest.java 4.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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.assertNotNull;
  5. import static org.junit.Assert.assertNull;
  6. import java.util.List;
  7. import org.junit.Before;
  8. import org.junit.Test;
  9. import com.vaadin.testbench.By;
  10. import com.vaadin.testbench.elements.ButtonElement;
  11. import com.vaadin.testbench.elements.GridElement;
  12. import com.vaadin.testbench.elements.GridElement.GridCellElement;
  13. import com.vaadin.testbench.elements.TextFieldElement;
  14. import com.vaadin.tests.tb3.SingleBrowserTest;
  15. public class GridHeaderFooterComponentsTest extends SingleBrowserTest {
  16. @Before
  17. public void setUp() {
  18. setDebug(true);
  19. openTestURL();
  20. }
  21. @Test
  22. public void hideAndShowComponentsInHeader() {
  23. GridElement grid = $(GridElement.class).first();
  24. int filterRow = 2;
  25. assertNull(getHeaderElement(grid, filterRow, 1));
  26. assertNotNull(getHeaderElement(grid, filterRow, 2));
  27. assertNotNull(getHeaderElement(grid, filterRow, 3));
  28. // Show (1,2)
  29. grid.getHeaderCell(1, 1).$(ButtonElement.class).first().click();
  30. TextFieldElement textfield = getHeaderElement(grid, filterRow, 1);
  31. assertNotNull(textfield);
  32. assertEquals("Filter: string", textfield.getValue());
  33. textfield.setValue("foo");
  34. assertEquals("1. value change for field in string to foo",
  35. getLogRow(0));
  36. assertNoErrorNotifications();
  37. }
  38. private TextFieldElement getHeaderElement(GridElement grid, int row,
  39. int col) {
  40. GridCellElement cell = grid.getHeaderCell(row, col);
  41. List<TextFieldElement> all = cell.$(TextFieldElement.class).all();
  42. if (all.isEmpty()) {
  43. return null;
  44. } else if (all.size() == 1) {
  45. return all.get(0);
  46. } else {
  47. throw new RuntimeException(
  48. "Multiple elements found in the header cell at " + row + ","
  49. + col);
  50. }
  51. }
  52. @Test
  53. public void hideAndShowComponentsInFooter() {
  54. GridElement grid = $(GridElement.class).first();
  55. int filterRow = 0;
  56. assertNull(getFooterElement(grid, filterRow, 1));
  57. assertNotNull(getFooterElement(grid, filterRow, 2));
  58. assertNotNull(getFooterElement(grid, filterRow, 3));
  59. // Show (1,2)
  60. grid.getFooterCell(1, 1).$(ButtonElement.class).first().click();
  61. TextFieldElement textfield = getFooterElement(grid, filterRow, 1);
  62. assertNotNull(textfield);
  63. assertEquals("Filter: string", textfield.getValue());
  64. textfield.setValue("foo");
  65. assertEquals("1. value change for field in string to foo",
  66. getLogRow(0));
  67. assertNoErrorNotifications();
  68. }
  69. private TextFieldElement getFooterElement(GridElement grid, int row,
  70. int col) {
  71. GridCellElement cell = grid.getFooterCell(row, col);
  72. List<TextFieldElement> all = cell.$(TextFieldElement.class).all();
  73. if (all.isEmpty()) {
  74. return null;
  75. } else if (all.size() == 1) {
  76. return all.get(0);
  77. } else {
  78. throw new RuntimeException(
  79. "Multiple elements found in the footer cell at " + row + ","
  80. + col);
  81. }
  82. }
  83. @Test
  84. public void testRemoveAllHeadersAndFooters() {
  85. openTestURL();
  86. for (int i = 2; i >= 0; --i) {
  87. // Remove Header
  88. $(GridElement.class).first().getHeaderCell(i, 0)
  89. .$(ButtonElement.class).first().click();
  90. assertFalse("Header " + i + " should not be present.",
  91. $(GridElement.class).first()
  92. .isElementPresent(By.vaadin("#header[" + i + "]")));
  93. // Remove Footer
  94. $(GridElement.class).first().getFooterCell(i, 0)
  95. .$(ButtonElement.class).first().click();
  96. assertFalse("Footer " + i + " should not be present.",
  97. $(GridElement.class).first()
  98. .isElementPresent(By.vaadin("#footer[" + i + "]")));
  99. }
  100. assertNoErrorNotifications();
  101. }
  102. }