summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur <artur@vaadin.com>2017-08-11 16:07:51 +0300
committerHenri Sara <henri.sara@gmail.com>2017-08-11 16:07:51 +0300
commit0f64ae445bae3c6e7a0d7fee1b6db9717e3da59a (patch)
tree8dcc6f1fdbb0fccdba652fe017beb04650b11681 /uitest
parent1f878089dec6c03090efbcc79b08edbfbffb7620 (diff)
downloadvaadin-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.java23
-rw-r--r--uitest/src/test/java/com/vaadin/tests/elements/combobox/ComboBoxUITest.java14
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