*/
package com.vaadin.testbench.elements;
+import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebElement;
import com.vaadin.testbench.By;
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());
+ }
}
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
*/
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
event -> valueChangeLabel.setValue(value));
addComponent(field);
}
-
+ addComponent(createRichTextArea());
addComponent(createCheckBox());
addComponent(createSlider());
addComponent(createDateField());
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";
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 {
addValueChangeListener(comps[i], i);
addComponent(comps[i]);
addComponent(eventCountLabels[i]);
+ addComponent(createRichTextArea());
}
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";
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;
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 {
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();
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 {
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,