[richfaces-svn-commits] JBoss Rich Faces SVN: r433 - in trunk/richfaces/togglePanel/src/test/java/org/richfaces: component and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Apr 18 07:12:28 EDT 2007


Author: F.antonov
Date: 2007-04-18 07:12:28 -0400 (Wed, 18 Apr 2007)
New Revision: 433

Added:
   trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/
   trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/html/
   trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/html/TogglePanelRenderersTest.java
Modified:
   trunk/richfaces/togglePanel/src/test/java/org/richfaces/component/TogglePanelComponentTest.java
Log:
TogglePanel test cases development.

Modified: trunk/richfaces/togglePanel/src/test/java/org/richfaces/component/TogglePanelComponentTest.java
===================================================================
--- trunk/richfaces/togglePanel/src/test/java/org/richfaces/component/TogglePanelComponentTest.java	2007-04-16 22:42:15 UTC (rev 432)
+++ trunk/richfaces/togglePanel/src/test/java/org/richfaces/component/TogglePanelComponentTest.java	2007-04-18 11:12:28 UTC (rev 433)
@@ -53,7 +53,7 @@
 
     static {
         javaScripts.add("org.ajax4jsf.framework.ajax.AjaxScript");
-        javaScripts.add("prototype.js");
+        javaScripts.add("PrototypeScript");
         javaScripts.add("scripts/togglePanel.js");
     }
 
@@ -241,22 +241,6 @@
         }
     }
 
-    public void testgetPanel() throws Exception {
-        assertTrue(toggleControl.getPanel().getId().equals(togglePanel.getId()));
-        toggleControl.setFor("xxx");
-        try {
-            toggleControl.getPanel();
-            assertTrue(false);
-        } catch (Exception ex) {
-        }
-        toggleControl.setFor(null);
-        try {
-            toggleControl.getPanel();
-            assertTrue(false);
-        } catch (Exception ex) {
-        }
-    }
-
     /**
      * Test for UITogglePanel & UIToggleControl classes methods.
      * 
@@ -304,7 +288,7 @@
 
         HtmlPage page = renderView();
         assertNotNull(page);
-        System.out.println(page.asXml());
+        // System.out.println(page.asXml());
 
         HtmlElement div = page.getHtmlElementById(togglePanel
                 .getClientId(facesContext));
@@ -331,28 +315,105 @@
     }
 
     /**
-     * Test "doDecode" method of TogglePanel. Component in "client" mode.
-     * Immediate is true.
+     * Test for TogglePanel components "doDecode" method.
      */
