[richfaces-svn-commits] JBoss Rich Faces SVN: r423 - trunk/richfaces/togglePanel/src/test/java/org/richfaces/component.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Sat Apr 14 10:21:20 EDT 2007


Author: F.antonov
Date: 2007-04-14 10:21:20 -0400 (Sat, 14 Apr 2007)
New Revision: 423

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-14 14:00:05 UTC (rev 422)
+++ trunk/richfaces/togglePanel/src/test/java/org/richfaces/component/TogglePanelComponentTest.java	2007-04-14 14:21:20 UTC (rev 423)
@@ -19,7 +19,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
  */
 
-
 package org.richfaces.component;
 
 import com.gargoylesoftware.htmlunit.html.HtmlElement;
@@ -28,11 +27,19 @@
 import org.richfaces.event.SwitchablePanelSwitchEvent;
 import org.richfaces.component.UISwitchablePanel;
 import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.ajax4jsf.tests.MockViewRoot;
+import org.apache.commons.collections.Buffer;
 import org.apache.commons.lang.StringUtils;
+
+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.event.ActionEvent;
+import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
+
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -51,45 +58,53 @@
     }
 
     private UITogglePanel togglePanel;
+
     private UIToggleControl toggleControl;
+
     private UIComponent form;
+
     private UIOutput a;
+
     private UIOutput b;
+
     private UIOutput c;
 
     /**
      * Create the test case
-     *
-     * @param testName name of the test case
+     * 
+     * @param testName
+     *            name of the test case
      */
     public TogglePanelComponentTest(String testName) {
         super(testName);
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
+     * 
      * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
      */
     public void setUp() throws Exception {
         super.setUp();
-        
-        a = (UIOutput)application.createComponent(UIOutput.COMPONENT_TYPE);
+
+        a = (UIOutput) application.createComponent(UIOutput.COMPONENT_TYPE);
         a.setId("a_output");
         a.setValue("a");
 
-        b = (UIOutput)application.createComponent(UIOutput.COMPONENT_TYPE);
+        b = (UIOutput) application.createComponent(UIOutput.COMPONENT_TYPE);
         b.setId("b_output");
         b.setValue("b");
 
-        c = (UIOutput)application.createComponent(UIOutput.COMPONENT_TYPE);
+        c = (UIOutput) application.createComponent(UIOutput.COMPONENT_TYPE);
         c.setId("c_output");
         c.setValue("c");
-        
-        
+
         form = new HtmlForm();
         form.setId("form");
         facesContext.getViewRoot().getChildren().add(form);
 
-        togglePanel = (UITogglePanel)application.createComponent("org.richfaces.TogglePanel");
+        togglePanel = (UITogglePanel) application
+                .createComponent("org.richfaces.TogglePanel");
         togglePanel.setId("TogglePanel");
         togglePanel.getFacets().put("a", a);
         togglePanel.getFacets().put("b", b);
@@ -99,46 +114,51 @@
 
         form.getChildren().add(togglePanel);
 
-        toggleControl = (UIToggleControl)application.createComponent("org.richfaces.ToggleControl");
+        toggleControl = (UIToggleControl) application
+                .createComponent("org.richfaces.ToggleControl");
         toggleControl.setId("ToggleControl");
-        toggleControl.setFor(togglePanel.getId());        
+        toggleControl.setFor(togglePanel.getId());
         form.getChildren().add(toggleControl);
     }
 
-    /* (non-Javadoc)
+    /*
+     * (non-Javadoc)
+     * 
      * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
      */
     public void tearDown() throws Exception {
         super.tearDown();
         togglePanel = null;
         toggleControl = null;
-        form = null;        
+        form = null;
     }
 
-      /**
+    /**
      * Test component rendering
-     *
+     * 
      * @throws Exception
      */
- 
+
     public void testRender() throws Exception {
         HtmlPage page = renderView();
         assertNotNull(page);
-        //System.out.println(page.asXml());
+        // System.out.println(page.asXml());
 
-        HtmlElement div = page.getHtmlElementById(togglePanel.getClientId(facesContext));
+        HtmlElement div = page.getHtmlElementById(togglePanel
+                .getClientId(facesContext));
         assertNotNull(div);
         assertEquals("div", div.getNodeName());
 
-
-        HtmlElement div_control = page.getHtmlElementById(toggleControl.getClientId(facesContext));        
+        HtmlElement div_control = page.getHtmlElementById(toggleControl
+                .getClientId(facesContext));
         String classAttr = div_control.getAttributeValue("class");
         assertTrue(classAttr.contains("dr-tglctrl"));
         assertTrue(classAttr.contains("rich-tglctrl"));
     }
+
     /**
      * Test style rendering
-     *
+     * 
      * @throws Exception
      */
     public void testRenderStyle() throws Exception {
@@ -148,17 +168,20 @@
 
         assertEquals(1, links.size());
         HtmlElement link = (HtmlElement) links.get(0);
-        assertTrue(link.getAttributeValue("href").contains("org/richfaces/renderkit/html/css/toggleControl.xcss"));
+        assertTrue(link.getAttributeValue("href").contains(
+                "org/richfaces/renderkit/html/css/toggleControl.xcss"));
     }
+
     /**
      * Test script rendering
-     *
+     * 
      * @throws Exception
-     */    
+     */
     public void testRenderScript() throws Exception {
         HtmlPage page = renderView();
         assertNotNull(page);
-        List scripts = page.getDocumentElement().getHtmlElementsByTagName("script");
+        List scripts = page.getDocumentElement().getHtmlElementsByTagName(
+                "script");
 
         for (Iterator it = scripts.iterator(); it.hasNext();) {
             HtmlScript item = (HtmlScript) it.next();
@@ -179,62 +202,157 @@
             }
         }
     }
