]> source.dussan.org Git - vaadin-framework.git/commitdiff
Generic TabSheet test
authorArtur Signell <artur.signell@itmill.com>
Mon, 27 Dec 2010 08:27:08 +0000 (08:27 +0000)
committerArtur Signell <artur.signell@itmill.com>
Mon, 27 Dec 2010 08:27:08 +0000 (08:27 +0000)
svn changeset:16638/svn branch:6.5

tests/src/com/vaadin/tests/components/tabsheet/TabSheetTest.java [new file with mode: 0644]

diff --git a/tests/src/com/vaadin/tests/components/tabsheet/TabSheetTest.java b/tests/src/com/vaadin/tests/components/tabsheet/TabSheetTest.java
new file mode 100644 (file)
index 0000000..350cdaa
--- /dev/null
@@ -0,0 +1,206 @@
+package com.vaadin.tests.components.tabsheet;\r
+\r
+import java.util.LinkedHashMap;\r
+\r
+import com.vaadin.terminal.Resource;\r
+import com.vaadin.tests.components.AbstractComponentContainerTest;\r
+import com.vaadin.ui.Component;\r
+import com.vaadin.ui.TabSheet;\r
+import com.vaadin.ui.TabSheet.CloseHandler;\r
+import com.vaadin.ui.TabSheet.SelectedTabChangeEvent;\r
+import com.vaadin.ui.TabSheet.SelectedTabChangeListener;\r
+import com.vaadin.ui.TabSheet.Tab;\r
+\r
+public class TabSheetTest extends AbstractComponentContainerTest<TabSheet>\r
+        implements SelectedTabChangeListener {\r
+\r
+    private Command<TabSheet, Integer> setTabCaption = new Command<TabSheet, Integer>() {\r
+\r
+        public void execute(TabSheet c, Integer value, Object data) {\r
+            c.getTab(value).setCaption((String) data);\r
+\r
+        }\r
+    };\r
+    private Command<TabSheet, Integer> setTabIcon = new Command<TabSheet, Integer>() {\r
+\r
+        public void execute(TabSheet c, Integer value, Object data) {\r
+            c.getTab(value).setIcon((Resource) data);\r
+\r
+        }\r
+    };\r
+    private Command<TabSheet, Integer> setTabClosable = new Command<TabSheet, Integer>() {\r
+\r
+        public void execute(TabSheet c, Integer value, Object data) {\r
+            c.getTab(value).setClosable((Boolean) data);\r
+        }\r
+    };\r
+    private Command<TabSheet, Boolean> setCloseHandlerListener = new Command<TabSheet, Boolean>() {\r
+\r
+        public void execute(TabSheet c, Boolean value, Object data) {\r
+            if (value) {\r
+                c.setCloseHandler(new CloseHandler() {\r
+                    public void onTabClose(TabSheet tabsheet, Component c) {\r
+                        tabClosed(tabsheet, tabsheet.getTab(c));\r
+                        tabsheet.removeComponent(c);\r
+                    }\r
+\r
+                });\r
+            } else {\r
+                c.setCloseHandler(new CloseHandler() {\r
+                    public void onTabClose(TabSheet tabsheet, Component c) {\r
+                        tabsheet.removeComponent(c);\r
+                    }\r
+                });\r
+            }\r
+\r
+        }\r
+    };\r
+    private Command<TabSheet, Boolean> setSelectedTabListener = new Command<TabSheet, Boolean>() {\r
+\r
+        public void execute(TabSheet c, Boolean value, Object data) {\r
+            if (value) {\r
+                c.addListener((SelectedTabChangeListener) TabSheetTest.this);\r
+            } else {\r
+                c.removeListener((SelectedTabChangeListener) TabSheetTest.this);\r
+            }\r
+\r
+        }\r
+    };\r
+\r
+    private Command<TabSheet, Integer> selectTab = new Command<TabSheet, Integer>() {\r
+        public void execute(TabSheet c, Integer index, Object data) {\r
+            c.setSelectedTab(c.getTab(index).getComponent());\r
+        }\r
+    };\r
+    private Command<TabSheet, Boolean> hideTabs = new Command<TabSheet, Boolean>() {\r
+\r
+        public void execute(TabSheet c, Boolean value, Object data) {\r
+            c.hideTabs(value);\r
+\r
+        }\r
+    };\r
+\r
+    @Override\r
+    protected Class<TabSheet> getTestClass() {\r
+        return TabSheet.class;\r
+    }\r
+\r
+    @Override\r
+    protected void createActions() {\r
+        super.createActions();\r
+        createSetTabCaptionIcon(CATEGORY_FEATURES);\r
+        createSelectTab(CATEGORY_FEATURES);\r
+        createClosableToggle(CATEGORY_FEATURES);\r
+        createCloseHandlerToggle(CATEGORY_LISTENERS);\r
+        createSelectListenerToggle(CATEGORY_LISTENERS);\r
+        createHideTabsToggle(CATEGORY_FEATURES);\r
+\r
+        // TODO\r
+        // Insert tab at x\r
+\r
+        for (TabSheet ts : getTestComponents()) {\r
+            // Workaround for #6191\r
+            ts.setWidth("100px");\r
+        }\r
+    }\r
+\r
+    private void createHideTabsToggle(String category) {\r
+        createBooleanAction("Hide tabs", category, false, hideTabs);\r
+\r
+    }\r
+\r
+    private void createSelectListenerToggle(String category) {\r
+        createBooleanAction("Selected tab listener", category, false,\r
+                setSelectedTabListener);\r
+\r
+    }\r
+\r
+    private void createCloseHandlerToggle(String category) {\r
+        createBooleanAction("Close event listener (handler)", category, false,\r
+                setCloseHandlerListener);\r
+\r
+    }\r
+\r
+    private void createClosableToggle(String category) {\r
+        String closableCategory = "Set tab closable";\r
+        createCategory(closableCategory, category);\r
+        for (int i = 0; i < 20; i++) {\r
+            String tabClosableCategory = "Tab " + i + " closable";\r
+\r
+            createCategory(tabClosableCategory, closableCategory);\r
+            createClickAction("true", tabClosableCategory, setTabClosable, i,\r
+                    true);\r
+            createClickAction("false", tabClosableCategory, setTabClosable, i,\r
+                    false);\r
+\r
+        }\r
+    }\r
+\r
+    private void createSelectTab(String category) {\r
+        String selectTabCategory = "Select tab";\r
+        createCategory(selectTabCategory, category);\r
+        for (int i = 0; i < 20; i++) {\r
+            createClickAction("Select tab " + i, selectTabCategory, selectTab,\r
+                    i);\r
+\r
+        }\r
+    }\r
+\r
+    private void createSetTabCaptionIcon(String category) {\r
+        String captionCategory = "Set tab caption";\r
+        String iconCategory = "Set tab icon";\r
+        createCategory(captionCategory, category);\r
+        createCategory(iconCategory, category);\r
+\r
+        String captionOptions[] = new String[] { "", "{id}", "Tab {id}",\r
+                "A long caption for tab {id}" };\r
+        LinkedHashMap<String, Resource> iconOptions = new LinkedHashMap<String, Resource>();\r
+        iconOptions.put("-", null);\r
+        iconOptions.put("16x16 (cachable)", ICON_16_USER_PNG_CACHEABLE);\r
+        iconOptions.put("16x16 (uncachable)", ICON_16_USER_PNG_UNCACHEABLE);\r
+        iconOptions.put("32x32 (cachable)", ICON_32_ATTENTION_PNG_CACHEABLE);\r
+        iconOptions\r
+                .put("32x32 (uncachable)", ICON_32_ATTENTION_PNG_UNCACHEABLE);\r
+        iconOptions.put("64x64 (cachable)", ICON_64_EMAIL_REPLY_PNG_CACHEABLE);\r
+        iconOptions.put("64x64 (uncachable)",\r
+                ICON_64_EMAIL_REPLY_PNG_UNCACHEABLE);\r
+\r
+        for (int i = 0; i < 20; i++) {\r
+            String tabCaptionCategory = "Tab " + i + " caption";\r
+            String tabIconCategory = "Tab " + i + " icon";\r
+\r
+            createCategory(tabCaptionCategory, captionCategory);\r
+            createCategory(tabIconCategory, iconCategory);\r
+\r
+            createClickAction("(null)", tabCaptionCategory, setTabCaption,\r
+                    Integer.valueOf(i), null);\r
+            createClickAction("(null)", tabIconCategory, setTabIcon,\r
+                    Integer.valueOf(i), null);\r
+\r
+            for (String option : captionOptions) {\r
+                option = option.replace("{id}", String.valueOf(i));\r
+                createClickAction(option, tabCaptionCategory, setTabCaption,\r
+                        Integer.valueOf(i), option);\r
+            }\r
+\r
+            for (String option : iconOptions.keySet()) {\r
+                Resource icon = iconOptions.get(option);\r
+                createClickAction(option, tabIconCategory, setTabIcon,\r
+                        Integer.valueOf(i), icon);\r
+            }\r
+\r
+        }\r
+\r
+    }\r
+\r
+    private void tabClosed(TabSheet tabSheet, Tab tab) {\r
+        log("Tab " + tabSheet.getTabPosition(tab) + " closed");\r
+    }\r
+\r
+    public void selectedTabChange(SelectedTabChangeEvent event) {\r
+        TabSheet ts = event.getTabSheet();\r
+        log("Tab " + ts.getTabPosition(ts.getTab(ts.getSelectedTab()))\r
+                + " selected");\r
+\r
+    }\r
+}\r