diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-09-13 21:51:29 +0300 |
---|---|---|
committer | Markus Koivisto <markus@vaadin.com> | 2014-10-14 17:58:30 +0300 |
commit | c3bf85412214d56bbbaf19a04ff1b7012e6428f6 (patch) | |
tree | 89b7f90ca4744406aa0aa517c0b7e611d8f44a93 | |
parent | 0877bd0ad912839e2d833b9b4ff209fb42848077 (diff) | |
download | vaadin-framework-c3bf85412214d56bbbaf19a04ff1b7012e6428f6.tar.gz vaadin-framework-c3bf85412214d56bbbaf19a04ff1b7012e6428f6.zip |
Open combobox popup on click to icon (#14624).
Change-Id: I203b92561ab14d427466945845c6fbb62d6eb07b
3 files changed, 107 insertions, 0 deletions
diff --git a/client/src/com/vaadin/client/ui/VFilterSelect.java b/client/src/com/vaadin/client/ui/VFilterSelect.java index 642c6eac0f..927666a12a 100644 --- a/client/src/com/vaadin/client/ui/VFilterSelect.java +++ b/client/src/com/vaadin/client/ui/VFilterSelect.java @@ -1140,6 +1140,7 @@ public class VFilterSelect extends Composite implements Field, KeyDownHandler, private class IconWidget extends Widget { IconWidget(Icon icon) { setElement(icon.getElement()); + addDomHandler(VFilterSelect.this, ClickEvent.getType()); } } diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIcon.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIcon.java new file mode 100644 index 0000000000..b0450e22c3 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIcon.java @@ -0,0 +1,59 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.combobox; + +import java.util.ArrayList; +import java.util.List; + +import com.vaadin.server.FontAwesome; +import com.vaadin.server.VaadinRequest; +import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.ui.ComboBox; + +/** + * Test UI to check click on icon in the combobox. + * + * @author Vaadin Ltd + */ +public class ComboBoxClickIcon extends AbstractTestUI { + + @Override + protected void setup(VaadinRequest request) { + final List<String> items = new ArrayList<String>(); + items.add("A"); + items.add("B"); + items.add("C"); + final ComboBox combo = new ComboBox(); + combo.setImmediate(true); + combo.setItemIcon(items.get(0), FontAwesome.ALIGN_CENTER); + combo.setItemIcon(items.get(1), FontAwesome.ALIGN_CENTER); + combo.setItemIcon(items.get(2), FontAwesome.ALIGN_CENTER); + combo.addItems(items); + combo.setTextInputAllowed(false); + addComponent(combo); + } + + @Override + protected String getTestDescription() { + return "Combobox icon should handle click events"; + } + + @Override + protected Integer getTicketNumber() { + return 14624; + } + +} diff --git a/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIconTest.java b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIconTest.java new file mode 100644 index 0000000000..949fcdb882 --- /dev/null +++ b/uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIconTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 2000-2014 Vaadin Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.vaadin.tests.components.combobox; + +import org.junit.Assert; +import org.junit.Test; +import org.openqa.selenium.By; + +import com.vaadin.testbench.elements.ComboBoxElement; +import com.vaadin.tests.tb3.MultiBrowserTest; + +/** + * Test to check whether combobox is expanded when icon is clicked. + * + * @author Vaadin Ltd + */ +public class ComboBoxClickIconTest extends MultiBrowserTest { + + @Test + public void testClickOnIconInCombobox() { + openTestURL(); + + $(ComboBoxElement.class).first().openPopup(); + + getDriver().findElements(By.className("gwt-MenuItem")).get(1).click(); + + getDriver().findElement(By.className("v-filterselect")) + .findElement(By.className("v-icon")).click(); + + Assert.assertTrue("Unable to find menu items in combobox popup", + isElementPresent(By.className("gwt-MenuItem"))); + } + +} |