diff --git a/vaadin-combo-box-flow-parent/vaadin-combo-box-flow-integration-tests/src/test/java/com/vaadin/flow/component/combobox/test/LazyComboBoxFilterIT.java b/vaadin-combo-box-flow-parent/vaadin-combo-box-flow-integration-tests/src/test/java/com/vaadin/flow/component/combobox/test/LazyComboBoxFilterIT.java index 6c3801ff0e0..27674edd475 100644 --- a/vaadin-combo-box-flow-parent/vaadin-combo-box-flow-integration-tests/src/test/java/com/vaadin/flow/component/combobox/test/LazyComboBoxFilterIT.java +++ b/vaadin-combo-box-flow-parent/vaadin-combo-box-flow-integration-tests/src/test/java/com/vaadin/flow/component/combobox/test/LazyComboBoxFilterIT.java @@ -15,10 +15,14 @@ */ package com.vaadin.flow.component.combobox.test; -import org.junit.Assert; +import java.time.Duration; +import java.time.temporal.ChronoUnit; + import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.ui.ExpectedConditions; +import org.openqa.selenium.support.ui.WebDriverWait; import com.vaadin.flow.component.combobox.testbench.ComboBoxElement; import com.vaadin.flow.testutil.TestPath; @@ -35,7 +39,10 @@ public void lazyComboBoxFilterFirstQuery() { comboBox.openPopup(); WebElement query = findElement(By.id("query")); - Assert.assertTrue(query.getText().contains("Filter: 1")); - Assert.assertTrue(query.getText().contains("Count: 10")); + + WebDriverWait wait = new WebDriverWait(driver, + Duration.of(2, ChronoUnit.SECONDS)); + wait.until(ExpectedConditions.textToBePresentInElement(query, + "Filter: 1 Count: 10")); } } diff --git a/vaadin-combo-box-flow-parent/vaadin-combo-box-flow/src/main/java/com/vaadin/flow/component/combobox/ComboBoxBase.java b/vaadin-combo-box-flow-parent/vaadin-combo-box-flow/src/main/java/com/vaadin/flow/component/combobox/ComboBoxBase.java index 2ace4e489a8..e5c35a7f79a 100644 --- a/vaadin-combo-box-flow-parent/vaadin-combo-box-flow/src/main/java/com/vaadin/flow/component/combobox/ComboBoxBase.java +++ b/vaadin-combo-box-flow-parent/vaadin-combo-box-flow/src/main/java/com/vaadin/flow/component/combobox/ComboBoxBase.java @@ -99,6 +99,8 @@ public abstract class ComboBoxBase, HasPlaceholder { private static final int DEFAULT_FILTER_TIMEOUT = 500; + private String lastKnownFilter; + /** * Registration for custom value listeners that disallows entering custom * values as soon as there are no more listeners for the custom value event @@ -346,9 +348,8 @@ public void setAllowCustomValue(boolean allowCustomValue) { * * @return the filter string */ - @Synchronize(property = "filter", value = "filter-changed") protected String getFilter() { - return getElement().getProperty("filter"); + return lastKnownFilter; } /** @@ -359,7 +360,11 @@ protected String getFilter() { * @param filter * the String value to set */ + @Deprecated protected void setFilter(String filter) { + lastKnownFilter = filter; + // MT 20250-02-21 I assume client side never uses this, probably the + // whole method is obsolete getElement().setProperty("filter", filter == null ? "" : filter); } @@ -1367,6 +1372,7 @@ private void confirmUpdate(int id) { */ @ClientCallable private void setViewportRange(int start, int length, String filter) { + this.lastKnownFilter = filter; dataController.setViewportRange(start, length, filter); }