-    public void testTogglePanelDoDecodeClientMode() throws Exception {
+    public void testDoDecodeClientMode() throws Exception {
 
-        togglePanel.setImmediate(true);
+        togglePanel.setImmediate(true);        
         togglePanel.setSwitchType(UITogglePanel.CLIENT_METHOD);
 
         externalContext.getRequestParameterMap().put(
                 togglePanel.getClientId(facesContext), "ABYBC");
         togglePanel.decode(facesContext);
 
+        externalContext.getRequestParameterMap().put(
+                toggleControl.getClientId(facesContext), "ABYBC");
+        toggleControl.decode(facesContext);
+
         MockViewRoot mockViewRoot = (MockViewRoot) facesContext.getViewRoot();
         Buffer events = mockViewRoot.getEventsQueue(facesContext,
                 PhaseId.APPLY_REQUEST_VALUES);
         assertNotNull(events);
-        assertEquals(1, events.size());
+        assertEquals(2, events.size());
 
         FacesEvent event = (FacesEvent) events.iterator().next();
         assertTrue(event instanceof SwitchablePanelSwitchEvent);
         SwitchablePanelSwitchEvent switchEvent = (SwitchablePanelSwitchEvent) event;
         assertEquals(switchEvent.getValue(), "ABYBC");
+        
+        events = mockViewRoot.getEventsQueue(facesContext,
+                PhaseId.INVOKE_APPLICATION);
+        assertNotNull(events);
+        assertEquals(1, events.size());
+
+        event = (FacesEvent) events.iterator().next();
+
+        assertTrue(event instanceof ActionEvent);
+        ActionEvent actionEvent = (ActionEvent) event;
+        assertEquals(actionEvent.getSource(), toggleControl);
+
     }
 
+    /**
+     * Test "doDecode" method. No events must be generated.
+     */
+    public void testDoDecodeNoEvents() throws Exception {
+
+        togglePanel.setSwitchType(UITogglePanel.CLIENT_METHOD);
+
+        externalContext.getRequestParameterMap().put("ABYBC", "ABYBC");
+        toggleControl.decode(facesContext);
+        togglePanel.decode(facesContext);
+
+        MockViewRoot mockViewRoot = (MockViewRoot) facesContext.getViewRoot();
+        Buffer events = mockViewRoot.getEventsQueue(facesContext,
+                PhaseId.INVOKE_APPLICATION);
+        assertNotNull(events);
+        assertEquals(0, events.size());
+
+        togglePanel.setSwitchType(UITogglePanel.AJAX_METHOD);
+        externalContext.getRequestParameterMap().put(
+                togglePanel.getClientId(facesContext), "ABYBC");
+        externalContext.getRequestParameterMap().put(
+                toggleControl.getClientId(facesContext), "ABYBC");
+        toggleControl.decode(facesContext);
+        togglePanel.decode(facesContext);
+
+        mockViewRoot = (MockViewRoot) facesContext.getViewRoot();
+        events = mockViewRoot.getEventsQueue(facesContext,
+                PhaseId.INVOKE_APPLICATION);
+        assertNotNull(events);
+        assertEquals(0, events.size());
+    }
+
+    /**
+     * Test for UIToggleControl getPanel method.
+     */
+    public void testUIToggleControlGetPanelMethod() throws Exception {
+
+        assertEquals(toggleControl.getPanel(), togglePanel);
+
+        toggleControl.setFor("ABYBC");
+        try {
+            UIComponent targetComponent = toggleControl.getPanel();
+            assertTrue(false);
+        } catch (Exception e) {
+            assertTrue(e instanceof FacesException);
+        }
+
+        toggleControl.setFor(null);
+        togglePanel.getChildren().add(a);
+        a.getChildren().add(b);
+        b.getChildren().add(toggleControl);
+        assertEquals(toggleControl.getPanel(), togglePanel);
+
+        togglePanel.getChildren().remove(a);
+        try {
+            UIComponent targetComponent = toggleControl.getPanel();
+            assertTrue(false);
+        } catch (Exception e) {
+            assertTrue(e instanceof FacesException);
+        }
+    }
+
 }

