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.

GridHeaderStyleNamesTest.java 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. package com.vaadin.tests.components.grid;
  2. import static org.junit.Assert.fail;
  3. import org.junit.Before;
  4. import org.junit.Test;
  5. import org.openqa.selenium.WebElement;
  6. import com.vaadin.testbench.elements.ButtonElement;
  7. import com.vaadin.testbench.elements.GridElement;
  8. import com.vaadin.testbench.elements.GridElement.GridCellElement;
  9. import com.vaadin.testbench.parallel.TestCategory;
  10. import com.vaadin.tests.tb3.SingleBrowserTest;
  11. @TestCategory("grid")
  12. public class GridHeaderStyleNamesTest extends SingleBrowserTest {
  13. private GridElement grid;
  14. @Before
  15. public void findGridCells() {
  16. openTestURL();
  17. grid = $(GridElement.class).first();
  18. }
  19. private GridCellElement getMergedHeaderCell() {
  20. return grid.getHeaderCell(0, 3);
  21. }
  22. private GridCellElement getNameFooterCell() {
  23. return grid.getFooterCell(0, 2);
  24. }
  25. @Test
  26. public void cellStyleNamesCanBeAddedAndRemoved() {
  27. ButtonElement toggleStyles = $(ButtonElement.class)
  28. .caption("Toggle styles").first();
  29. assertStylesSet(true);
  30. toggleStyles.click();
  31. assertStylesSet(false);
  32. toggleStyles.click();
  33. assertStylesSet(true);
  34. }
  35. @Test
  36. public void rowStyleNamesCanBeAddedAndRemoved() {
  37. ButtonElement toggleStyles = $(ButtonElement.class)
  38. .caption("Toggle styles").first();
  39. assertRowStylesSet(true);
  40. toggleStyles.click();
  41. assertRowStylesSet(false);
  42. toggleStyles.click();
  43. assertRowStylesSet(true);
  44. }
  45. private void assertStylesSet(boolean set) {
  46. if (set) {
  47. assertHasStyleName(
  48. "Footer cell should have the assigned 'name-footer' class name",
  49. getNameFooterCell(), "name-footer");
  50. assertHasStyleName(
  51. "Header cell should have the assigned 'name' class name",
  52. getAgeHeaderCell(), "name");
  53. assertHasStyleName(
  54. "The merged header cell should have the assigned 'city-country' class name",
  55. getMergedHeaderCell(), "city-country");
  56. } else {
  57. assertHasNotStyleName(
  58. "Footer cell should not have the removed 'name-footer' class name",
  59. getNameFooterCell(), "name-footer");
  60. assertHasNotStyleName(
  61. "Header cell should not have the removed 'name' class name",
  62. getAgeHeaderCell(), "name");
  63. assertHasNotStyleName(
  64. "Ther merged header cell should not have the removed 'city-country' class name",
  65. getMergedHeaderCell(), "city-country");
  66. }
  67. assertHasStyleName(
  68. "The default v-grid-cell style name should not be removed from the header cell",
  69. getAgeHeaderCell(), "v-grid-cell");
  70. assertHasStyleName(
  71. "The default v-grid-cell style name should not be removed from the footer cell",
  72. getNameFooterCell(), "v-grid-cell");
  73. assertHasStyleName(
  74. "The default v-grid-cell style name should not be removed from the merged header cell",
  75. getMergedHeaderCell(), "v-grid-cell");
  76. }
  77. private void assertRowStylesSet(boolean set) {
  78. if (set) {
  79. assertHasStyleName(
  80. "Footer row should have the assigned 'custom-row' class name",
  81. getFooterRow(), "custom-row");
  82. assertHasStyleName(
  83. "Header row should have the assigned 'custom-row' class name",
  84. getHeaderRow(), "custom-row");
  85. } else {
  86. assertHasNotStyleName(
  87. "Footer row should not have the removed 'custom-row' class name",
  88. getFooterRow(), "custom-row");
  89. assertHasNotStyleName(
  90. "Header row should not have the removed 'custom-row' class name",
  91. getHeaderRow(), "custom-row");
  92. }
  93. assertHasStyleName(
  94. "The default v-grid-row style name should not be removed from the header row",
  95. getHeaderRow(), "v-grid-row");
  96. assertHasStyleName(
  97. "The default v-grid-row style name should not be removed from the footer row",
  98. getFooterRow(), "v-grid-row");
  99. }
  100. private WebElement getAgeHeaderCell() {
  101. return grid.getHeaderCell(1, 2);
  102. }
  103. private WebElement getFooterRow() {
  104. return grid.getFooterRow(0);
  105. }
  106. private WebElement getHeaderRow() {
  107. return grid.getHeaderRow(0);
  108. }
  109. private void assertHasStyleName(String message, WebElement element,
  110. String stylename) {
  111. if (!hasCssClass(element, stylename)) {
  112. fail(message);
  113. }
  114. }
  115. private void assertHasNotStyleName(String message, WebElement element,
  116. String stylename) {
  117. if (hasCssClass(element, stylename)) {
  118. fail(message);
  119. }
  120. }
  121. }