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.

GridHeaderFormatChangeTest.java 4.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.assertFalse;
  3. import static org.junit.Assert.assertTrue;
  4. import org.junit.Test;
  5. import org.openqa.selenium.By;
  6. import com.vaadin.testbench.elements.ButtonElement;
  7. import com.vaadin.testbench.elements.GridElement;
  8. import com.vaadin.testbench.parallel.TestCategory;
  9. import com.vaadin.tests.tb3.MultiBrowserTest;
  10. @TestCategory("grid")
  11. public class GridHeaderFormatChangeTest extends MultiBrowserTest {
  12. @Test
  13. public void testHeaderRetainsSelectAllForColumnRemoval() {
  14. openTestURL();
  15. GridElement grid = $(GridElement.class).first();
  16. // Assert that we do not have the select all checkbox
  17. assertTrue("Found input in header even though none should exist.",
  18. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  19. // Set grid into multiselection mode
  20. toggleSelectionMode();
  21. // Assert that we now have a select all checkbox in the header
  22. assertFalse("Expected one input field in header",
  23. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  24. // Hide the firstName column from the grid.
  25. toggleFirstName();
  26. // Assert that we still have the select all checkbox in the header.
  27. assertFalse("Header was missing checkbox after hiding column",
  28. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  29. // Show the firstName column.
  30. toggleFirstName();
  31. // Assert that we still have the select all checkbox in the header.
  32. assertFalse("Header was missing checkbox after bringing back column",
  33. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  34. }
  35. @Test
  36. public void testHeaderRetainsSelectAllForJoinColumnAdd() {
  37. openTestURL();
  38. GridElement grid = $(GridElement.class).first();
  39. // Assert that we do not have the select all checkbox
  40. assertTrue("Found input in header even though none should exist.",
  41. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  42. // Set grid into multiselection mode
  43. toggleSelectionMode();
  44. // Assert that we now have a select all checkbox in the header
  45. assertFalse("Expected one input field in header",
  46. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  47. // Add Join columns header
  48. toggleJoin();
  49. // Assert that we still have the select all checkbox in the header.
  50. assertFalse("Header was missing checkbox after hiding column",
  51. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  52. // remove Join Columns header
  53. toggleJoin();
  54. // Assert that we still have the select all checkbox in the header.
  55. assertFalse("Header was missing checkbox after bringing back column",
  56. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  57. }
  58. @Test
  59. public void selectAllShouldKeepState() {
  60. openTestURL();
  61. GridElement grid = $(GridElement.class).first();
  62. // Assert that we do not have the select all checkbox
  63. assertTrue("Found input in header even though none should exist.",
  64. grid.getHeader().findElements(By.tagName("input")).isEmpty());
  65. // Set grid into multiselection mode
  66. toggleSelectionMode();
  67. // Assert that we now have a select all checkbox in the header
  68. assertFalse("Should not be selected after adding",
  69. grid.getHeader().findElement(By.tagName("input")).isSelected());
  70. grid.getHeader().findElement(By.tagName("input")).click();
  71. // Assert that checkbox is checked
  72. assertSelectAllChecked(
  73. "Not selected even though we just clicked selection", grid);
  74. // Hide the firstName column from the grid.
  75. toggleFirstName();
  76. // Assert that checkbox is still checked
  77. assertSelectAllChecked("Selection disappeared after removing column",
  78. grid);
  79. // Show the firstName column.
  80. toggleFirstName();
  81. // Assert that checkbox is still checked
  82. assertSelectAllChecked("Selection disappeared after adding column",
  83. grid);
  84. }
  85. private void assertSelectAllChecked(String message, GridElement grid) {
  86. assertTrue(message,
  87. grid.getHeader().findElement(By.tagName("input")).isSelected());
  88. }
  89. private void toggleSelectionMode() {
  90. $(ButtonElement.class).id("selection_mode").click();
  91. }
  92. private void toggleFirstName() {
  93. $(ButtonElement.class).id("show_hide").click();
  94. }
  95. private void toggleJoin() {
  96. $(ButtonElement.class).id("join").click();
  97. }
  98. }