-    
+
     public void testSwitch() throws Exception {
 
         HtmlPage page = renderView();
-        System.out.println(page.asXml());
+        // System.out.println(page.asXml());
         togglePanel.setValue("a");
-        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,null, toggleControl));
-        assertFalse(((String)togglePanel.getValue()).equals("a"));
-        assertTrue(((String)togglePanel.getValue()).equals("b"));
-        
+        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel, null,
+                toggleControl));
+        assertFalse(((String) togglePanel.getValue()).equals("a"));
+        assertTrue(((String) togglePanel.getValue()).equals("b"));
+
         toggleControl.setSwitchToState("a");
-        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,"null", toggleControl));
-        assertFalse(((String)togglePanel.getValue()).equals("b"));
-        assertTrue(((String)togglePanel.getValue()).equals("a"));
-        
+        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,
+                "null", toggleControl));
+        assertFalse(((String) togglePanel.getValue()).equals("b"));
+        assertTrue(((String) togglePanel.getValue()).equals("a"));
+
         toggleControl.setSwitchToState(null);
         togglePanel.setStateOrder("c,b,a");
-        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,"null", toggleControl));
-        assertFalse(((String)togglePanel.getValue()).equals("a"));
-        assertTrue(((String)togglePanel.getValue()).equals("c"));
+        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,
+                "null", toggleControl));
+        assertFalse(((String) togglePanel.getValue()).equals("a"));
+        assertTrue(((String) togglePanel.getValue()).equals("c"));
 
-        
         togglePanel.setValue(null);
         togglePanel.setStateOrder("c,b,a");
-        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,"null", toggleControl));        
-        assertTrue(((String)togglePanel.getValue()).equals("c"));
-        
+        togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,
+                "null", toggleControl));
+        assertTrue(((String) togglePanel.getValue()).equals("c"));
 
-        toggleControl.setSwitchToState("d");        
+        toggleControl.setSwitchToState("d");
         try {
-        	togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,"null", toggleControl));
+            togglePanel.broadcast(new SwitchablePanelSwitchEvent(togglePanel,
+                    "null", toggleControl));
             assertTrue(false);
-        } catch(Exception ex) {
-        }               
-    }    
+        } catch (Exception ex) {
+        }
+    }
 
     public void testgetPanel() throws Exception {
-    	assertTrue(toggleControl.getPanel().getId().equals(togglePanel.getId()));
-    	toggleControl.setFor("xxx");
+        assertTrue(toggleControl.getPanel().getId().equals(togglePanel.getId()));
+        toggleControl.setFor("xxx");
         try {
-        	toggleControl.getPanel();
+            toggleControl.getPanel();
             assertTrue(false);
-        } catch(Exception ex) {
-        }               
-    	toggleControl.setFor(null);
+        } catch (Exception ex) {
+        }
+        toggleControl.setFor(null);
         try {
-        	toggleControl.getPanel();
+            toggleControl.getPanel();
             assertTrue(false);
-        } catch(Exception ex) {
-        }               
+        } catch (Exception ex) {
+        }
+    }
 