Added: trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/html/TogglePanelRenderersTest.java
===================================================================
--- trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/html/TogglePanelRenderersTest.java	                        (rev 0)
+++ trunk/richfaces/togglePanel/src/test/java/org/richfaces/renderkit/html/TogglePanelRenderersTest.java	2007-04-18 11:12:28 UTC (rev 433)
@@ -0,0 +1,152 @@
+/**
+ * License Agreement.
+ *
+ *  JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007  Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
+ */
+
+package org.richfaces.renderkit.html;
+
+import javax.faces.FacesException;
+import javax.faces.component.UIComponent;
+import javax.faces.component.UIComponentBase;
+import javax.faces.component.UIOutput;
+import javax.faces.component.html.HtmlForm;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.richfaces.component.UIToggleControl;
+import org.richfaces.component.UITogglePanel;
+
+/**
+ * Unit test for TogglePanel renderers.
+ */
+public class TogglePanelRenderersTest extends AbstractAjax4JsfTestCase {
+
+    private UITogglePanel togglePanel;
+
+    private UIToggleControl toggleControl;
+
+    private UIComponent form;
+
+    private UIOutput a;
+
+    private UIOutput b;
+
+    private static ToggleControlRenderer controlRenderer = new ToggleControlRenderer();
+
+    private static TogglePanelRenderer panelRenderer = new TogglePanelRenderer();
+
+    /**
+     * Create the test case
+     * 
+     * @param testName
+     *            name of the test case
+     */
+    public TogglePanelRenderersTest(String testName) {
+        super(testName);
+    }
+
+    public void setUp() throws Exception {
+        super.setUp();
+
+        a = (UIOutput) application.createComponent(UIOutput.COMPONENT_TYPE);
+        a.setId("a_output");
+        a.setValue("a");
+
+        b = (UIOutput) application.createComponent(UIOutput.COMPONENT_TYPE);
+        b.setId("b_output");
+        b.setValue("b");
+
+        form = new HtmlForm();
+        form.setId("form");
+        facesContext.getViewRoot().getChildren().add(form);
+
+        togglePanel = (UITogglePanel) application
+                .createComponent("org.richfaces.TogglePanel");
+        togglePanel.setId("TogglePanel");
+        togglePanel.getFacets().put("a", a);
+        togglePanel.getFacets().put("b", b);
+        togglePanel.setStateOrder("a,b");
+        togglePanel.setInitialState("a");
+
+        form.getChildren().add(togglePanel);
+
+        toggleControl = (UIToggleControl) application
+                .createComponent("org.richfaces.ToggleControl");
+        toggleControl.setId("ToggleControl");
+        toggleControl.setFor(togglePanel.getId());
+        form.getChildren().add(toggleControl);
+    }
+
+    public void tearDown() throws Exception {
+        super.tearDown();
+        togglePanel = null;
+        toggleControl = null;
+        form = null;
+    }
+
+    /**
+     * Test for some ToggleControl renderer methods.
+     */
+    public void testToggleControlRendererMethods() throws Exception {
+
+        assertEquals(controlRenderer.getComponentClass(), UIToggleControl.class);
+
+        toggleControl.getAttributes().put("onclick", "toggleControlOnClick");
+        String result = controlRenderer.getOnClick(facesContext, toggleControl);
+        assertTrue(result.contains("toggleControlOnClick;"));
+        assertTrue(result.contains("TogglePanelManager.toggleOnServer"));
+
+        togglePanel.setSwitchType(UITogglePanel.AJAX_METHOD);
+        toggleControl.getAttributes().put("onclick", "toggleControlOnClick;");
+        result = controlRenderer.getOnClick(facesContext, toggleControl);
+        assertTrue(result.contains("toggleControlOnClick;"));
+        assertTrue(result.contains("A4J.AJAX.Submit"));
+        toggleControl.getAttributes().put("disabled", "true");
+        result = controlRenderer.getOnClick(facesContext, toggleControl);
+        assertEquals("return false;", result);
+        toggleControl.getAttributes().put("disabled", "false");
+
+        togglePanel.setSwitchType(UITogglePanel.CLIENT_METHOD);
+        toggleControl.setSwitchToState("b");
+        result = controlRenderer.getOnClick(facesContext, toggleControl);
+        assertTrue(result.contains("toggleControlOnClick;"));
+        assertTrue(result.contains("TogglePanelManager.toggleOnClient"));
+
+        toggleControl.setSwitchToState(null);
+        String result2 = controlRenderer
+                .getOnClick(facesContext, toggleControl);
+        assertTrue(!result.equalsIgnoreCase(result2));
+    }
+
+    /**
+     * Test for some TogglePanel renderer methods..
+     */
+    public void testTogglePanelRendererMethods() throws Exception {
+
+        assertEquals(panelRenderer.getComponentClass(), UITogglePanel.class);
+
+        togglePanel.setStateOrder(null);
+        try {
+            panelRenderer.handleFacets(facesContext, togglePanel);
+            assertTrue(false);
+        } catch (Exception e) {
+            assertTrue(e instanceof FacesException);
+        }
+    }
+}




More information about the richfaces-svn-commits mailing list