Author: apetrelli
Date: Sat Jun 5 12:02:34 2010
New Revision: 951694
URL: http://svn.apache.org/viewvc?rev=951694&view=rev
Log:
TILESSB-11
Added more tests to tiles-freemarker as much as possible.
Added:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
(with props)
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
(with props)
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
Modified: tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/pom.xml Sat Jun 5 12:02:34 2010
@@ -90,15 +90,9 @@
</dependency>
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <version>2.5.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
- <version>2.4</version>
+ <version>2.5.2</version>
<scope>test</scope>
</dependency>
<dependency>
@@ -107,9 +101,9 @@
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-autotag-freemarker-runtime</artifactId>
- <version>1.0-SNAPSHOT</version>
+ <groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-autotag-freemarker-runtime</artifactId>
+ <version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/main/java/org/apache/tiles/freemarker/FreeMarkerTilesException.java
Sat Jun 5 12:02:34 2010
@@ -56,7 +56,7 @@ public class FreeMarkerTilesException ex
* @param e The cause of the exception.
* @since 2.2.0
*/
- public FreeMarkerTilesException(Exception e) {
+ public FreeMarkerTilesException(Throwable e) {
super(e);
}
@@ -67,7 +67,7 @@ public class FreeMarkerTilesException ex
* @param e The cause of the exception.
* @since 2.2.0
*/
- public FreeMarkerTilesException(String message, Exception e) {
+ public FreeMarkerTilesException(String message, Throwable e) {
super(message, e);
}
}
Added:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java?rev=951694&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
Sat Jun 5 12:02:34 2010
@@ -0,0 +1,77 @@
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tiles.freemarker;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * Tests {...@link FreeMarkerTilesException}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class FreeMarkerTilesExceptionTest {
+
+ /**
+ * Test method for {...@link
FreeMarkerTilesException#FreeMarkerTilesException()}.
+ */
+ @Test
+ public void testFreeMarkerTilesException() {
+ FreeMarkerTilesException exception = new FreeMarkerTilesException();
+ assertNull(exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.String)}.
+ */
+ @Test
+ public void testFreeMarkerTilesExceptionString() {
+ FreeMarkerTilesException exception = new FreeMarkerTilesException("my
message");
+ assertEquals("my message", exception.getMessage());
+ assertNull(exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.Throwable)}.
+ */
+ @Test
+ public void testFreeMarkerTilesExceptionThrowable() {
+ Throwable cause = new Throwable();
+ FreeMarkerTilesException exception = new
FreeMarkerTilesException(cause);
+ assertEquals(cause.toString(), exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+ /**
+ * Test method for {...@link
FreeMarkerTilesException#FreeMarkerTilesException(java.lang.String,
java.lang.Throwable)}.
+ */
+ @Test
+ public void testFreeMarkerTilesExceptionStringThrowable() {
+ Throwable cause = new Throwable();
+ FreeMarkerTilesException exception = new FreeMarkerTilesException("my
message", cause);
+ assertEquals("my message", exception.getMessage());
+ assertEquals(cause, exception.getCause());
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/FreeMarkerTilesExceptionTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java?rev=951694&r1=951693&r2=951694&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/java/org/apache/tiles/freemarker/renderer/FreeMarkerAttributeRendererTest.java
Sat Jun 5 12:02:34 2010
@@ -20,11 +20,33 @@
*/
package org.apache.tiles.freemarker.renderer;
+import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;
-import org.apache.tiles.renderer.TypeDetectingAttributeRenderer;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.net.URL;
+
+import javax.servlet.GenericServlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.evaluator.AttributeEvaluatorFactory;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.servlet.ServletApplicationContext;
+import org.apache.tiles.request.servlet.ServletRequest;
+import org.junit.Before;
import org.junit.Test;
+import freemarker.ext.servlet.HttpRequestHashModel;
+import freemarker.ext.servlet.HttpRequestParametersHashModel;
+import freemarker.ext.servlet.ServletContextHashModel;
+import freemarker.template.ObjectWrapper;
+
/**
* Tests {...@link FreeMarkerAttributeRenderer}.
*
@@ -32,6 +54,117 @@ import org.junit.Test;
*/
public class FreeMarkerAttributeRendererTest {
+ private static final String ATTR_APPLICATION_MODEL =
+ ".freemarker.Application";
+
+ private static final String ATTR_JSP_TAGLIBS_MODEL =
+ ".freemarker.JspTaglibs";
+
+ private static final String ATTR_REQUEST_MODEL = ".freemarker.Request";
+
+ private static final String ATTR_REQUEST_PARAMETERS_MODEL =
+ ".freemarker.RequestParameters";
+
+ private FreeMarkerAttributeRenderer renderer;
+
+ private ApplicationContext applicationContext;
+
+ private ServletContext servletContext;
+
+ private AttributeEvaluatorFactory attributeEvaluatorFactory;
+
+ /**
+ * Sets up the test.
+ */
+ @Before
+ public void setUp() {
+ applicationContext = createMock(ServletApplicationContext.class);
+ attributeEvaluatorFactory =
createMock(AttributeEvaluatorFactory.class);
+ servletContext = createMock(ServletContext.class);
+
+ expect(applicationContext.getContext()).andReturn(servletContext);
+
+ replay(applicationContext, servletContext);
+ renderer = new FreeMarkerAttributeRenderer();
+ renderer.setApplicationContext(applicationContext);
+ renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
+ renderer.setParameter("TemplatePath", "/");
+ renderer.setParameter("NoCache", "true");
+ renderer.setParameter("ContentType", "text/html");
+ renderer.setParameter("template_update_delay", "0");
+ renderer.setParameter("default_encoding", "ISO-8859-1");
+ renderer.setParameter("number_format", "0.##########");
+ renderer.commit();
+ }
+
+ /**
+ * Tests {...@link FreeMarkerAttributeRenderer#write(Object,
org.apache.tiles.Attribute, org.apache.tiles.request.Request)}.
+ * @throws IOException If something goes wrong.
+ * @throws ServletException If something goes wrong.
+ */
+ @Test
+ public void testWrite() throws IOException, ServletException {
+ ApplicationContext applicationContext =
createMock(ServletApplicationContext.class);
+ AttributeEvaluatorFactory attributeEvaluatorFactory =
createMock(AttributeEvaluatorFactory.class);
+ ServletContext servletContext = createMock(ServletContext.class);
+ GenericServlet servlet =
createMockBuilder(GenericServlet.class).createMock();
+ ServletConfig servletConfig = createMock(ServletConfig.class);
+ ObjectWrapper objectWrapper = createMock(ObjectWrapper.class);
+
+ expect(servletConfig.getServletContext()).andReturn(servletContext);
+
+ replay(servlet, servletConfig);
+ servlet.init(servletConfig);
+ ServletContextHashModel servletContextHashModel = new
ServletContextHashModel(servlet, objectWrapper);
+
+
expect(applicationContext.getContext()).andReturn(servletContext).anyTimes();
+
expect(servletContext.getRealPath(isA(String.class))).andReturn(null).anyTimes();
+ URL resource = getClass().getResource("/test.ftl");
+
expect(servletContext.getResource(isA(String.class))).andReturn(resource).anyTimes();
+
expect(servletContext.getAttribute(ATTR_APPLICATION_MODEL)).andReturn(servletContextHashModel);
+
expect(servletContext.getAttribute(ATTR_JSP_TAGLIBS_MODEL)).andReturn(null);
+
+ replay(applicationContext, servletContext, objectWrapper);
+
+ FreeMarkerAttributeRenderer renderer = new
FreeMarkerAttributeRenderer();
+ renderer.setApplicationContext(applicationContext);
+ renderer.setAttributeEvaluatorFactory(attributeEvaluatorFactory);
+ renderer.setParameter("TemplatePath", "/");
+ renderer.setParameter("NoCache", "true");
+ renderer.setParameter("ContentType", "text/html");
+ renderer.setParameter("template_update_delay", "0");
+ renderer.setParameter("default_encoding", "ISO-8859-1");
+ renderer.setParameter("number_format", "0.##########");
+ renderer.commit();
+
+ ServletRequest request = createMock(ServletRequest.class);
+ HttpServletRequest httpRequest = createMock(HttpServletRequest.class);
+ HttpServletResponse response = createMock(HttpServletResponse.class);
+ StringWriter stringWriter = new StringWriter();
+ PrintWriter printWriter = new PrintWriter(stringWriter);
+ HttpRequestHashModel requestModel = new
HttpRequestHashModel(httpRequest, response, objectWrapper);
+ HttpRequestParametersHashModel parametersModel = new
HttpRequestParametersHashModel(httpRequest);
+
+ expect(request.getRequest()).andReturn(httpRequest);
+ expect(request.getResponse()).andReturn(response);
+ expect(request.getPrintWriter()).andReturn(printWriter);
+ expect(httpRequest.getSession(false)).andReturn(null);
+
expect(httpRequest.getAttribute(ATTR_REQUEST_MODEL)).andReturn(requestModel);
+
expect(httpRequest.getAttribute(ATTR_REQUEST_PARAMETERS_MODEL)).andReturn(parametersModel);
+ response.setContentType("text/html; charset=ISO-8859-1");
+ response.setHeader(eq("Cache-Control"), isA(String.class));
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader(eq("Expires"), isA(String.class));
+
+ replay(attributeEvaluatorFactory, request, httpRequest, response);
+ renderer.write("hello", null, request);
+ stringWriter.close();
+ assertTrue(stringWriter.toString().startsWith("Hello!"));
+ verify(applicationContext, servletContext, attributeEvaluatorFactory,
+ request, httpRequest, response, servlet, servletConfig,
+ objectWrapper);
+ }
+
/**
* Test method for
* {...@link FreeMarkerAttributeRenderer
@@ -40,11 +173,12 @@ public class FreeMarkerAttributeRenderer
*/
@Test
public void testIsRenderable() {
- TypeDetectingAttributeRenderer renderer = new
FreeMarkerAttributeRenderer();
+ replay(attributeEvaluatorFactory);
assertTrue(renderer.isRenderable("/my/template.ftl", null, null));
assertFalse(renderer.isRenderable("my/template.ftl", null, null));
assertFalse(renderer.isRenderable("/my/template.jsp", null, null));
assertFalse(renderer.isRenderable(0, null, null));
+ verify(applicationContext, servletContext, attributeEvaluatorFactory);
}
}
Added: tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl?rev=951694&view=auto
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
(added)
+++ tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl Sat
Jun 5 12:02:34 2010
@@ -0,0 +1,25 @@
+<#--
+/*
+ * $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+-->
+Hello!
+
Propchange:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-freemarker/src/test/resources/test.ftl
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL