summaryrefslogtreecommitdiffstats
path: root/uitest/src/test/java
diff options
context:
space:
mode:
authorMehdi Javan <32511762+mehdi-vaadin@users.noreply.github.com>2018-07-20 10:57:03 +0300
committerTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>2018-07-20 10:57:03 +0300
commita0893716d770b459f2e9d1dfb862f1893442f53d (patch)
tree2cb36a82bc6cce5011ff0b640a0d6ca52f0fe780 /uitest/src/test/java
parentde42456db1d81d84388583dd1ad0d3ac85c298ba (diff)
downloadvaadin-framework-a0893716d770b459f2e9d1dfb862f1893442f53d.tar.gz
vaadin-framework-a0893716d770b459f2e9d1dfb862f1893442f53d.zip
Fix Grid Editor closing and disabling at same time (#11078)
Fixes #10688
Diffstat (limited to 'uitest/src/test/java')
-rw-r--r--uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorEnableDisableTest.java113
1 files changed, 113 insertions, 0 deletions
diff --git a/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorEnableDisableTest.java b/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorEnableDisableTest.java
new file mode 100644
index 0000000000..cf37db957c
--- /dev/null
+++ b/uitest/src/test/java/com/vaadin/tests/components/grid/GridEditorEnableDisableTest.java
@@ -0,0 +1,113 @@
+package com.vaadin.tests.components.grid;
+
+import com.vaadin.testbench.annotations.RunLocally;
+import com.vaadin.testbench.elements.ButtonElement;
+import com.vaadin.testbench.elements.GridElement;
+import com.vaadin.testbench.elements.TextFieldElement;
+import com.vaadin.testbench.parallel.Browser;
+import com.vaadin.testbench.parallel.TestCategory;
+import com.vaadin.tests.tb3.SingleBrowserTest;
+import org.junit.Test;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.interactions.Actions;
+
+import static org.junit.Assert.assertTrue;
+
+@TestCategory("grid")
+public class GridEditorEnableDisableTest extends SingleBrowserTest {
+ @Override
+ public void setup() throws Exception {
+ super.setup();
+
+ openTestURL();
+ }
+
+ @Test
+ public void testEnabledEditor() {
+ GridElement grid = $(GridElement.class).first();
+ grid.getCell(0, 0).doubleClick();
+
+ assertTrue("Editor must work when it is enabled!",
+ isElementPresent(TextFieldElement.class));
+ }
+
+ @Test
+ public void testDisabledEditor() {
+ GridElement grid = $(GridElement.class).first();
+ ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
+ .first();
+
+ disableButton.click();
+ grid.getCell(0, 0).doubleClick();
+
+ assertTrue("Editor must not work when it is disabled!",
+ !isElementPresent(TextFieldElement.class));
+ }
+
+ @Test
+ public void testCancelAndDisableEditorWhenEditing() {
+ GridElement grid = $(GridElement.class).first();
+ ButtonElement cancelAndDisableButton = $(ButtonElement.class)
+ .caption("Cancel & Disable").first();
+
+ grid.getCell(0, 0).doubleClick();
+ cancelAndDisableButton.click();
+
+ assertTrue("Editing must be canceled after calling cancel method!",
+ !isElementPresent(TextFieldElement.class));
+
+ grid.getCell(0, 0).doubleClick();
+ assertTrue("Editor must not work when it is disabled!",
+ !isElementPresent(TextFieldElement.class));
+ }
+
+ @Test
+ public void testDisableEditorAfterCancelEditing() {
+ GridElement grid = $(GridElement.class).first();
+ ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
+ .first();
+
+ grid.getCell(0, 0).doubleClick();
+ new Actions(getDriver()).sendKeys(Keys.ESCAPE).perform();
+
+ assertTrue("Editing must be canceled after pressing Escape key!",
+ !isElementPresent(TextFieldElement.class));
+
+ disableButton.click();
+ grid.getCell(0, 0).doubleClick();
+
+ assertTrue("Editor must not work when it is disabled!",
+ !isElementPresent(TextFieldElement.class));
+ }
+
+ @Test
+ public void testReenableEditorAfterCancelEditing() {
+ GridElement grid = $(GridElement.class).first();
+ ButtonElement cancelAndDisableButton = $(ButtonElement.class)
+ .caption("Cancel & Disable").first();
+ ButtonElement enableButton = $(ButtonElement.class).caption("Enable")
+ .first();
+
+ grid.getCell(0, 0).doubleClick();
+ cancelAndDisableButton.click();
+ enableButton.click();
+ grid.getCell(0, 0).doubleClick();
+
+ assertTrue("Editor must work after re-enabling!",
+ isElementPresent(TextFieldElement.class));
+ }
+
+ @Test
+ public void testEnableAndEditRow() {
+ ButtonElement disableButton = $(ButtonElement.class).caption("Disable")
+ .first();
+ ButtonElement enableAndEditRowButton = $(ButtonElement.class)
+ .caption("Enable & Edit Row").first();
+
+ disableButton.click();
+ enableAndEditRowButton.click();
+
+ assertTrue("Editor must be open after calling editRow method!",
+ isElementPresent(TextFieldElement.class));
+ }
+}