From 0c09f071d69a678ade7d38389f6291a852fd221a Mon Sep 17 00:00:00 2001 From: Anna Koskinen Date: Tue, 5 Aug 2014 18:03:43 +0300 Subject: ComboBoxSlow test upgrade (#14292) Change-Id: Ic2e1bfd300a6b18aeddd4c4895c7bb11fec5bb8b --- .../tests/components/combobox/ComboBoxSlow.java | 11 +++--- .../components/combobox/ComboBoxSlowTest.java | 43 +++++++++++++++++++--- 2 files changed, 44 insertions(+), 10 deletions(-) (limited to 'uitest') diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlow.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlow.java index 13066854bf..3668637846 100644 --- a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlow.java +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlow.java @@ -2,10 +2,11 @@ package com.vaadin.tests.components.combobox; import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.data.Property.ValueChangeListener; -import com.vaadin.tests.components.TestBase; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; import com.vaadin.tests.util.Log; -public class ComboBoxSlow extends TestBase { +public class ComboBoxSlow extends AbstractTestUI { private Log log = new Log(5); @@ -15,19 +16,19 @@ public class ComboBoxSlow extends TestBase { } @Override - protected String getDescription() { + protected String getTestDescription() { return "The ComboBox artificially introduces a server delay to more easily spot problems"; } @Override - protected void setup() { + protected void setup(VaadinRequest request) { addComponent(log); final SlowComboBox cb = new SlowComboBox(); cb.setImmediate(true); for (int i = 0; i <= 1000; i++) { cb.addItem("Item " + i); } - cb.addListener(new ValueChangeListener() { + cb.addValueChangeListener(new ValueChangeListener() { @Override public void valueChange(ValueChangeEvent event) { log.log("Value changed to " + cb.getValue()); diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlowTest.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlowTest.java index f030c0f5a0..e547e68fc1 100644 --- a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlowTest.java +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxSlowTest.java @@ -23,8 +23,10 @@ import java.util.List; import org.junit.Before; import org.junit.Test; +import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.interactions.Actions; +import org.openqa.selenium.support.ui.ExpectedCondition; import com.vaadin.testbench.By; import com.vaadin.tests.tb3.MultiBrowserTest; @@ -58,21 +60,44 @@ public class ComboBoxSlowTest extends MultiBrowserTest { sleep(250); typeString("Item 12"); - assertEquals(10, getNumberOfSuggestions()); + final WebElement popup = driver.findElement(By + .className("v-filterselect-suggestpopup")); + List filteredItems = getFilteredItems(popup); + assertEquals("unexpected amount of suggestions found on first page", + 10, filteredItems.size()); + assertEquals("wrong filtering result", "Item 12", filteredItems.get(0) + .getText()); + assertEquals("wrong filtering result", "Item 128", filteredItems.get(9) + .getText()); + assertTrue(isPagingActive()); goToNextPage(); - sleep(500); - assertEquals(1, getNumberOfSuggestions()); - + waitUntil(new ExpectedCondition() { + @Override + public Boolean apply(WebDriver input) { + List filteredItems = getFilteredItems(popup); + return filteredItems.size() == 1 + && "Item 129".equals(filteredItems.get(0).getText()); + } + }); } @Test public void testTwoMatchesNoPaging() { clickComboBoxTextArea(); typeString("Item 100"); - assertEquals(2, getNumberOfSuggestions()); assertFalse(isPagingActive()); + + WebElement popup = driver.findElement(By + .className("v-filterselect-suggestpopup")); + List filteredItems = getFilteredItems(popup); + assertEquals("unexpected amount of suggestions found", 2, + filteredItems.size()); + assertEquals("wrong filtering result", "Item 100", filteredItems.get(0) + .getText()); + assertEquals("wrong filtering result", "Item 1000", filteredItems + .get(1).getText()); } private void clickComboBoxTextArea() { @@ -105,4 +130,12 @@ public class ComboBoxSlowTest extends MultiBrowserTest { By.className("v-filterselect-nextpage")); nextPage.click(); } + + /* + * Gets the list of filtered items from the combobox popup. + */ + private List getFilteredItems(final WebElement popup) { + return popup.findElement(By.className("v-filterselect-suggestmenu")) + .findElements(By.className("gwt-MenuItem")); + } } -- cgit v1.2.3