Skip to content

feat: Add HasClearButton mixin to TestBench elements #7337

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ public void openPopup_clearButton_selectedItemIsReset() {
comboBox.openPopup();
comboBox.closePopup();

comboBox.$("[part~='clear-button']").get(0).click();
comboBox.clickClearButton();

comboBox.openPopup();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -31,8 +32,8 @@
* element.
*/
@Element("vaadin-combo-box")
public class ComboBoxElement extends TestBenchElement
implements HasLabel, HasSelectByText, HasPlaceholder, HasHelper {
public class ComboBoxElement extends TestBenchElement implements HasLabel,
HasSelectByText, HasPlaceholder, HasHelper, HasClearButton {

/**
* Clears the value of the combobox.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -31,7 +32,7 @@
*/
@Element("vaadin-multi-select-combo-box")
public class MultiSelectComboBoxElement extends TestBenchElement
implements HasLabel, HasPlaceholder, HasHelper {
implements HasLabel, HasPlaceholder, HasHelper, HasClearButton {

public String getInputElementValue() {
return this.getPropertyString("_inputElementValue");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import org.openqa.selenium.Keys;

import com.vaadin.flow.component.button.testbench.ButtonElement;
import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.TestBenchElement;
Expand All @@ -34,7 +35,7 @@
*/
@Element("vaadin-date-picker")
public class DatePickerElement extends TestBenchElement
implements HasLabel, HasHelper {
implements HasLabel, HasHelper, HasClearButton {

@Element("vaadin-date-picker-overlay-content")
public static class OverlayContentElement extends TestBenchElement {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import com.vaadin.flow.component.datepicker.testbench.DatePickerElement;
import com.vaadin.flow.component.timepicker.testbench.TimePickerElement;
import com.vaadin.testbench.ElementQuery;
import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.TestBenchElement;
Expand All @@ -34,7 +35,7 @@
*/
@Element("vaadin-date-time-picker")
public class DateTimePickerElement extends TestBenchElement
implements HasLabel, HasHelper {
implements HasLabel, HasHelper, HasClearButton {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DateTimePicker does not have clear button API in Flow.


private static final String VALUE_PROPERTY = "value";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,9 +154,7 @@ public void assertClearValue() {
input.sendKeys("300");
blur();

TestBenchElement clearButton = field.$(TestBenchElement.class)
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

assertValueChange(2, 300, null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,9 +103,7 @@ public void assertClearValue() {
input.sendKeys("foo");
blur();

WebElement clearButton = field.$("*")
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

String value = findElement(By.id("clear-message")).getText();
Assert.assertEquals("Old value: 'foo'. New value: ''.", value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,7 @@ public void assertClearValue() {
input.sendKeys("300");
blur();

TestBenchElement clearButton = field.$(TestBenchElement.class)
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

assertValueChange(2, 300, null);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,9 +110,7 @@ public void assertClearValue() {
input.sendKeys("300");
blur();

WebElement clearButton = field.$("*")
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

String value = findElement(By.id("clear-message")).getText();
Assert.assertEquals("Old value: '300.0'. New value: 'null'.", value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,9 +62,7 @@ public void assertClearValue() {
.id("clear-password-field");
field.setValue("foo");

WebElement clearButton = field.$("*")
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

String value = findElement(By.id("clear-message")).getText();
Assert.assertEquals("Old value: 'foo'. New value: ''.", value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,7 @@ public void assertClearValue() {
input.sendKeys("foo");
blur();

WebElement clearButton = field.$("*")
.withAttributeContainingWord("part", "clear-button").first();
clearButton.click();
field.clickClearButton();

String value = findElement(By.id("clear-message")).getText();
Assert.assertEquals("Old value: 'foo'. New value: ''.", value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,7 @@ public void assertClearValue() {
input.sendKeys("foo");
blur();

WebElement clearButton = field.$("div").id("clearButton");
clearButton.click();
field.clickClearButton();

String value = findElement(By.id("clear-message")).getText();
Assert.assertEquals("Old value: 'foo'. New value: ''.", value);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-big-decimal-field")
public class BigDecimalFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Emulates the user setting the value. This triggers server value change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-email-field")
public class EmailFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Emulates the user setting the value. This triggers server value change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-integer-field")
public class IntegerFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Emulates the user setting the value. This triggers server value change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-number-field")
public class NumberFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Emulates the user setting the value. This triggers server value change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-password-field")
public class PasswordFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Checks whether the password is shown in clear text or is hidden from
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-text-area")
public class TextAreaElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {
/**
* Emulates the user setting the value. This triggers server value change
* listeners and validation. The emulation is done by setting the value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

import org.openqa.selenium.By;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasLabel;
import com.vaadin.testbench.HasPlaceholder;
Expand All @@ -30,7 +31,8 @@
*/
@Element("vaadin-text-field")
public class TextFieldElement extends TestBenchElement
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper {
implements HasStringValueProperty, HasLabel, HasPlaceholder, HasHelper,
HasClearButton {

/**
* Emulates the user setting the value. This triggers server value change
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;

import com.vaadin.testbench.HasClearButton;
import com.vaadin.testbench.HasHelper;
import com.vaadin.testbench.HasSelectByText;
import com.vaadin.testbench.HasStringValueProperty;
Expand All @@ -31,8 +32,8 @@
* element.
*/
@Element("vaadin-time-picker")
public class TimePickerElement extends TestBenchElement
implements HasStringValueProperty, HasSelectByText, HasHelper {
public class TimePickerElement extends TestBenchElement implements
HasStringValueProperty, HasSelectByText, HasHelper, HasClearButton {

/**
* A TestBench element representing
Expand Down