]> source.dussan.org Git - vaadin-framework.git/commitdiff
Open combobox popup on click to icon (#14624).
authorDenis Anisimov <denis@vaadin.com>
Sat, 13 Sep 2014 18:51:29 +0000 (21:51 +0300)
committerHenri Sara <hesara@vaadin.com>
Mon, 6 Oct 2014 23:58:04 +0000 (23:58 +0000)
Change-Id: I203b92561ab14d427466945845c6fbb62d6eb07b

client/src/com/vaadin/client/ui/VFilterSelect.java
uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIcon.java [new file with mode: 0644]
uitest/src/com/vaadin/tests/components/combobox/ComboBoxClickIconTest.java [new file with mode: 0644]

index 8e72d1ce52f1b9eea41bae1e074912edb86f3f20..bb217f2de2fde5bfc95be8012908afe88f418677 100644 (file)
@@ -1142,6 +1142,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 (file)
index 0000000..b0450e2
--- /dev/null
@@ -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 (file)
index 0000000..949fcdb
--- /dev/null
@@ -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")));
+    }
+
+}