-        
+    /**
+     * Test for UITogglePanel & UIToggleControl classes methods.
+     * 
+     * @throws Exception
+     */
+    public void testUIComponents() throws Exception {
+
+        togglePanel.setStateOrder("A,B,Y,B,C");
+        List stateOrderList = togglePanel.getStateOrderList();
+        assertNotNull(stateOrderList);
+        assertEquals(5, stateOrderList.size());
+
+        togglePanel.setStateOrder(null);
+        stateOrderList = togglePanel.getStateOrderList();
+        assertNotNull(stateOrderList);
+        assertEquals(0, stateOrderList.size());
+
+        Object switchValue = togglePanel.convertSwitchValue(new UIOutput(),
+                "ABYBC");
+        assertEquals("ABYBC", (String) switchValue);
+
+        toggleControl.setPanelId(togglePanel.getClientId(facesContext));
+        toggleControl.setReRender(togglePanel.getClientId(facesContext));
+        assertEquals(togglePanel.getClientId(facesContext), toggleControl
+                .getReRender());
+
+        toggleControl.setFor(null);
+        try {
+            toggleControl.getPanel();
+            assertTrue(false);
+        } catch (FacesException e) {
+        }
     }
-    
-}
 
+    /**
+     * Test for TogglePanel in "client" mode.
+     * 
+     * @throws Exception
+     */
+    public void testTogglePanelInClientSwichMode() throws Exception {
 
+        togglePanel.setSwitchType(UITogglePanel.CLIENT_METHOD);
 
+        toggleControl.getAttributes().put("onclick", "someOnClick");
 
+        HtmlPage page = renderView();
+        assertNotNull(page);
+        System.out.println(page.asXml());
+
+        HtmlElement div = page.getHtmlElementById(togglePanel
+                .getClientId(facesContext));
+        assertNotNull(div);
+        assertEquals("div", div.getNodeName());
+
+        HtmlElement anchor = (HtmlElement) div.getHtmlElementById(toggleControl
+                .getClientId(facesContext));
+        assertNotNull(anchor);
+        String classAttr = anchor.getAttributeValue("onclick");
+        assertTrue(classAttr.contains("someOnClick;"));
+
+        List divs = div.getHtmlElementsByTagName("div");
+        assertTrue(divs.size() > 0);
+        assertEquals(togglePanel.getStateOrderList().size() + 1, 4);
+        div = (HtmlElement) divs.get(0);
+        assertNotNull(div);
+        classAttr = div.getAttributeValue("style");
+        assertTrue(classAttr.contains("display:"));
+        div = (HtmlElement) divs.get(togglePanel.getStateOrderList().size());
+        assertNotNull(div);
+        classAttr = div.getAttributeValue("style");
+        assertTrue(classAttr.contains("display: none;"));
+    }
+
+    /**
+     * Test "doDecode" method of TogglePanel. Component in "client" mode.
+     * Immediate is true.
+     */
+    public void testTogglePanelDoDecodeClientMode() throws Exception {
+
+        togglePanel.setImmediate(true);
+        togglePanel.setSwitchType(UITogglePanel.CLIENT_METHOD);
+
+        externalContext.getRequestParameterMap().put(
+                togglePanel.getClientId(facesContext), "ABYBC");
+        togglePanel.decode(facesContext);
+
+        MockViewRoot mockViewRoot = (MockViewRoot) facesContext.getViewRoot();
+        Buffer events = mockViewRoot.getEventsQueue(facesContext,
+                PhaseId.APPLY_REQUEST_VALUES);
+        assertNotNull(events);
+        assertEquals(1, events.size());
+
+        FacesEvent event = (FacesEvent) events.iterator().next();
+        assertTrue(event instanceof SwitchablePanelSwitchEvent);
+        SwitchablePanelSwitchEvent switchEvent = (SwitchablePanelSwitchEvent) event;
+        assertEquals(switchEvent.getValue(), "ABYBC");
+    }
+
+}




More information about the richfaces-svn-commits mailing list