You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bd...@apache.org on 2005/09/23 14:12:52 UTC
svn commit: r291105 - in /myfaces: api/trunk/src/test/javax/faces/component/
build/trunk/
tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/
tomahawk/trunk/src/test/org/ tomahawk/trunk/src/test/org/apache/
tomahawk/trunk/src/test/org/...
Author: bdudney
Date: Fri Sep 23 05:12:47 2005
New Revision: 291105
URL: http://svn.apache.org/viewcvs?rev=291105&view=rev
Log:
several testing additions as well as cleaning up some imports
Added:
myfaces/api/trunk/src/test/javax/faces/component/UIComponentBaseTest.java
myfaces/api/trunk/src/test/javax/faces/component/UIComponentMock.java
myfaces/api/trunk/src/test/javax/faces/component/_AttachedStateWrapperTest.java
myfaces/build/trunk/cactus-log4j.properties
myfaces/build/trunk/cactus-web.xml
myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/Calendar.properties
myfaces/tomahawk/trunk/src/test/org/
myfaces/tomahawk/trunk/src/test/org/apache/
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRenderCactus.java
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRendererTest.java
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKit.java
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKitFactory.java
myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/TestBean.java
Added: myfaces/api/trunk/src/test/javax/faces/component/UIComponentBaseTest.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/test/javax/faces/component/UIComponentBaseTest.java?rev=291105&view=auto
==============================================================================
--- myfaces/api/trunk/src/test/javax/faces/component/UIComponentBaseTest.java (added)
+++ myfaces/api/trunk/src/test/javax/faces/component/UIComponentBaseTest.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,370 @@
+package javax.faces.component;
+
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+
+import junit.framework.TestCase;
+
+import org.easymock.MockControl;
+import org.easymock.classextension.MockClassControl;
+
+public class UIComponentBaseTest extends TestCase {
+ UIComponentBase mock = null;
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(UIComponentBaseTest.class);
+ }
+
+ public UIComponentBaseTest(String name) {
+ super(name);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ mock = new UIComponentMock();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ mock = null;
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.isRendered()'
+ */
+ public void testIsRendered() {
+ // defaults to true
+ assertTrue(mock.isRendered());
+ }
+
+ public void testIsRenderedValueSet() {
+ mock.setRendered(true);
+ assertTrue(mock.isRendered());
+ mock.setRendered(false);
+ assertFalse(mock.isRendered());
+ }
+
+ public void testIsRenderedBinding() {
+ MockControl bindingControl = MockClassControl.createControl(ValueBinding.class);
+ ValueBinding mockBinding = (ValueBinding)bindingControl.getMock();
+ mockBinding.getValue(null);
+ bindingControl.setReturnValue(Boolean.FALSE);
+ bindingControl.replay();
+ mock.setValueBinding("rendered", mockBinding);
+ assertFalse(mock.isRendered());
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getRendersChildren()'
+ */
+ public void testGetRendersChildren() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getChildCount()'
+ */
+ public void testGetChildCount() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.UIComponentBase()'
+ */
+ public void testUIComponentBase() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getAttributes()'
+ */
+ public void testGetAttributes() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getValueBinding(String)'
+ */
+ public void testGetValueBindingString() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.setValueBinding(String, ValueBinding)'
+ */
+ public void testSetValueBindingStringValueBinding() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getClientId(FacesContext)'
+ */
+ public void testGetClientIdFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getId()'
+ */
+ public void testGetId() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.setId(String)'
+ */
+ public void testSetIdString() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getParent()'
+ */
+ public void testGetParent() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.setParent(UIComponent)'
+ */
+ public void testSetParentUIComponent() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getChildren()'
+ */
+ public void testGetChildren() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.findComponent(String)'
+ */
+ public void testFindComponentString() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getFacets()'
+ */
+ public void testGetFacets() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getFacet(String)'
+ */
+ public void testGetFacetString() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getFacetsAndChildren()'
+ */
+ public void testGetFacetsAndChildren() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.broadcast(FacesEvent)'
+ */
+ public void testBroadcastFacesEvent() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.decode(FacesContext)'
+ */
+ public void testDecodeFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.encodeBegin(FacesContext)'
+ */
+ public void testEncodeBeginFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.encodeChildren(FacesContext)'
+ */
+ public void testEncodeChildrenFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.encodeEnd(FacesContext)'
+ */
+ public void testEncodeEndFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.addFacesListener(FacesListener)'
+ */
+ public void testAddFacesListenerFacesListener() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getFacesListeners(Class)'
+ */
+ public void testGetFacesListenersClass() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.removeFacesListener(FacesListener)'
+ */
+ public void testRemoveFacesListenerFacesListener() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.queueEvent(FacesEvent)'
+ */
+ public void testQueueEventFacesEvent() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.processDecodes(FacesContext)'
+ */
+ public void testProcessDecodesFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.processValidators(FacesContext)'
+ */
+ public void testProcessValidatorsFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.processUpdates(FacesContext)'
+ */
+ public void testProcessUpdatesFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.processSaveState(FacesContext)'
+ */
+ public void testProcessSaveStateFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.processRestoreState(FacesContext, Object)'
+ */
+ public void testProcessRestoreStateFacesContextObject() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getFacesContext()'
+ */
+ public void testGetFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getRenderer(FacesContext)'
+ */
+ public void testGetRendererFacesContext() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.getPathToComponent(UIComponent)'
+ */
+ public void testGetPathToComponent() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.isTransient()'
+ */
+ public void testIsTransient() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.setTransient(boolean)'
+ */
+ public void testSetTransient() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.saveAttachedState(FacesContext, Object)'
+ */
+ public void testSaveAttachedState() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.restoreAttachedState(FacesContext, Object)'
+ */
+ public void testRestoreAttachedState() {
+
+ }
+
+ public void testSaveState() throws Exception {
+ MockControl contextControl = MockClassControl.createControl(FacesContext.class);
+ FacesContext facesContext = (FacesContext)contextControl.getMock();
+ contextControl.replay();
+ try {
+ String id = "id";
+ String rendererType = "Whumpy";
+ mock.setId(id);
+ mock.setRendered(true);
+ mock.setRendererType(rendererType);
+ Object value[] = (Object[])mock.saveState(facesContext);
+ assertEquals(id, value[0]);
+ assertEquals(Boolean.TRUE, value[1]);
+ assertEquals(rendererType, value[2]);
+ // the object 'mock' here, must be the same before and after saveState
+ // calling getClientId in the saveState method would change the state
+ // so it must be null if getClientId has not been called
+ assertNull(value[3]);
+ assertNull(value[4]);
+ assertNull(value[5]);
+ assertNull(value[6]);
+ } catch (NullPointerException e) {
+ fail("Should not throw an exception");
+ }
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.restoreState(FacesContext, Object)'
+ */
+ public void testRestoreState() {
+
+ }
+
+ /*
+ * Test method for 'javax.faces.component.UIComponentBase.setRendererType(String)'
+ */
+ public void testSetRendererType() {
+ assertNull(mock.getRendererType());
+ }
+ public void testSetRendererTypeStringValue() {
+ String rendererType = "BlueBlorf";
+ mock.setRendererType(rendererType);
+ assertEquals(mock.getRendererType(), rendererType);
+ }
+ public void testSetRendererTypeStringBinding() {
+ MockControl bindingControl = MockClassControl.createControl(ValueBinding.class);
+ ValueBinding mockBinding = (ValueBinding)bindingControl.getMock();
+ mockBinding.getValue(null);
+ String whumpy = "Whumpy";
+ bindingControl.setReturnValue(whumpy);
+ bindingControl.replay();
+ mock.setValueBinding("rendererType", mockBinding);
+ assertEquals(mock.getRendererType(), whumpy);
+ }
+
+}
Added: myfaces/api/trunk/src/test/javax/faces/component/UIComponentMock.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/test/javax/faces/component/UIComponentMock.java?rev=291105&view=auto
==============================================================================
--- myfaces/api/trunk/src/test/javax/faces/component/UIComponentMock.java (added)
+++ myfaces/api/trunk/src/test/javax/faces/component/UIComponentMock.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,9 @@
+package javax.faces.component;
+
+public class UIComponentMock extends UIComponentBase {
+
+ public String getFamily() {
+ return "Mock Component Family";
+ }
+
+}
Added: myfaces/api/trunk/src/test/javax/faces/component/_AttachedStateWrapperTest.java
URL: http://svn.apache.org/viewcvs/myfaces/api/trunk/src/test/javax/faces/component/_AttachedStateWrapperTest.java?rev=291105&view=auto
==============================================================================
--- myfaces/api/trunk/src/test/javax/faces/component/_AttachedStateWrapperTest.java (added)
+++ myfaces/api/trunk/src/test/javax/faces/component/_AttachedStateWrapperTest.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,69 @@
+package javax.faces.component;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
+import junit.framework.TestCase;
+
+public class _AttachedStateWrapperTest extends TestCase {
+
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(_AttachedStateWrapperTest.class);
+ }
+
+ public _AttachedStateWrapperTest(String name) {
+ super(name);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /*
+ * Test method for 'javax.faces.component._AttachedStateWrapper._AttachedStateWrapper(Class, Object)'
+ */
+ public void test_AttachedStateWrapper() {
+ _AttachedStateWrapper subject = new _AttachedStateWrapper(null, null);
+ assertNull(subject.getWrappedStateObject());
+ assertNull(subject.getClazz());
+ }
+
+ /*
+ * Test method for 'javax.faces.component._AttachedStateWrapper.getClazz()'
+ */
+ public void testGetClazz() {
+ _AttachedStateWrapper subject = new _AttachedStateWrapper(String.class, "foo");
+ assertEquals(subject.getClazz(), String.class);
+ }
+
+ /*
+ * Test method for 'javax.faces.component._AttachedStateWrapper.getWrappedStateObject()'
+ */
+ public void testGetWrappedStateObject() {
+ _AttachedStateWrapper subject = new _AttachedStateWrapper(String.class, "foo");
+ assertEquals(subject.getClazz(), String.class);
+ }
+
+ public void testSerialize() throws Exception {
+ String foo = "foo";
+ _AttachedStateWrapper subject = new _AttachedStateWrapper(String.class, foo);
+ ByteArrayOutputStream baos = new ByteArrayOutputStream(128);
+ ObjectOutputStream oos = new ObjectOutputStream(baos);
+ oos.writeObject(subject);
+ oos.flush();
+ baos.flush();
+ ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
+ ObjectInputStream ois = new ObjectInputStream(bais);
+ _AttachedStateWrapper blorg = (_AttachedStateWrapper) ois
+ .readObject();
+ assertEquals(blorg.getWrappedStateObject(), subject.getWrappedStateObject());
+ oos.close();
+ ois.close();
+ }
+}
Added: myfaces/build/trunk/cactus-log4j.properties
URL: http://svn.apache.org/viewcvs/myfaces/build/trunk/cactus-log4j.properties?rev=291105&view=auto
==============================================================================
--- myfaces/build/trunk/cactus-log4j.properties (added)
+++ myfaces/build/trunk/cactus-log4j.properties Fri Sep 23 05:12:47 2005
@@ -0,0 +1,17 @@
+?# Properties for configuring Log4j for cactus tests
+# This is the configuring for logging on the server side - i.e. its copied to the .war file
+
+log4j.appender.cactus = org.apache.log4j.FileAppender
+log4j.appender.cactus.File = cactus-server.log
+log4j.appender.cactus.Append = false
+log4j.appender.cactus.layout = org.apache.log4j.PatternLayout
+log4j.appender.cactus.layout.ConversionPattern = %d{ABSOLUTE} [%t] %-5p %-30.30c{2} %x - %m %n
+
+# Any application log which uses Log4J will be logged to the Cactus log file
+log4j.rootCategory=DEBUG, cactus
+
+# By default we don't log at the DEBUG level for Cactus log, in order not to generate too
+# many logs. However, should a problem arise and logs need to be sent to the Cactus dev team,
+# then we will ask you to change this to DEBUG.
+log4j.category.org.apache.cactus = DEBUG, cactus
+log4j.additivity.org.apache.cactus=false
Added: myfaces/build/trunk/cactus-web.xml
URL: http://svn.apache.org/viewcvs/myfaces/build/trunk/cactus-web.xml?rev=291105&view=auto
==============================================================================
--- myfaces/build/trunk/cactus-web.xml (added)
+++ myfaces/build/trunk/cactus-web.xml Fri Sep 23 05:12:47 2005
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app>
+ <listener>
+ <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
+ </listener>
+ <servlet>
+ <servlet-name>JspRedirector</servlet-name>
+ <jsp-file>/jspRedirector.jsp</jsp-file>
+ <run-as>
+ <role-name>resource</role-name>
+ </run-as>
+ </servlet>
+ <servlet>
+ <servlet-name>ServletRedirector</servlet-name>
+ <servlet-class>
+ org.apache.cactus.server.ServletTestRedirector
+ </servlet-class>
+ <run-as>
+ <role-name>resource</role-name>
+ </run-as>
+ </servlet>
+ <servlet>
+ <servlet-name>ServletTestRunner</servlet-name>
+ <servlet-class>
+ org.apache.cactus.server.runner.ServletTestRunner
+ </servlet-class>
+ <init-param>
+ <param-name>xsl-stylesheet</param-name>
+ <param-value>styles/cactus-report.xsl</param-value>
+ </init-param>
+ <run-as>
+ <role-name>resource</role-name>
+ </run-as>
+ </servlet>
+ <servlet>
+ <servlet-name>ServletRedirectorSecure</servlet-name>
+ <servlet-class>
+ org.apache.cactus.server.ServletTestRedirector
+ </servlet-class>
+ <run-as>
+ <role-name>resource</role-name>
+ </run-as>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>ServletRedirector</servlet-name>
+ <url-pattern>/ServletRedirector</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>JspRedirector</servlet-name>
+ <url-pattern>/JspRedirector</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ServletTestRunner</servlet-name>
+ <url-pattern>/ServletTestRunner</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>ServletRedirectorSecure</servlet-name>
+ <url-pattern>/ServletRedirectorSecure</url-pattern>
+ </servlet-mapping>
+</web-app>
\ No newline at end of file
Added: myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/Calendar.properties
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/Calendar.properties?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/Calendar.properties (added)
+++ myfaces/tomahawk/trunk/src/java/org/apache/myfaces/custom/calendar/resource/Calendar.properties Fri Sep 23 05:12:47 2005
@@ -0,0 +1,2 @@
+org.apache.myfaces.custom.calendar.CHOOSE_MONTH = Choose a Month
+org.apache.myfaces.custom.calendar.CHOOSE_WEEKDAY = Choose a Weekday
\ No newline at end of file
Added: myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRenderCactus.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRenderCactus.java?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRenderCactus.java (added)
+++ myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRenderCactus.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,179 @@
+package org.apache.myfaces.custom.date;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.Locale;
+
+import javax.faces.FactoryFinder;
+import javax.faces.application.Application;
+import javax.faces.application.ViewHandler;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+import javax.faces.context.FacesContextFactory;
+import javax.faces.lifecycle.Lifecycle;
+import javax.faces.lifecycle.LifecycleFactory;
+
+import org.apache.cactus.ServletTestCase;
+import org.apache.cactus.WebRequest;
+import org.apache.myfaces.custom.date.HtmlInputDate.UserData;
+
+public class HtmlDateRenderCactus extends ServletTestCase {
+ private FacesContext facesContext;
+ private UIViewRoot viewRoot;
+
+ public void setUp() throws Exception {
+ FacesContextFactory facesContextFactory = (FacesContextFactory) FactoryFinder
+ .getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);
+ LifecycleFactory lifecycleFactory = (LifecycleFactory) FactoryFinder
+ .getFactory(FactoryFinder.LIFECYCLE_FACTORY);
+ Lifecycle lifecycle = lifecycleFactory
+ .getLifecycle(LifecycleFactory.DEFAULT_LIFECYCLE);
+ facesContext = facesContextFactory.getFacesContext(this.config
+ .getServletContext(), request, response, lifecycle);
+ assertNotNull(facesContext);
+ Application application = facesContext.getApplication();
+ ViewHandler viewHandler = application.getViewHandler();
+ String viewId = "/index.jsp";
+ viewRoot = viewHandler.createView(facesContext, viewId);
+ viewRoot.setViewId(viewId);
+ facesContext.setViewRoot(viewRoot);
+ }
+
+ public void beginDecodeDate(WebRequest request) {
+ request.addParameter("test.day", "14");
+ request.addParameter("test.month", "1");
+ request.addParameter("test.year", "2005");
+ }
+
+ public void testDecodeDate() {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ }
+
+ public void beginDecodeWithSubmittedValue(WebRequest request) {
+ request.addParameter("test.day", "14");
+ request.addParameter("test.month", "1");
+ request.addParameter("test.year", "2005");
+ }
+
+ public void testDecodeWithSubmittedValue() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ Date today = new Date();
+ inputDate.setSubmittedValue(new UserData(today, Locale.ENGLISH, null));
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ }
+
+ public void beginDecodeTime(WebRequest request) {
+ request.addParameter("test.hours", "12");
+ request.addParameter("test.minutes", "15");
+ request.addParameter("test.seconds", "35");
+ }
+ public void testDecodeTime() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("time");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ assertEquals("35", data.getSeconds());
+ }
+
+ public void beginDecodeFull(WebRequest request) {
+ request.addParameter("test.day", "14");
+ request.addParameter("test.month", "1");
+ request.addParameter("test.year", "2005");
+ request.addParameter("test.hours", "12");
+ request.addParameter("test.minutes", "15");
+ request.addParameter("test.seconds", "35");
+ }
+
+ public void testDecodeFull() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("full");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ assertEquals("35", data.getSeconds());
+ }
+
+ public void beginDecodeFlorp(WebRequest request) {
+ request.addParameter("test.day", "14");
+ request.addParameter("test.month", "1");
+ request.addParameter("test.year", "2005");
+ request.addParameter("test.hours", "12");
+ request.addParameter("test.minutes", "15");
+ }
+
+ public void testDecodeFlorp() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ // is this correct? Should it parse correctly if the type is not valid?
+ inputDate.setType("florp");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ }
+
+ public void beginDecodeDisabled(WebRequest request) {
+ request.addParameter("test.day", "14");
+ request.addParameter("test.month", "1");
+ request.addParameter("test.year", "2005");
+ }
+
+ public void testDecodeDisabled() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ inputDate.setDisabled(true);
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // decode - when disabled currently defaults to today
+ // JIRA Issue #233 requests that the default be null
+ // and the control handle data that is not required
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ Calendar cal = GregorianCalendar.getInstance();
+ assertEquals(cal.get(Calendar.DATE) + "", data.getDay());
+ // different bases - cal starts at 0 in January, UserData starts at 1 in
+ // January
+ assertEquals((cal.get(Calendar.MONTH) + 1) + "", data.getMonth());
+ assertEquals(cal.get(Calendar.YEAR) + "", data.getYear());
+ }
+
+ public void tearDown() {
+ facesContext = null;
+ viewRoot = null;
+ }
+}
Added: myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRendererTest.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRendererTest.java?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRendererTest.java (added)
+++ myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/HtmlDateRendererTest.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,236 @@
+package org.apache.myfaces.custom.date;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.GregorianCalendar;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.faces.FactoryFinder;
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.ExternalContext;
+import javax.faces.context.FacesContext;
+import javax.faces.render.RenderKitFactory;
+
+import junit.framework.TestCase;
+
+import org.apache.myfaces.application.ApplicationFactoryImpl;
+import org.apache.myfaces.custom.date.HtmlInputDate.UserData;
+import org.easymock.MockControl;
+import org.easymock.classextension.MockClassControl;
+
+public class HtmlDateRendererTest extends TestCase {
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(HtmlDateRendererTest.class);
+ }
+
+ public HtmlDateRendererTest(String name) {
+ super(name);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ FactoryFinder.setFactory(FactoryFinder.RENDER_KIT_FACTORY,
+ MockHtmlDateRendererTestRenderKitFactory.class.getName());
+ FactoryFinder.setFactory(FactoryFinder.APPLICATION_FACTORY,
+ ApplicationFactoryImpl.class.getName());
+ }
+
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ }
+
+ /*
+ * Test method for
+ * 'org.apache.myfaces.custom.date.HtmlDateRenderer.decode(FacesContext,
+ * UIComponent)'
+ */
+ public void testDecodeDate() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.day", "14");
+ map.put("test.month", "1");
+ map.put("test.year", "2005");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ }
+
+ public void testDecodeWithSubmittedValue() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ Date today = new Date();
+ inputDate.setSubmittedValue(new UserData(today, Locale.ENGLISH, null));
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.day", "14");
+ map.put("test.month", "1");
+ map.put("test.year", "2005");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ }
+
+ public void testDecodeTime() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("time");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.hours", "12");
+ map.put("test.minutes", "15");
+ map.put("test.seconds", "35");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ assertEquals("35", data.getSeconds());
+ }
+
+ public void testDecodeFull() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("full");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.day", "14");
+ map.put("test.month", "1");
+ map.put("test.year", "2005");
+ map.put("test.hours", "12");
+ map.put("test.minutes", "15");
+ map.put("test.seconds", "3");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ assertEquals("03", data.getSeconds());
+ }
+
+ public void testDecodeFlorp() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ // is this correct? Should it parse correctly if the type is not valid?
+ inputDate.setType("florp");
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.day", "14");
+ map.put("test.month", "1");
+ map.put("test.year", "2005");
+ map.put("test.hours", "12");
+ map.put("test.minutes", "15");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ assertEquals("14", data.getDay());
+ assertEquals("1", data.getMonth());
+ assertEquals("2005", data.getYear());
+ assertEquals("12", data.getHours());
+ assertEquals("15", data.getMinutes());
+ }
+
+ public void testDecodeDisabled() throws Exception {
+ HtmlInputDate inputDate = new HtmlInputDate();
+ inputDate.setId("test");
+ inputDate.setType("date");
+ inputDate.setDisabled(true);
+ HtmlDateRenderer subject = new HtmlDateRenderer();
+ // setup the request map
+ Map map = new HashMap();
+ map.put("test.day", "14");
+ map.put("test.month", "1");
+ map.put("test.year", "2005");
+ FacesContext facesContext = mockupForDecodeCall(map);
+ // decode - when disabled currently defaults to today
+ // JIRA Issue #233 requests that the default be null
+ // and the control handle data that is not required
+ subject.decode(facesContext, inputDate);
+ UserData data = inputDate.getUserData(Locale.ENGLISH);
+ Calendar cal = GregorianCalendar.getInstance();
+ assertEquals(cal.get(Calendar.DATE) + "", data.getDay());
+ // different bases - cal starts at 0 in January, UserData starts at 1 in
+ // January
+ assertEquals((cal.get(Calendar.MONTH) + 1) + "", data.getMonth());
+ assertEquals(cal.get(Calendar.YEAR) + "", data.getYear());
+ }
+
+ /*
+ * Test method for
+ * 'org.apache.myfaces.custom.date.HtmlDateRenderer.encodeEnd(FacesContext,
+ * UIComponent)'
+ */
+ public void testEncodeEnd() throws Exception {
+
+ }
+
+ /*
+ * Test method for
+ * 'org.apache.myfaces.custom.date.HtmlDateRenderer.getConvertedValue(FacesContext,
+ * UIComponent, Object)'
+ */
+ public void testGetConvertedValue() throws Exception {
+ }
+
+ private FacesContext mockupForDecodeCall(Map requestParameterMap) {
+ // mock FacesContext
+ MockControl contextControl = MockClassControl
+ .createControl(FacesContext.class);
+ FacesContext facesContext = (FacesContext) contextControl.getMock();
+ // mock UIViewRoot
+ MockControl viewControl = MockClassControl.createControl(UIViewRoot.class);
+ UIViewRoot viewRoot = (UIViewRoot) viewControl.getMock();
+ // mock ExternalContext
+ MockControl externalContextControl = MockClassControl
+ .createControl(ExternalContext.class);
+ ExternalContext externalContext = (ExternalContext) externalContextControl
+ .getMock();
+ // set the view root
+ facesContext.getViewRoot();
+ contextControl.setReturnValue(viewRoot);
+ // called twice
+ facesContext.getViewRoot();
+ contextControl.setReturnValue(viewRoot);
+ // set the external context
+ facesContext.getExternalContext();
+ contextControl.setReturnValue(externalContext);
+ // set the locale
+ viewRoot.getLocale();
+ viewControl.setReturnValue(Locale.ENGLISH);
+ // set the render kit id
+ viewRoot.getRenderKitId();
+ viewControl.setReturnValue(RenderKitFactory.HTML_BASIC_RENDER_KIT);
+ externalContext.getRequestParameterMap();
+ externalContextControl.setReturnValue(requestParameterMap);
+ // prepare
+ contextControl.replay();
+ viewControl.replay();
+ externalContextControl.replay();
+ return facesContext;
+ }
+
+}
Added: myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKit.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKit.java?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKit.java (added)
+++ myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKit.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,52 @@
+package org.apache.myfaces.custom.date;
+
+import java.io.OutputStream;
+import java.io.Writer;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.faces.context.ResponseStream;
+import javax.faces.context.ResponseWriter;
+import javax.faces.render.RenderKit;
+import javax.faces.render.Renderer;
+import javax.faces.render.ResponseStateManager;
+
+public class MockHtmlDateRendererTestRenderKit extends RenderKit {
+ private Map renderers = new HashMap();
+
+ public MockHtmlDateRendererTestRenderKit() {
+ addRenderer("javax.faces.Input", "org.apache.myfaces.Date", new HtmlDateRenderer());
+ }
+
+ public void addRenderer(String family, String rendererType, Renderer renderer) {
+ Map sub = (Map)renderers.get(family);
+ if(null == sub) {
+ sub = new HashMap();
+ renderers.put(family, sub);
+ }
+ sub.put(rendererType, renderer);
+ }
+
+ public Renderer getRenderer(String family, String rendererType) {
+ Renderer renderer = null;
+ Map sub = (Map)renderers.get(family);
+ if(null != sub) {
+ renderer = (Renderer)sub.get(rendererType);
+ }
+ return renderer;
+ }
+
+ public ResponseStateManager getResponseStateManager() {
+ return null;
+ }
+
+ public ResponseWriter createResponseWriter(Writer writer,
+ String contentTypeList, String characterEncoding) {
+ return null;
+ }
+
+ public ResponseStream createResponseStream(OutputStream out) {
+ return null;
+ }
+
+}
Added: myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKitFactory.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKitFactory.java?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKitFactory.java (added)
+++ myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/MockHtmlDateRendererTestRenderKitFactory.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,34 @@
+package org.apache.myfaces.custom.date;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.faces.context.FacesContext;
+import javax.faces.render.RenderKit;
+import javax.faces.render.RenderKitFactory;
+
+public class MockHtmlDateRendererTestRenderKitFactory extends RenderKitFactory {
+ private Map renderKits = new HashMap();
+
+ public MockHtmlDateRendererTestRenderKitFactory() {
+ addRenderKit(RenderKitFactory.HTML_BASIC_RENDER_KIT, new MockHtmlDateRendererTestRenderKit());
+ }
+
+ public void addRenderKit(String renderKitId, RenderKit renderKit) {
+ renderKits.put(renderKitId, renderKit);
+ }
+
+ public RenderKit getRenderKit(FacesContext context, String renderKitId) {
+ return (RenderKit)renderKits.get(renderKitId);
+ }
+
+ public Iterator getRenderKitIds() {
+ List ids = new ArrayList();
+ ids.add(RenderKitFactory.HTML_BASIC_RENDER_KIT);
+ return ids.iterator();
+ }
+
+}
Added: myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/TestBean.java
URL: http://svn.apache.org/viewcvs/myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/TestBean.java?rev=291105&view=auto
==============================================================================
--- myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/TestBean.java (added)
+++ myfaces/tomahawk/trunk/src/test/org/apache/myfaces/custom/date/TestBean.java Fri Sep 23 05:12:47 2005
@@ -0,0 +1,20 @@
+package org.apache.myfaces.custom.date;
+
+import java.util.Date;
+
+public class TestBean {
+ private Date date;
+
+ public TestBean() {
+ super();
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public void setDate(Date date) {
+ this.date = date;
+ }
+
+}