Browse Source

Select last item only if filtered items exist. (#18441)

Change-Id: I1b601f7bcddd3a62edcd97651a3270b79dacc7fd
tags/7.6.0.alpha4
Sauli Tähkäpää 8 years ago
parent
commit
546616b066

+ 3
- 1
client/src/com/vaadin/client/ui/VFilterSelect.java View File

@@ -417,7 +417,9 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler,
selectPrevPage();

} else {
selectItem(menu.getItems().get(menu.getItems().size() - 1));
if(!menu.getItems().isEmpty()) {
selectLastItem();
}
}
}


+ 15
- 0
uitest/src/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigation.java View File

@@ -0,0 +1,15 @@
package com.vaadin.tests.components.combobox;

import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUI;
import com.vaadin.ui.ComboBox;

public class ComboBoxEmptyItemsKeyboardNavigation extends AbstractTestUI {
@Override
protected void setup(VaadinRequest request) {
ComboBox comboBox = new ComboBox();
comboBox.addItems("foo", "bar");

addComponent(comboBox);
}
}

+ 30
- 0
uitest/src/com/vaadin/tests/components/combobox/ComboBoxEmptyItemsKeyboardNavigationTest.java View File

@@ -0,0 +1,30 @@
package com.vaadin.tests.components.combobox;

import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.collection.IsEmptyCollection.empty;

import java.util.List;

import org.junit.Test;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebElement;

import com.vaadin.testbench.By;
import com.vaadin.tests.tb3.MultiBrowserTest;
import com.vaadin.tests.tb3.newelements.ComboBoxElement;

public class ComboBoxEmptyItemsKeyboardNavigationTest extends MultiBrowserTest {

@Test
public void navigatingUpOnAnEmptyMenuDoesntThrowErrors() {
setDebug(true);
openTestURL();

ComboBoxElement combobox = $(ComboBoxElement.class).first();
combobox.sendKeys("a", Keys.ARROW_UP);

List<WebElement> errors = findElements(By.className("SEVERE"));

assertThat(errors, empty());
}
}

Loading…
Cancel
Save