Skip to content

Commit c1e1728

Browse files
committed
feat: Add HasValidation mixin to TestBench elements (#7327)
--------- Co-authored-by: Tatu Lund <tatu@vaadin.com> (cherry picked from commit 575d6a9)
1 parent 57413e3 commit c1e1728

File tree

20 files changed

+59
-36
lines changed

20 files changed

+59
-36
lines changed

vaadin-checkbox-flow-parent/vaadin-checkbox-testbench/src/main/java/com/vaadin/flow/component/checkbox/testbench/CheckboxElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
import com.vaadin.testbench.HasHelper;
1919
import com.vaadin.testbench.HasLabel;
20+
import com.vaadin.testbench.HasValidation;
2021
import com.vaadin.testbench.TestBenchElement;
2122
import com.vaadin.testbench.elementsbase.Element;
2223

@@ -26,7 +27,7 @@
2627
*/
2728
@Element("vaadin-checkbox")
2829
public class CheckboxElement extends TestBenchElement
29-
implements HasLabel, HasHelper {
30+
implements HasLabel, HasHelper, HasValidation {
3031
/**
3132
* Checks whether the checkbox is checked.
3233
*

vaadin-checkbox-flow-parent/vaadin-checkbox-testbench/src/main/java/com/vaadin/flow/component/checkbox/testbench/CheckboxGroupElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@
2222
import java.util.stream.Stream;
2323

2424
import com.vaadin.testbench.HasHelper;
25+
import com.vaadin.testbench.HasValidation;
2526
import com.vaadin.testbench.TestBenchElement;
2627
import com.vaadin.testbench.elementsbase.Element;
2728

2829
@Element("vaadin-checkbox-group")
2930
public class CheckboxGroupElement extends TestBenchElement
30-
implements HasHelper {
31+
implements HasHelper, HasValidation {
3132

3233
/**
3334
* Gets the labels of checkboxes that are part of this group.

vaadin-combo-box-flow-parent/vaadin-combo-box-testbench/src/main/java/com/vaadin/flow/component/combobox/testbench/ComboBoxElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.vaadin.testbench.HasHelper;
2323
import com.vaadin.testbench.HasLabel;
2424
import com.vaadin.testbench.HasSelectByText;
25+
import com.vaadin.testbench.HasValidation;
2526
import com.vaadin.testbench.TestBenchElement;
2627
import com.vaadin.testbench.elementsbase.Element;
2728

@@ -31,7 +32,7 @@
3132
*/
3233
@Element("vaadin-combo-box")
3334
public class ComboBoxElement extends TestBenchElement
34-
implements HasLabel, HasSelectByText, HasHelper {
35+
implements HasLabel, HasSelectByText, HasHelper, HasValidation {
3536

3637
/**
3738
* Clears the value of the combobox.

vaadin-combo-box-flow-parent/vaadin-combo-box-testbench/src/main/java/com/vaadin/flow/component/combobox/testbench/MultiSelectComboBoxElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import com.vaadin.testbench.HasHelper;
2323
import com.vaadin.testbench.HasLabel;
24+
import com.vaadin.testbench.HasValidation;
2425
import com.vaadin.testbench.TestBenchElement;
2526
import com.vaadin.testbench.elementsbase.Element;
2627

@@ -30,7 +31,7 @@
3031
*/
3132
@Element("vaadin-multi-select-combo-box")
3233
public class MultiSelectComboBoxElement extends TestBenchElement
33-
implements HasLabel, HasHelper {
34+
implements HasLabel, HasHelper, HasValidation {
3435

3536
public String getInputElementValue() {
3637
return this.getPropertyString("_inputElementValue");

vaadin-crud-flow-parent/vaadin-crud-flow-integration-tests/src/test/java/com/vaadin/flow/component/crud/tests/EventHandlingIT.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,21 +149,21 @@ public void saveTest() {
149149
CrudElement crud = $(CrudElement.class).waitForFirst();
150150
crud.openRowForEditing(0);
151151
TextFieldElement lastNameField = crud.getEditor()
152-
.$(TextFieldElement.class).attribute("editor-role", "last-name")
153-
.first();
154-
Assert.assertTrue(lastNameField.hasAttribute("invalid"));
152+
.$(TextFieldElement.class)
153+
.withAttribute("editor-role", "last-name").first();
154+
Assert.assertTrue(lastNameField.isInvalid());
155155

156156
// Invalid input
157157
lastNameField.setValue("Manolo");
158158
crud.getEditorSaveButton().click();
159-
Assert.assertTrue(lastNameField.hasAttribute("invalid"));
159+
Assert.assertTrue(lastNameField.isInvalid());
160160
Assert.assertTrue(crud.isEditorOpen());
161161
Assert.assertEquals("Sayo",
162162
$(GridElement.class).first().getCell(0, 2).getText());
163163

164164
// Valid input
165165
lastNameField.setValue("Oladeji");
166-
Assert.assertFalse(lastNameField.hasAttribute("invalid"));
166+
Assert.assertFalse(lastNameField.isInvalid());
167167

168168
crud.getEditorSaveButton().click();
169169

@@ -181,7 +181,7 @@ public void emptyInvalidFieldsIndicatedOnSave() {
181181
.$(TextFieldElement.class)
182182
.attribute("editor-role", "first-name").first();
183183

184-
Assert.assertFalse(firstNameField.hasAttribute("invalid"));
184+
Assert.assertFalse(firstNameField.isInvalid());
185185

186186
// To avoid editor being dirty
187187
TextFieldElement lastNameField = crud.getEditor()
@@ -191,7 +191,7 @@ public void emptyInvalidFieldsIndicatedOnSave() {
191191

192192
crud.getEditorSaveButton().click();
193193

194-
Assert.assertTrue(firstNameField.hasAttribute("invalid"));
194+
Assert.assertTrue(firstNameField.isInvalid());
195195
}
196196

197197
@Test
@@ -203,12 +203,12 @@ public void invalidFieldsIndicatedOnSave() {
203203
.$(TextFieldElement.class).attribute("editor-role", "last-name")
204204
.first();
205205

206-
Assert.assertFalse(lastNameField.hasAttribute("invalid"));
206+
Assert.assertFalse(lastNameField.isInvalid());
207207

208208
lastNameField.setValue("Raiden");
209209
crud.getEditorSaveButton().click();
210210

211-
Assert.assertTrue(lastNameField.hasAttribute("invalid"));
211+
Assert.assertTrue(lastNameField.isInvalid());
212212
}
213213

214214
@Test

vaadin-date-picker-flow-parent/vaadin-date-picker-testbench/src/main/java/com/vaadin/flow/component/datepicker/testbench/DatePickerElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.vaadin.flow.component.button.testbench.ButtonElement;
2626
import com.vaadin.testbench.HasHelper;
2727
import com.vaadin.testbench.HasLabel;
28+
import com.vaadin.testbench.HasValidation;
2829
import com.vaadin.testbench.TestBenchElement;
2930
import com.vaadin.testbench.elementsbase.Element;
3031

@@ -34,7 +35,7 @@
3435
*/
3536
@Element("vaadin-date-picker")
3637
public class DatePickerElement extends TestBenchElement
37-
implements HasLabel, HasHelper {
38+
implements HasLabel, HasHelper, HasValidation {
3839

3940
public static class OverlayContentElement extends TestBenchElement {
4041
/**

vaadin-date-time-picker-flow-parent/vaadin-date-time-picker-testbench/src/main/java/com/vaadin/flow/component/datetimepicker/testbench/DateTimePickerElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import com.vaadin.testbench.ElementQuery;
2424
import com.vaadin.testbench.HasHelper;
2525
import com.vaadin.testbench.HasLabel;
26+
import com.vaadin.testbench.HasValidation;
2627
import com.vaadin.testbench.TestBenchElement;
2728
import com.vaadin.testbench.elementsbase.Element;
2829

@@ -32,7 +33,7 @@
3233
*/
3334
@Element("vaadin-date-time-picker")
3435
public class DateTimePickerElement extends TestBenchElement
35-
implements HasLabel, HasHelper {
36+
implements HasLabel, HasHelper, HasValidation {
3637

3738
private static final String VALUE_PROPERTY = "value";
3839

vaadin-flow-components-shared-parent/vaadin-flow-components-test-util/src/main/java/com/vaadin/tests/validation/AbstractValidationIT.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
import org.junit.Assert;
2222
import org.junit.Before;
2323

24-
import com.vaadin.testbench.TestBenchElement;
24+
import com.vaadin.testbench.HasValidation;
2525
import com.vaadin.tests.AbstractComponentIT;
2626

27-
public abstract class AbstractValidationIT<T extends TestBenchElement>
27+
public abstract class AbstractValidationIT<T extends HasValidation>
2828
extends AbstractComponentIT {
2929
protected T testField;
3030

@@ -37,8 +37,8 @@ public void init() {
3737
protected abstract T getTestField();
3838

3939
protected void assertErrorMessage(String expected) {
40-
Assert.assertEquals(expected,
41-
testField.getPropertyString("errorMessage"));
40+
expected = expected == null ? "" : expected;
41+
Assert.assertEquals(expected, testField.getErrorMessage());
4242
}
4343

4444
protected void assertClientValid() {
@@ -69,6 +69,6 @@ private boolean isServerValid() {
6969
}
7070

7171
private boolean isClientValid() {
72-
return !testField.getPropertyBoolean("invalid");
72+
return !testField.isInvalid();
7373
}
7474
}

vaadin-radio-button-flow-parent/vaadin-radio-button-testbench/src/main/java/com/vaadin/flow/component/radiobutton/testbench/RadioButtonGroupElement.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
import com.vaadin.testbench.HasHelper;
2424
import com.vaadin.testbench.HasSelectByText;
25+
import com.vaadin.testbench.HasValidation;
2526
import com.vaadin.testbench.TestBenchElement;
2627
import com.vaadin.testbench.elementsbase.Element;
2728

@@ -31,7 +32,7 @@
3132
*/
3233
@Element("vaadin-radio-group")
3334
public class RadioButtonGroupElement extends TestBenchElement
34-
implements HasSelectByText, HasHelper {
35+
implements HasSelectByText, HasHelper, HasValidation {
3536

3637
/**
3738
* Gets a list of all available options.

vaadin-select-flow-parent/vaadin-select-testbench/src/main/java/com/vaadin/flow/component/select/testbench/SelectElement.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import com.vaadin.testbench.HasLabel;
2828
import com.vaadin.testbench.HasPlaceholder;
2929
import com.vaadin.testbench.HasSelectByText;
30+
import com.vaadin.testbench.HasValidation;
3031
import com.vaadin.testbench.TestBenchElement;
3132
import com.vaadin.testbench.commands.TestBenchCommandExecutor;
3233
import com.vaadin.testbench.elementsbase.Element;
@@ -35,8 +36,8 @@
3536
* Testbench Element API for vaadin-select.
3637
*/
3738
@Element("vaadin-select")
38-
public class SelectElement extends TestBenchElement
39-
implements HasSelectByText, HasLabel, HasPlaceholder, HasHelper {
39+
public class SelectElement extends TestBenchElement implements HasSelectByText,
40+
HasLabel, HasPlaceholder, HasHelper, HasValidation {
4041

4142
@Element("vaadin-select-item")
4243
public static class ItemElement extends TestBenchElement {

0 commit comments

Comments
 (0)