Author: alexsmirnov
Date: 2007-03-29 22:02:13 -0400 (Thu, 29 Mar 2007)
New Revision: 216
Added:
trunk/richfaces/panel/src/test/java/org/richfaces/component/html/
trunk/richfaces/panel/src/test/java/org/richfaces/component/html/HtmlPanelTest.java
trunk/richfaces/panel/src/test/java/org/richfaces/taglib/
trunk/richfaces/panel/src/test/java/org/richfaces/taglib/PanelTagTest.java
trunk/richfaces/panel/src/test/resources/
trunk/richfaces/panel/src/test/resources/WEB-INF/
trunk/richfaces/panel/src/test/resources/WEB-INF/web.xml
Modified:
trunk/richfaces/panel/pom.xml
trunk/richfaces/panel/src/test/java/org/richfaces/component/JSFComponentTest.java
Log:
About 70% of a panel code covered by a Junit tests.
Setup build for a clover reports.
Modified: trunk/richfaces/panel/pom.xml
===================================================================
--- trunk/richfaces/panel/pom.xml 2007-03-29 19:10:02 UTC (rev 215)
+++ trunk/richfaces/panel/pom.xml 2007-03-30 02:02:13 UTC (rev 216)
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>richfaces-parent</artifactId>
@@ -14,7 +14,7 @@
<plugin>
<groupId>org.ajax4jsf.cdk</groupId>
<artifactId>maven-cdk-plugin</artifactId>
- <version>1.1.1-SNAPSHOT</version>
+ <version>1.1.1-SNAPSHOT</version>
<executions>
<execution>
<phase>generate-sources</phase>
@@ -36,9 +36,10 @@
</build>
<dependencies>
<dependency>
- <groupId>org.richfaces</groupId>
- <artifactId>common</artifactId>
- <version>${project.version}</version>
+ <groupId>org.richfaces</groupId>
+ <artifactId>common</artifactId>
+ <version>${project.version}</version>
</dependency>
</dependencies>
-</project>
\ No newline at end of file
+</project>
+
Modified:
trunk/richfaces/panel/src/test/java/org/richfaces/component/JSFComponentTest.java
===================================================================
---
trunk/richfaces/panel/src/test/java/org/richfaces/component/JSFComponentTest.java 2007-03-29
19:10:02 UTC (rev 215)
+++
trunk/richfaces/panel/src/test/java/org/richfaces/component/JSFComponentTest.java 2007-03-30
02:02:13 UTC (rev 216)
@@ -21,18 +21,34 @@
package org.richfaces.component;
+import java.util.List;
+
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import javax.faces.component.UIComponent;
+import javax.faces.component.html.HtmlCommandLink;
+import javax.faces.component.html.HtmlOutputText;
+import javax.faces.render.Renderer;
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.richfaces.component.html.HtmlPanel;
+import org.richfaces.renderkit.html.PanelRenderer;
+
+import com.gargoylesoftware.htmlunit.html.HtmlElement;
+import com.gargoylesoftware.htmlunit.html.HtmlPage;
+
/**
* Unit test for simple Component.
*/
public class JSFComponentTest
- extends TestCase
+ extends AbstractAjax4JsfTestCase
{
- /**
+
+
+ HtmlPanel htmlPanel;
+
+ /**
* Create the test case
*
* @param testName name of the test case
@@ -42,12 +58,84 @@
super( testName );
}
+ public void setUp() throws Exception {
+ super.setUp();
+ htmlPanel = new HtmlPanel();
+ htmlPanel.setId("panel");
+ htmlPanel.setRendererType("panelRenderer");
+ facesContext.getViewRoot().getChildren().add(htmlPanel);
+ renderKit.addRenderer(HtmlPanel.COMPONENT_FAMILY, "panelRenderer", new
PanelRenderer());
+ }
+ public void tearDown() throws Exception {
+ super.tearDown();
+ htmlPanel = null;
+ }
/**
* Rigourous Test :-)
+ * @throws Exception
*/
- public void testComponent()
+ public void testRender() throws Exception
{
- assertTrue( true );
+ HtmlPage page = renderView();
+ assertNotNull(page);
+ System.out.println(page.asXml());
+ HtmlElement div = page.getHtmlElementById("panel");
+ assertNotNull(div);
+ assertEquals("div", div.getNodeName());
}
+
+ /**
+ * Rigourous Test :-)
+ * @throws Exception
+ */
+ public void testRenderStyle() throws Exception
+ {
+ HtmlPage page = renderView();
+ assertNotNull(page);
+ List elementsByTagName =
page.getDocumentElement().getHtmlElementsByTagName("link");
+ assertEquals(1, elementsByTagName.size());
+ HtmlElement link = (HtmlElement) elementsByTagName.get(0);
+
assertTrue(link.getAttributeValue("href").contains("org/richfaces/renderkit/html/css/panel.xcss"));
+ }
+
+ /**
+ * Rigourous Test :-)
+ * @throws Exception
+ */
+ public void testRenderHeader() throws Exception
+ {
+ UIComponent text = createComponent(HtmlOutputText.COMPONENT_TYPE,
HtmlOutputText.class.getName(), null, null , null);
+ htmlPanel.getFacets().put("header", text);
+ HtmlPage page = renderView();
+ assertNotNull(page);
+ System.out.println(page.asXml());
+ HtmlElement div = page.getHtmlElementById("panel_header");
+ assertNotNull(div);
+ }
+
+ /**
+ * Rigourous Test :-)
+ * @throws Exception
+ */
+ public void testRenderAttributes() throws Exception
+ {
+ Object[][] attributes
={{"style","xxx","style","xxx"},{"onclick","alert()","onclick","alert()"},{"styleClass","yyy","class","dr-pnl
rich-panel yyy"}};
+ UIComponent text = createComponent(HtmlOutputText.COMPONENT_TYPE,
HtmlOutputText.class.getName(), null, null , null);
+ htmlPanel.getFacets().put("header", text);
+ for (int i = 0; i < attributes.length; i++) {
+ Object[] attr = attributes[i];
+ htmlPanel.getAttributes().put(attr[0], attr[1]);
+ }
+ HtmlPage page = renderView();
+ assertNotNull(page);
+ System.out.println(page.asXml());
+ HtmlElement div = page.getHtmlElementById("panel");
+ assertNotNull(div);
+ for (int i = 0; i < attributes.length; i++) {
+ Object[] attr = attributes[i];
+ assertEquals(attr[3],div.getAttributeValue((String) attr[2]));
+ }
+
+ }
}
Added:
trunk/richfaces/panel/src/test/java/org/richfaces/component/html/HtmlPanelTest.java
===================================================================
--- trunk/richfaces/panel/src/test/java/org/richfaces/component/html/HtmlPanelTest.java
(rev 0)
+++
trunk/richfaces/panel/src/test/java/org/richfaces/component/html/HtmlPanelTest.java 2007-03-30
02:02:13 UTC (rev 216)
@@ -0,0 +1,34 @@
+package org.richfaces.component.html;
+
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+
+import junit.framework.TestCase;
+
+public class HtmlPanelTest extends AbstractAjax4JsfTestCase {
+
+ public HtmlPanelTest(String name) {
+ super(name);
+ }
+
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ public void testSaveStateFacesContext() {
+ HtmlPanel panel = new HtmlPanel();
+ panel.setBodyClass("panelBodyClass");
+ panel.setHeaderClass("headerClass");
+ Object state = panel.saveState(facesContext);
+ HtmlPanel newPanel = new HtmlPanel();
+ newPanel.restoreState(facesContext, state);
+ assertEquals("panelBodyClass", newPanel.getBodyClass());
+ assertEquals("headerClass", newPanel.getHeaderClass());
+ }
+
+}
Added: trunk/richfaces/panel/src/test/java/org/richfaces/taglib/PanelTagTest.java
===================================================================
--- trunk/richfaces/panel/src/test/java/org/richfaces/taglib/PanelTagTest.java
(rev 0)
+++ trunk/richfaces/panel/src/test/java/org/richfaces/taglib/PanelTagTest.java 2007-03-30
02:02:13 UTC (rev 216)
@@ -0,0 +1,96 @@
+/**
+ *
+ */
+package org.richfaces.taglib;
+
+import java.io.IOException;
+import java.util.Enumeration;
+
+import javax.faces.webapp.UIComponentTag;
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpSession;
+import javax.servlet.jsp.JspException;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.el.ExpressionEvaluator;
+import javax.servlet.jsp.el.VariableResolver;
+import javax.servlet.jsp.tagext.Tag;
+
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+import org.richfaces.component.html.HtmlPanel;
+
+/**
+ * @author asmirnov
+ *
+ */
+public class PanelTagTest extends AbstractAjax4JsfTestCase {
+
+ PanelTag panelTag;
+
+
+ /**
+ * @param name
+ */
+ public PanelTagTest(String name) {
+ super(name);
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#setUp()
+ */
+ public void setUp() throws Exception {
+ super.setUp();
+ panelTag = new PanelTag();
+ panelTag.setParent(new UIComponentTag(){
+
+ public String getComponentType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public String getRendererType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public int doStartTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ public int doEndTag() throws JspException {
+ // TODO Auto-generated method stub
+ return Tag.EVAL_BODY_INCLUDE;
+ }
+
+ });
+ }
+
+ /* (non-Javadoc)
+ * @see org.ajax4jsf.tests.AbstractAjax4JsfTestCase#tearDown()
+ */
+ public void tearDown() throws Exception {
+ super.tearDown();
+ panelTag = null;
+ }
+
+ /**
+ * Test method for {@link
org.richfaces.taglib.PanelTag#setProperties(javax.faces.component.UIComponent)}.
+ * @throws JspException
+ */
+ public void testSetPropertiesUIComponent() throws JspException {
+ HtmlPanel panel = new HtmlPanel();
+ panelTag.setBodyClass("panel");
+ panelTag.setHeaderClass("headClass");
+ panelTag.setProperties(panel);
+ assertEquals("panel", panel.getBodyClass());
+ assertEquals("headClass", panel.getHeaderClass());
+ }
+
+}
Added: trunk/richfaces/panel/src/test/resources/WEB-INF/web.xml
===================================================================
--- trunk/richfaces/panel/src/test/resources/WEB-INF/web.xml (rev
0)
+++ trunk/richfaces/panel/src/test/resources/WEB-INF/web.xml 2007-03-30 02:02:13 UTC (rev
216)
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ <display-name>testcase</display-name>
+ <context-param>
+ <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
+ <param-value>server</param-value>
+ </context-param>
+ <context-param>
+ <param-name>javax.faces.CONFIG_FILES</param-name>
+ <param-value>/WEB-INF/faces-config.xml</param-value>
+ </context-param>
+
+ <filter>
+ <description>Convert HTML to XML</description>
+ <display-name>Filter</display-name>
+ <filter-name>A4J</filter-name>
+ <filter-class>org.ajax4jsf.Filter</filter-class>
+ <init-param>
+ <param-name>publicid</param-name>
+ <param-value>-//W3C//DTD XHTML 1.0 Transitional//EN</param-value>
+ </init-param>
+ <init-param>
+ <param-name>systemid</param-name>
+
<
param-value>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd<...
+ </init-param>
+ <init-param>
+ <param-name>namespace</param-name>
+ <
param-value>http://www.w3.org/1999/xhtml</param-value>
+ </init-param>
+ <init-param>
+ <param-name>forceparser</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ <init-param>
+ <param-name>rewriteid</param-name>
+ <param-value>false</param-value>
+ </init-param>
+ <init-param>
+ <param-name>mime-type</param-name>
+ <param-value>text/xml</param-value>
+ </init-param>
+ <init-param>
+ <param-name>log4j-init-file</param-name>
+ <param-value>WEB-INF/log4j.xml</param-value>
+ </init-param>
+ <init-param>
+ <param-name>enable-cache</param-name>
+ <param-value>true</param-value>
+ </init-param>
+ </filter>
+ <filter-mapping>
+ <filter-name>A4J</filter-name>
+ <url-pattern>*.jsf</url-pattern>
+ </filter-mapping>
+ <filter-mapping>
+ <filter-name>A4J</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+ <listener>
+ <listener-class>com.sun.faces.config.ConfigureListener</listener-class>
+ </listener>
+ <servlet>
+ <servlet-name>Faces Servlet</servlet-name>
+ <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>Faces Servlet</servlet-name>
+ <url-pattern>*.jsf</url-pattern>
+ </servlet-mapping>
+</web-app>