diff options
author | Artur <artur@vaadin.com> | 2017-08-11 16:07:51 +0300 |
---|---|---|
committer | Henri Sara <henri.sara@gmail.com> | 2017-08-11 16:07:51 +0300 |
commit | 0f64ae445bae3c6e7a0d7fee1b6db9717e3da59a (patch) | |
tree | 8dcc6f1fdbb0fccdba652fe017beb04650b11681 /uitest | |
parent | 1f878089dec6c03090efbcc79b08edbfbffb7620 (diff) | |
download | vaadin-framework-0f64ae445bae3c6e7a0d7fee1b6db9717e3da59a.tar.gz vaadin-framework-0f64ae445bae3c6e7a0d7fee1b6db9717e3da59a.zip |
Do not wait for icons to load before interacting with a combo box (#9717)
Icon load detection code does not handle error events so broken images
will cause tests to fail forever. In other cases also, it seems very
rare to need icons to be loaded before interacting with a combo box. If
there really are use cases for this, it would be better to have a method
to query if all icons are loaded so that special tests can use this method.
Fixes https://github.com/vaadin/testbench/issues/916
Diffstat (limited to 'uitest')
-rw-r--r-- | uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java | 23 | ||||
-rw-r--r-- | uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java | 14 |
2 files changed, 26 insertions, 11 deletions
diff --git a/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java b/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java index d92130c863..08c1a51a7b 100644 --- a/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java +++ b/uitest/src/main/java/com/vaadin/tests/elements/combobox/ComboBoxUI.java @@ -18,14 +18,13 @@ package com.vaadin.tests.elements.combobox; import java.util.ArrayList; import java.util.List; +import com.vaadin.annotations.Widgetset; +import com.vaadin.server.ThemeResource; import com.vaadin.server.VaadinRequest; import com.vaadin.tests.components.AbstractTestUI; import com.vaadin.ui.ComboBox; -/** - * - */ -@SuppressWarnings("serial") +@Widgetset("com.vaadin.DefaultWidgetSet") public class ComboBoxUI extends AbstractTestUI { public static final List<String> currencies = new ArrayList<String>(); @@ -37,12 +36,24 @@ public class ComboBoxUI extends AbstractTestUI { @Override protected void setup(VaadinRequest request) { - ComboBox comboBox = new ComboBox("NullAllowedComboBox", currencies); + ComboBox<String> comboBox = new ComboBox<>("NullAllowedComboBox", + currencies); addComponent(comboBox); - comboBox = new ComboBox("NullForbiddenComboBox", currencies); + comboBox = new ComboBox<>("NullForbiddenComboBox", currencies); comboBox.setEmptySelectionAllowed(false); addComponent(comboBox); + + comboBox = new ComboBox<>("With icons", currencies); + comboBox.setId("with-icons"); + comboBox.setItemIconGenerator(item -> { + if (item.equals("EUR")) { + return new ThemeResource("shared/img/spinner.gif"); + } else { + return new ThemeResource("notfound.png"); + } + }); + addComponent(comboBox); } @Override diff --git a/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java b/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java index fb84ea3055..cecd748c9d 100644 --- a/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java +++ b/uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java @@ -24,11 +24,6 @@ import org.openqa.selenium.WebElement; import com.vaadin.testbench.elements.ComboBoxElement; import com.vaadin.tests.tb3.MultiBrowserTest; -/** - * Validates that multiple calls to ComboBoxElement.selectByText(String) do not - * append the input given each time to the previous one. The value in the - * combobox's search field should be cleared before searching for a new one. - */ public class ComboBoxUITest extends MultiBrowserTest { @Before @@ -54,6 +49,15 @@ public class ComboBoxUITest extends MultiBrowserTest { cb.selectByText("foobar"); } + @Test + public void testSelectByTextWithIcons() { + ComboBoxElement cb = $(ComboBoxElement.class).id("with-icons"); + cb.selectByText("GBP"); + assertEquals("GBP", cb.getValue()); + cb.selectByText("EUR"); + assertEquals("EUR", cb.getValue()); + } + private void testMultipleSelectByTextOperationsIn( ComboBoxElement comboBox) { // Select all items from the menu |