Browse Source

Fix ComboBoxElement clear method (#11483)

Explicitly reset the value in case if it was cleared.
Ignore the case for selecting a suggestion.

Fixes vaadin/testbench#1122
tags/8.8.0.beta1
Sun Zhe 5 years ago
parent
commit
41ef058ba8
No account linked to committer's email address

+ 7
- 2
testbench-api/src/main/java/com/vaadin/testbench/elements/ComboBoxElement.java View File

@@ -52,8 +52,8 @@ public class ComboBoxElement extends AbstractSingleSelectElement {
selectByTextFromPopup(text);
return;
}
getInputField().clear();
getInputField().sendKeys(text);
clear();
sendKeys(text);

selectSuggestion(text);
}
@@ -231,6 +231,11 @@ public class ComboBoxElement extends AbstractSingleSelectElement {
@Override
public void clear() {
getInputField().clear();
String value = getText();
if (value != null && !value.isEmpty()) {
((JavascriptExecutor) getDriver())
.executeScript("arguments[0].value = ''", getInputField());
}
}

@Override

+ 1
- 11
uitest/src/test/java/com/vaadin/tests/components/ErrorLevelsTest.java View File

@@ -147,17 +147,7 @@ public class ErrorLevelsTest extends SingleBrowserTest {
}

private void selectErrorLevel(ErrorLevel errorLevel) {
errorLevelSelector.clear();
errorLevelSelector
.sendKeys(errorLevel.toString().toLowerCase(Locale.ROOT));
errorLevelSelector.sendKeys(getReturn());
}

private Keys getReturn() {
if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
return Keys.ENTER;
} else {
return Keys.RETURN;
}
.selectByText(errorLevel.toString().toUpperCase(Locale.ROOT));
}
}

+ 3
- 1
uitest/src/test/java/com/vaadin/tests/components/combobox/ComboBoxSelectingNewItemValueChangeTest.java View File

@@ -137,7 +137,9 @@ public class ComboBoxSelectingNewItemValueChangeTest extends MultiBrowserTest {

protected void typeInputAndSelect(String input,
SelectionType selectionType) {
comboBoxElement.clear();
// clear() would cause an additional value change in chrome 70+
// since it always makes blur after clear()
comboBoxElement.sendKeys(Keys.BACK_SPACE, Keys.BACK_SPACE, Keys.BACK_SPACE);
sendKeysToInput(input);
switch (selectionType) {
case ENTER:

Loading…
Cancel
Save