Procházet zdrojové kódy

Added support for getValue and setValue into TestBench RichTextAreaElement (#10659)

tags/8.4.0.beta1
Anastasia Smirnova před 6 roky
rodič
revize
a2bd03aaf4

+ 41
- 0
testbench-api/src/main/java/com/vaadin/testbench/elements/RichTextAreaElement.java Zobrazit soubor

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

+ 11
- 4
uitest/src/main/java/com/vaadin/tests/elements/ComponentElementGetValue.java Zobrazit soubor

@@ -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";

+ 8
- 0
uitest/src/main/java/com/vaadin/tests/elements/abstracttextfield/AbstractTextElementSetValue.java Zobrazit soubor

@@ -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";

+ 12
- 3
uitest/src/test/java/com/vaadin/tests/elements/ComponentElementGetValueTest.java Zobrazit soubor

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

+ 12
- 3
uitest/src/test/java/com/vaadin/tests/elements/abstracttextfield/AbstractTextElementSetValueTest.java Zobrazit soubor

@@ -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,

Načítá se…
Zrušit
Uložit