summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client/src/com/vaadin/client/ui/VFilterSelect.java5
-rw-r--r--uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java34
2 files changed, 35 insertions, 4 deletions
diff --git a/client/src/com/vaadin/client/ui/VFilterSelect.java b/client/src/com/vaadin/client/ui/VFilterSelect.java
index 356e7291c4..8e72d1ce52 100644
--- a/client/src/com/vaadin/client/ui/VFilterSelect.java
+++ b/client/src/com/vaadin/client/ui/VFilterSelect.java
@@ -446,16 +446,13 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
private void selectItem(final MenuItem newSelectedItem) {
menu.selectItem(newSelectedItem);
- String text = newSelectedItem != null ? newSelectedItem.getText()
- : "";
-
// Set the icon.
FilterSelectSuggestion suggestion = (FilterSelectSuggestion) newSelectedItem
.getCommand();
setSelectedItemIcon(suggestion.getIconUri());
// Set the text.
- setText(text);
+ setText(suggestion.getReplacementString());
menu.updateKeyboardSelectedItem();
}
diff --git a/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java b/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java
index 61a38bf552..948c3c13b2 100644
--- a/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java
+++ b/uitest/src/com/vaadin/tests/fonticon/FontIconsTest.java
@@ -15,9 +15,14 @@
*/
package com.vaadin.tests.fonticon;
+import static org.junit.Assert.assertEquals;
+
import java.io.IOException;
import org.junit.Test;
+import org.openqa.selenium.By;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebElement;
import com.vaadin.tests.tb3.MultiBrowserTest;
@@ -28,4 +33,33 @@ public class FontIconsTest extends MultiBrowserTest {
openTestURL();
compareScreen("all");
}
+
+ @Test
+ public void comboBoxItemIconsOnKeyboardNavigation() throws Exception {
+ openTestURL();
+ WebElement comboBoxInput = getDriver().findElement(
+ By.className("v-filterselect-input"));
+
+ // No initial value.
+ assertEquals("", comboBoxInput.getText());
+
+ // Navigate to the first item with keyboard navigation.
+ sendKeys(comboBoxInput, Keys.ARROW_DOWN, Keys.ARROW_DOWN,
+ Keys.ARROW_DOWN);
+
+ // Value must be "One" without any extra characters.
+ // See ticket #14660
+ assertEquals("One", comboBoxInput.getAttribute("value"));
+
+ // Check also the second item.
+ sendKeys(comboBoxInput, Keys.ARROW_DOWN);
+ assertEquals("Two", comboBoxInput.getAttribute("value"));
+ }
+
+ private void sendKeys(WebElement element, Keys... keys) throws Exception {
+ for (Keys key : keys) {
+ element.sendKeys(key);
+ sleep(10); // For PhantomJS.
+ }
+ }
}