@@ -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()); | |||
} | |||
} |
@@ -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"; |
@@ -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"; |
@@ -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(); |
@@ -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, |