]> source.dussan.org Git - vaadin-framework.git/commitdiff
Added support for getValue and setValue into TestBench RichTextAreaElement (#10659)
authorAnastasia Smirnova <anasmi@utu.fi>
Tue, 10 Apr 2018 10:51:51 +0000 (13:51 +0300)
committerIlia Motornyi <elmot@vaadin.com>
Tue, 10 Apr 2018 10:51:51 +0000 (13:51 +0300)
testbench-api/src/main/java/com/vaadin/testbench/elements/RichTextAreaElement.java
uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java
uitest/src/main/java/com/vaadin/tests/elements/abstracttextfield/AbstractTextElementSetValue.java
uitest/src/test/java/com/vaadin/tests/elements/ComponentElementGetValueTest.java
uitest/src/test/java/com/vaadin/tests/elements/abstracttextfield/AbstractTextElementSetValueTest.java

index 2728468a3e4e8a08279d51eaa6ba038eb28ee6b7..d6ce571f01d65c584ec8a39049f0053e449e3fb8 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.vaadin.testbench.elements;
 
+import org.openqa.selenium.JavascriptExecutor;
 import org.openqa.selenium.WebElement;
 
 import com.vaadin.testbench.By;
@@ -33,4 +34,44 @@ public class RichTextAreaElement extends AbstractFieldElement {
     public WebElement getEditorIframe() {
         return findElement(By.tagName("iframe"));
     }
+
+    /**
+     * Return value of the field element.
+     *
+     * @return value of the field element
+     * @since
+     */
+    public String getValue() {
+        JavascriptExecutor executor = (JavascriptExecutor) getDriver();
+        return executor.executeScript(
+                "return arguments[0].contentDocument.body.innerHTML",
+                getEditorIframe()).toString();
+    }
+
+    /**
+     * Set value of the field element.
+     *
+     * @param chars
+     *            new value of the field
+     * @since
+     */
+    public void setValue(CharSequence chars) throws ReadOnlyException {
+        if (isReadOnly()) {
+            throw new ReadOnlyException();
+        }
+        JavascriptExecutor executor = (JavascriptExecutor) getDriver();
+        executor.executeScript("var bodyE=arguments[0].contentDocument.body;\n"
+                + "bodyE.innerHTML=arguments[1]; \n"
+                + "var ev = document.createEvent('HTMLEvents');\n"
+                + "ev.initEvent('change', true, false); \n"
+                + "bodyE.dispatchEvent(ev);", getEditorIframe(), chars);
+    }
+
+    @Override
+    public void focus() {
+        waitForVaadin();
+        JavascriptExecutor executor = (JavascriptExecutor) getDriver();
+        executor.executeScript("arguments[0].contentDocument.body.focus();",
+                getEditorIframe());
+    }
 }
index 3c06ae4c111b8626387d18e06c08efc1094d1669..2b00ca7d1d7b6e6f3a93db662a5a22e989b86f6b 100644 (file)
@@ -22,11 +22,13 @@ import com.vaadin.ui.Slider;
 import com.vaadin.ui.TextArea;
 import com.vaadin.ui.TextField;
 import com.vaadin.ui.TwinColSelect;
+import com.vaadin.ui.RichTextArea;
+
 
 /**
  * UI test for getValue() method of components: TextField, TextArea,
  * PasswordField, ComboBox, ListSelect, NativeSelect, OptionGroup, CheckBox,
- * DateField, TwinColSelect
+ * DateField, TwinColSelect, RichTextArea
  *
  * @author Vaadin Ltd
  */
@@ -34,9 +36,8 @@ public class ComponentElementGetValue extends AbstractTestUI {
 
     public static final String TEST_STRING_VALUE = "item 2";
     public static final int TEST_SLIDER_VALUE = 42;
-    public static final float TEST_FLOAT_VALUE = 0.42f;
     public static final LocalDate TEST_DATE_VALUE = LocalDate.now();
-    DateField df;
+    public static final String TESTGET_STRING_VALUE_RICHTEXTAREA = "value 4";
     final Label valueChangeLabel = new Label("Initial value");
 
     // These constants are used to check that change value event was
@@ -105,7 +106,7 @@ public class ComponentElementGetValue extends AbstractTestUI {
                     event -> valueChangeLabel.setValue(value));
             addComponent(field);
         }
-
+        addComponent(createRichTextArea());
         addComponent(createCheckBox());
         addComponent(createSlider());
         addComponent(createDateField());
@@ -137,6 +138,12 @@ public class ComponentElementGetValue extends AbstractTestUI {
         return cb;
     }
 
+    private RichTextArea createRichTextArea() {
+        RichTextArea rta = new RichTextArea();
+        rta.setValue(TESTGET_STRING_VALUE_RICHTEXTAREA);
+        return rta;
+    }
+
     @Override
     protected String getTestDescription() {
         return "Field elements getValue() should return test value";
index 97abfd1be6ce49522a6cc0b39df4e9430936c961..8d724f4bfb967883c3b024cd051dcd969f5e3c14 100644 (file)
@@ -11,6 +11,7 @@ import com.vaadin.ui.Label;
 import com.vaadin.ui.PasswordField;
 import com.vaadin.ui.TextArea;
 import com.vaadin.ui.TextField;
+import com.vaadin.ui.RichTextArea;
 
 public class AbstractTextElementSetValue extends AbstractTestUI {
 
@@ -33,6 +34,7 @@ public class AbstractTextElementSetValue extends AbstractTestUI {
             addValueChangeListener(comps[i], i);
             addComponent(comps[i]);
             addComponent(eventCountLabels[i]);
+            addComponent(createRichTextArea());
 
         }
 
@@ -61,6 +63,12 @@ public class AbstractTextElementSetValue extends AbstractTestUI {
         return df;
     }
 
+    private RichTextArea createRichTextArea() {
+        RichTextArea rta = new RichTextArea();
+        rta.setValue(INITIAL_VALUE);
+        return rta;
+    }
+
     @Override
     protected String getTestDescription() {
         return "Test type method of AbstractTextField components";
index 50c24e289e1ff566fd44eafae37c110986f36b6c..f6f7e7f3c933fe10e595157ebf37358d8c4d1c13 100644 (file)
@@ -6,9 +6,6 @@ import java.time.format.DateTimeFormatter;
 import java.util.Collections;
 import java.util.List;
 
-import org.junit.Before;
-import org.junit.Test;
-
 import com.vaadin.testbench.elements.AbstractTextFieldElement;
 import com.vaadin.testbench.elements.CheckBoxElement;
 import com.vaadin.testbench.elements.CheckBoxGroupElement;
@@ -21,6 +18,10 @@ import com.vaadin.testbench.elements.RadioButtonGroupElement;
 import com.vaadin.testbench.elements.TextAreaElement;
 import com.vaadin.testbench.elements.TextFieldElement;
 import com.vaadin.testbench.elements.TwinColSelectElement;
+import com.vaadin.testbench.elements.RichTextAreaElement;
+import org.junit.Before;
+import org.junit.Test;
+
 import com.vaadin.tests.tb3.MultiBrowserTest;
 
 public class ComponentElementGetValueTest extends MultiBrowserTest {
@@ -115,6 +116,14 @@ public class ComponentElementGetValueTest extends MultiBrowserTest {
         assertEquals(expected, actual);
     }
 
+    @Test
+    public void checkRichTextArea() {
+        RichTextAreaElement elem = $(RichTextAreaElement.class).first();
+        String expected = ComponentElementGetValue.TESTGET_STRING_VALUE_RICHTEXTAREA;
+        String actual = elem.getValue();
+        assertEquals(expected, actual);
+    }
+
     private void checkValue(AbstractTextFieldElement elem) {
         String expected = ComponentElementGetValue.TEST_STRING_VALUE;
         String actual = elem.getValue();
index c65e3e3b6565b388ecfde1fe4a10db0054e3e84b..d89437da60127e3b1156647e93b72397d6a2022e 100644 (file)
@@ -2,15 +2,16 @@ package com.vaadin.tests.elements.abstracttextfield;
 
 import static org.junit.Assert.assertEquals;
 
-import org.junit.Before;
-import org.junit.Test;
-
 import com.vaadin.testbench.elements.AbstractTextFieldElement;
 import com.vaadin.testbench.elements.DateFieldElement;
 import com.vaadin.testbench.elements.LabelElement;
 import com.vaadin.testbench.elements.PasswordFieldElement;
 import com.vaadin.testbench.elements.TextAreaElement;
 import com.vaadin.testbench.elements.TextFieldElement;
+import com.vaadin.testbench.elements.RichTextAreaElement;
+import org.junit.Before;
+import org.junit.Test;
+
 import com.vaadin.tests.tb3.MultiBrowserTest;
 
 public class AbstractTextElementSetValueTest extends MultiBrowserTest {
@@ -49,6 +50,14 @@ public class AbstractTextElementSetValueTest extends MultiBrowserTest {
         assertEquals(TYPED_STRING, elem.getValue());
     }
 
+    @Test
+    public void richTextAreaSetValue() {
+        RichTextAreaElement elem = $(RichTextAreaElement.class).get(0);
+        elem.setValue(TYPED_STRING);
+        String actual = elem.getValue();
+        assertEquals(TYPED_STRING, actual);
+    }
+
     // helper methods
     // checks that setValue method works
     private void checkType(AbstractTextFieldElement elem,