From c3bf85412214d56bbbaf19a04ff1b7012e6428f6 Mon Sep 17 00:00:00 2001 From: Denis Anisimov Date: Sat, 13 Sep 2014 21:51:29 +0300 Subject: Open combobox popup on click to icon (#14624). Change-Id: I203b92561ab14d427466945845c6fbb62d6eb07b --- .../components/combobox/ComboBoxClickIcon.java | 59 ++++++++++++++++++++++ .../components/combobox/ComboBoxClickIconTest.java | 47 +++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIcon.java create mode 100644 uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIconTest.java (limited to 'uitest') 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 items = new ArrayList(); + 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"))); + } + +} -- cgit v1.2.3