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.

GridEditorEnableDisableTest.java 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package com.vaadin.tests.components.grid;
  2. import com.vaadin.testbench.annotations.RunLocally;
  3. import com.vaadin.testbench.elements.ButtonElement;
  4. import com.vaadin.testbench.elements.GridElement;
  5. import com.vaadin.testbench.elements.TextFieldElement;
  6. import com.vaadin.testbench.parallel.Browser;
  7. import com.vaadin.testbench.parallel.TestCategory;
  8. import com.vaadin.tests.tb3.SingleBrowserTest;
  9. import org.junit.Test;
  10. import org.openqa.selenium.Keys;
  11. import org.openqa.selenium.interactions.Actions;
  12. import static org.junit.Assert.assertTrue;
  13. @TestCategory("grid")
  14. public class GridEditorEnableDisableTest extends SingleBrowserTest {
  15. @Override
  16. public void setup() throws Exception {
  17. super.setup();
  18. openTestURL();
  19. }
  20. @Test
  21. public void testEnabledEditor() {
  22. GridElement grid = $(GridElement.class).first();
  23. grid.getCell(0, 0).doubleClick();
  24. assertTrue("Editor must work when it is enabled!",
  25. isElementPresent(TextFieldElement.class));
  26. }
  27. @Test
  28. public void testDisabledEditor() {
  29. GridElement grid = $(GridElement.class).first();
  30. ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
  31. .first();
  32. disableButton.click();
  33. grid.getCell(0, 0).doubleClick();
  34. assertTrue("Editor must not work when it is disabled!",
  35. !isElementPresent(TextFieldElement.class));
  36. }
  37. @Test
  38. public void testCancelAndDisableEditorWhenEditing() {
  39. GridElement grid = $(GridElement.class).first();
  40. ButtonElement cancelAndDisableButton = $(ButtonElement.class)
  41. .caption("Cancel & Disable").first();
  42. grid.getCell(0, 0).doubleClick();
  43. cancelAndDisableButton.click();
  44. assertTrue("Editing must be canceled after calling cancel method!",
  45. !isElementPresent(TextFieldElement.class));
  46. grid.getCell(0, 0).doubleClick();
  47. assertTrue("Editor must not work when it is disabled!",
  48. !isElementPresent(TextFieldElement.class));
  49. }
  50. @Test
  51. public void testDisableEditorAfterCancelEditing() {
  52. GridElement grid = $(GridElement.class).first();
  53. ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
  54. .first();
  55. grid.getCell(0, 0).doubleClick();
  56. new Actions(getDriver()).sendKeys(Keys.ESCAPE).perform();
  57. assertTrue("Editing must be canceled after pressing Escape key!",
  58. !isElementPresent(TextFieldElement.class));
  59. disableButton.click();
  60. grid.getCell(0, 0).doubleClick();
  61. assertTrue("Editor must not work when it is disabled!",
  62. !isElementPresent(TextFieldElement.class));
  63. }
  64. @Test
  65. public void testReenableEditorAfterCancelEditing() {
  66. GridElement grid = $(GridElement.class).first();
  67. ButtonElement cancelAndDisableButton = $(ButtonElement.class)
  68. .caption("Cancel & Disable").first();
  69. ButtonElement enableButton = $(ButtonElement.class).caption("Enable")
  70. .first();
  71. grid.getCell(0, 0).doubleClick();
  72. cancelAndDisableButton.click();
  73. enableButton.click();
  74. grid.getCell(0, 0).doubleClick();
  75. assertTrue("Editor must work after re-enabling!",
  76. isElementPresent(TextFieldElement.class));
  77. }
  78. @Test
  79. public void testEnableAndEditRow() {
  80. ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
  81. .first();
  82. ButtonElement enableAndEditRowButton = $(ButtonElement.class)
  83. .caption("Enable & Edit Row").first();
  84. disableButton.click();
  85. enableAndEditRowButton.click();
  86. assertTrue("Editor must be open after calling editRow method!",
  87. isElementPresent(TextFieldElement.class));
  88. }
  89. }