Author: apetrelli
Date: Tue Jun 8 18:28:16 2010
New Revision: 952763
URL: http://svn.apache.org/viewvc?rev=952763&view=rev
Log:
TILESSB-11
More tests for tiles-servlet.
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
(with props)
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
(with props)
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
(with props)
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
(with props)
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
(with props)
Modified:
tiles/sandbox/trunk/tiles3/tiles-servlet/pom.xml
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/ServletContextAdapter.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/ServletContextAdapterTest.java
Modified: tiles/sandbox/trunk/tiles3/tiles-servlet/pom.xml
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/pom.xml?rev=952763&r1=952762&r2=952763&view=diff
==============================================================================
--- tiles/sandbox/trunk/tiles3/tiles-servlet/pom.xml (original)
+++ tiles/sandbox/trunk/tiles3/tiles-servlet/pom.xml Tue Jun 8 18:28:16 2010
@@ -122,14 +122,8 @@
</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>
@@ -140,9 +134,9 @@
</dependency>
<dependency>
- <groupId>org.apache.tiles</groupId>
- <artifactId>tiles-request-servlet</artifactId>
- <version>1.0-SNAPSHOT</version>
+ <groupId>org.apache.tiles</groupId>
+ <artifactId>tiles-request-servlet</artifactId>
+ <version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
Modified:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java?rev=952763&r1=952762&r2=952763&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/startup/AbstractTilesListener.java
Tue Jun 8 18:28:16 2010
@@ -24,13 +24,8 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
-import org.apache.tiles.TilesException;
-import org.apache.tiles.access.TilesAccess;
-import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.servlet.ServletApplicationContext;
import org.apache.tiles.startup.TilesInitializer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
* Listener for the initialization of the Tiles container.
@@ -40,11 +35,6 @@ import org.slf4j.LoggerFactory;
public abstract class AbstractTilesListener implements ServletContextListener {
/**
- * Log instance.
- */
- private Logger log = LoggerFactory.getLogger(AbstractTilesListener.class);
-
- /**
* The initializer object.
*
* @since 2.1.2
@@ -65,19 +55,12 @@ public abstract class AbstractTilesListe
}
/**
- * Remove the tiles container from service.
+ * Destroys the initializer.
*
* @param event The intercepted event.
*/
public void contextDestroyed(ServletContextEvent event) {
- ServletContext servletContext = event.getServletContext();
- ApplicationContext applicationContext =
org.apache.tiles.request.servlet.ServletUtil
- .getApplicationContext(servletContext);
- try {
- TilesAccess.setContainer(applicationContext, null);
- } catch (TilesException e) {
- log.warn("Unable to remove tiles container from service.", e);
- }
+ initializer.destroy();
}
/**
Modified:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/ServletContextAdapter.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/ServletContextAdapter.java?rev=952763&r1=952762&r2=952763&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/ServletContextAdapter.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/ServletContextAdapter.java
Tue Jun 8 18:28:16 2010
@@ -206,47 +206,4 @@ public class ServletContextAdapter imple
public String getContextPath() {
return rootContext.getContextPath();
}
-
- /**
- * Composes an enumeration into a single one.
- */
- @SuppressWarnings("unchecked")
- class CompositeEnumeration implements Enumeration {
-
- /**
- * The first enumeration to consider.
- */
- private Enumeration first;
-
- /**
- * The second enumeration to consider.
- */
- private Enumeration second;
-
-
- /**
- * Constructor.
- *
- * @param first The first enumeration to consider.
- * @param second The second enumeration to consider.
- */
- public CompositeEnumeration(Enumeration first, Enumeration second) {
- this.first = first;
- this.second = second;
- }
-
- /** {...@inheritdoc} */
- public boolean hasMoreElements() {
- return first.hasMoreElements() || second.hasMoreElements();
- }
-
- /** {...@inheritdoc} */
- public Object nextElement() {
- if (first.hasMoreElements()) {
- return first.nextElement();
- }
-
- return second.nextElement();
- }
- }
}
Modified:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java?rev=952763&r1=952762&r2=952763&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/main/java/org/apache/tiles/web/util/TilesDecorationFilter.java
Tue Jun 8 18:28:16 2010
@@ -38,6 +38,7 @@ import org.apache.tiles.Attribute;
import org.apache.tiles.AttributeContext;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
+import org.apache.tiles.reflect.CannotInstantiateObjectException;
import org.apache.tiles.reflect.ClassUtil;
import org.apache.tiles.request.ApplicationContext;
import org.apache.tiles.request.Request;
@@ -135,27 +136,12 @@ public class TilesDecorationFilter imple
*/
private AttributeContextMutator mutator = null;
- /**
- * Returns the filter configuration object.
- *
- * @return The filter configuration.
- */
- public FilterConfig getFilterConfig() {
- return filterConfig;
- }
-
- /**
- * Returns the servlet context.
- *
- * @return The servlet context.
- */
- public ServletContext getServletContext() {
- return filterConfig.getServletContext();
- }
+ private ServletContext servletContext;
/** {...@inheritdoc} */
public void init(FilterConfig config) throws ServletException {
filterConfig = config;
+ servletContext = filterConfig.getServletContext();
containerKey = filterConfig
.getInitParameter(CONTAINER_KEY_INIT_PARAMETER);
@@ -180,7 +166,7 @@ public class TilesDecorationFilter imple
if (temp != null) {
try {
mutator = (AttributeContextMutator)
ClassUtil.instantiate(temp);
- } catch (Exception e) {
+ } catch (CannotInstantiateObjectException e) {
throw new ServletException("Unable to instantiate specified
context mutator.", e);
}
} else {
@@ -226,23 +212,21 @@ public class TilesDecorationFilter imple
// If the request contains the prevent token, we must not reapply the
definition.
// This is used to ensure that filters mapped to wild cards do not
infinately
// loop.
- if (isPreventTokenPresent(req)) {
- filterChain.doFilter(req, res);
- return;
- }
-
- ApplicationContext applicationContext =
org.apache.tiles.request.servlet.ServletUtil
- .getApplicationContext(getServletContext());
- Request request = new ServletRequest(applicationContext,
- (HttpServletRequest) req, (HttpServletResponse) res);
- TilesContainer container = TilesAccess.getContainer(applicationContext,
- containerKey);
- mutator.mutate(container.getAttributeContext(request), req);
- if (preventDecorationToken != null) {
- req.setAttribute(preventDecorationToken, Boolean.TRUE);
+ if (!isPreventTokenPresent(req)) {
+ ApplicationContext applicationContext =
org.apache.tiles.request.servlet.ServletUtil
+ .getApplicationContext(servletContext);
+ Request request = new ServletRequest(applicationContext,
+ (HttpServletRequest) req, (HttpServletResponse) res);
+ TilesContainer container =
TilesAccess.getContainer(applicationContext,
+ containerKey);
+ mutator.mutate(container.getAttributeContext(request), req);
+ if (preventDecorationToken != null) {
+ req.setAttribute(preventDecorationToken, Boolean.TRUE);
+ }
+ String definitionName = getDefinitionForRequest(req);
+ container.render(definitionName, request);
}
- String definitionName = getDefinitionForRequest(req);
- container.render(definitionName, request);
+ filterChain.doFilter(req, res);
}
/**
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java?rev=952763&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
Tue Jun 8 18:28:16 2010
@@ -0,0 +1,51 @@
+/**
+ *
+ */
+package org.apache.tiles.web.startup;
+
+import static org.easymock.classextension.EasyMock.*;
+
+import java.util.Enumeration;
+
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import org.apache.tiles.request.servlet.ServletApplicationContext;
+import org.apache.tiles.startup.TilesInitializer;
+import org.junit.Test;
+
+/**
+ * Tests {...@link AbstractTilesInitializerServlet}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class AbstractTilesInitializerServletTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.startup.AbstractTilesInitializerServlet#init()}.
+ * @throws ServletException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testInit() throws ServletException {
+ AbstractTilesInitializerServlet servlet =
createMockBuilder(AbstractTilesInitializerServlet.class).createMock();
+ TilesInitializer initializer = createMock(TilesInitializer.class);
+ ServletConfig config = createMock(ServletConfig.class);
+ ServletContext servletContext = createMock(ServletContext.class);
+ Enumeration<String> names = createMock(Enumeration.class);
+
+ expect(servlet.createTilesInitializer()).andReturn(initializer);
+ expect(config.getServletContext()).andReturn(servletContext);
+ expect(servletContext.getInitParameterNames()).andReturn(names);
+ expect(config.getInitParameterNames()).andReturn(names);
+ expect(names.hasMoreElements()).andReturn(false).times(2);
+ initializer.initialize(isA(ServletApplicationContext.class));
+ initializer.destroy();
+
+ replay(servlet, initializer, config, servletContext, names);
+ servlet.init(config);
+ servlet.destroy();
+ verify(servlet, initializer, config, servletContext, names);
+ }
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesInitializerServletTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java?rev=952763&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
Tue Jun 8 18:28:16 2010
@@ -0,0 +1,44 @@
+/**
+ *
+ */
+package org.apache.tiles.web.startup;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextEvent;
+
+import org.apache.tiles.request.servlet.ServletApplicationContext;
+import org.apache.tiles.startup.TilesInitializer;
+import org.junit.Test;
+
+/**
+ * Tests {...@link AbstractTilesListener}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class AbstractTilesListenerTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.startup.AbstractTilesListener#contextInitialized(javax.servlet.ServletContextEvent)}.
+ */
+ @Test
+ public void testContextInitialized() {
+ AbstractTilesListener listener =
createMockBuilder(AbstractTilesListener.class).createMock();
+ ServletContextEvent event = createMock(ServletContextEvent.class);
+ ServletContext servletContext = createMock(ServletContext.class);
+ TilesInitializer initializer = createMock(TilesInitializer.class);
+
+ expect(event.getServletContext()).andReturn(servletContext);
+ expect(listener.createTilesInitializer()).andReturn(initializer);
+ initializer.initialize(isA(ServletApplicationContext.class));
+ initializer.destroy();
+
+ replay(listener, event, servletContext, initializer);
+ listener.contextInitialized(event);
+ listener.contextDestroyed(event);
+ verify(listener, event, servletContext, initializer);
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/AbstractTilesListenerTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java?rev=952763&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
Tue Jun 8 18:28:16 2010
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.apache.tiles.web.startup.simple;
+
+import static org.junit.Assert.*;
+
+import org.apache.tiles.startup.DefaultTilesInitializer;
+import org.junit.Test;
+
+/**
+ * Tests {...@link SimpleTilesInitializerServlet}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SimpleTilesInitializerServletTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.startup.simple.SimpleTilesInitializerServlet#createTilesInitializer()}.
+ */
+ @Test
+ public void testCreateTilesInitializer() {
+ SimpleTilesInitializerServlet servlet = new
SimpleTilesInitializerServlet();
+ assertTrue(servlet.createTilesInitializer() instanceof
DefaultTilesInitializer);
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesInitializerServletTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java?rev=952763&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
Tue Jun 8 18:28:16 2010
@@ -0,0 +1,27 @@
+/**
+ *
+ */
+package org.apache.tiles.web.startup.simple;
+
+import static org.junit.Assert.*;
+
+import org.apache.tiles.startup.DefaultTilesInitializer;
+import org.junit.Test;
+
+/**
+ * Tests {...@link SimpleTilesListener}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class SimpleTilesListenerTest {
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.startup.simple.SimpleTilesListener#createTilesInitializer()}.
+ */
+ @Test
+ public void testCreateTilesInitializer() {
+ SimpleTilesListener servlet = new SimpleTilesListener();
+ assertTrue(servlet.createTilesInitializer() instanceof
DefaultTilesInitializer);
+ }
+
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/startup/simple/SimpleTilesListenerTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Modified:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/ServletContextAdapterTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/ServletContextAdapterTest.java?rev=952763&r1=952762&r2=952763&view=diff
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/ServletContextAdapterTest.java
(original)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/ServletContextAdapterTest.java
Tue Jun 8 18:28:16 2010
@@ -1,79 +1,424 @@
-/*
- * $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.web.util;
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+import static org.junit.Assert.*;
+
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
-import org.apache.shale.test.mock.MockServletConfig;
-import org.apache.shale.test.mock.MockServletContext;
+import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
-import junit.framework.TestCase;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
/**
* Tests {...@link ServletContextAdapter}.
*
* @version $Rev$ $Date$
*/
-public class ServletContextAdapterTest extends TestCase {
+public class ServletContextAdapterTest {
+
+ private ServletConfig config;
+
+ private ServletContext servletContext;
+
+ private Enumeration<String> names1;
+
+ private Enumeration<String> names2;
+
+ /**
+ * Sets up the test.
+ */
+ @SuppressWarnings("unchecked")
+ @Before
+ public void setUp() {
+ config = createMock(ServletConfig.class);
+ servletContext = createMock(ServletContext.class);
+ names1 = createMock(Enumeration.class);
+ names2 = createMock(Enumeration.class);
+
+ expect(config.getServletContext()).andReturn(servletContext);
+ expect(names1.hasMoreElements()).andReturn(true);
+ expect(names1.nextElement()).andReturn("one");
+ expect(names1.hasMoreElements()).andReturn(true);
+ expect(names1.nextElement()).andReturn("two");
+ expect(names1.hasMoreElements()).andReturn(false);
+ expect(names2.hasMoreElements()).andReturn(true);
+ expect(names2.nextElement()).andReturn("two");
+ expect(names2.hasMoreElements()).andReturn(true);
+ expect(names2.nextElement()).andReturn("three");
+ expect(names2.hasMoreElements()).andReturn(false);
+ expect(servletContext.getInitParameterNames()).andReturn(names1);
+ expect(servletContext.getInitParameter("one")).andReturn("value1");
+ expect(servletContext.getInitParameter("two")).andReturn("value2");
+ expect(config.getInitParameterNames()).andReturn(names2);
+ expect(config.getInitParameter("two")).andReturn("otherValue2");
+ expect(config.getInitParameter("three")).andReturn("otherValue3");
+
+ replay(names1, names2);
+ }
+
+ @After
+ public void tearDown() {
+ verify(config, servletContext, names1, names2);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getContext(java.lang.String)}.
+ */
+ @Test
+ public void testGetContext() {
+ ServletContext otherContext = createMock(ServletContext.class);
+ expect(servletContext.getContext("whatever")).andReturn(otherContext);
+
+ replay(servletContext, config, otherContext);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(otherContext, adapter.getContext("whatever"));
+ verify(otherContext);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getMajorVersion()}.
+ */
+ @Test
+ public void testGetMajorVersion() {
+ expect(servletContext.getMajorVersion()).andReturn(2);
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(2, adapter.getMajorVersion());
+ }
/**
- * The context to test.
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getMinorVersion()}.
*/
- private ServletContextAdapter context;
+ @Test
+ public void testGetMinorVersion() {
+ expect(servletContext.getMinorVersion()).andReturn(5);
- /** {...@inheritdoc} */
- @Override
- protected void setUp() {
- MockServletContext rootContext = new MockServletContext();
- rootContext.addInitParameter("initParameter1", "parameterValue1");
- rootContext.addInitParameter("initParameter2", "parameterValue2");
- MockServletConfig config = new MockServletConfig(rootContext);
- config.addInitParameter("initParameter1", "newParameterValue1");
- config.addInitParameter("newInitParameter", "newParameterValue2");
- context = new ServletContextAdapter(config);
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(5, adapter.getMinorVersion());
}
/**
- * Test init parameters.
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getMimeType(java.lang.String)}.
+ */
+ @Test
+ public void testGetMimeType() {
+ expect(servletContext.getMimeType("whatever")).andReturn("mymime");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("mymime", adapter.getMimeType("whatever"));
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getResourcePaths(java.lang.String)}.
*/
@SuppressWarnings("unchecked")
- public void testGetInitParameters() {
- assertEquals(context.getInitParameter("initParameter1"),
"newParameterValue1");
- assertEquals(context.getInitParameter("initParameter2"),
"parameterValue2");
- assertEquals(context.getInitParameter("newInitParameter"),
"newParameterValue2");
-
- Set<String> paramSet = new HashSet<String>();
- paramSet.add("initParameter1");
- paramSet.add("initParameter2");
- paramSet.add("newInitParameter");
- Enumeration<String> names = context.getInitParameterNames();
- while (names.hasMoreElements()) {
- String name = names.nextElement();
- assertTrue(paramSet.contains(name));
- paramSet.remove(name);
+ @Test
+ public void testGetResourcePaths() {
+ Set<URL> urls = createMock(Set.class);
+
+ expect(servletContext.getResourcePaths("whatever")).andReturn(urls);
+
+ replay(servletContext, config, urls);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(urls, adapter.getResourcePaths("whatever"));
+ verify(urls);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getResource(java.lang.String)}.
+ * @throws MalformedURLException If something goes wrong.
+ */
+ @Test
+ public void testGetResource() throws MalformedURLException {
+ URL url = new URL("file:///temporary");
+
+ expect(servletContext.getResource("whatever")).andReturn(url);
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(url, adapter.getResource("whatever"));
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getResourceAsStream(java.lang.String)}.
+ */
+ @Test
+ public void testGetResourceAsStream() {
+ InputStream is = createMock(InputStream.class);
+
+ expect(servletContext.getResourceAsStream("whatever")).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getResourceAsStream("whatever"));
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getRequestDispatcher(java.lang.String)}.
+ */
+ @Test
+ public void testGetRequestDispatcher() {
+ RequestDispatcher is = createMock(RequestDispatcher.class);
+
+ expect(servletContext.getRequestDispatcher("whatever")).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getRequestDispatcher("whatever"));
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getNamedDispatcher(java.lang.String)}.
+ */
+ @Test
+ public void testGetNamedDispatcher() {
+ RequestDispatcher is = createMock(RequestDispatcher.class);
+
+ expect(servletContext.getNamedDispatcher("whatever")).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getNamedDispatcher("whatever"));
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getServlet(java.lang.String)}.
+ * @throws ServletException If something goes wrong.
+ */
+ @SuppressWarnings("deprecation")
+ @Test
+ public void testGetServlet() throws ServletException {
+ Servlet is = createMock(Servlet.class);
+
+ expect(servletContext.getServlet("whatever")).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getServlet("whatever"));
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getServlets()}.
+ */
+ @SuppressWarnings({ "deprecation", "unchecked" })
+ @Test
+ public void testGetServlets() {
+ Enumeration<Servlet> is = createMock(Enumeration.class);
+
+ expect(servletContext.getServlets()).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getServlets());
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getServletNames()}.
+ */
+ @SuppressWarnings({ "deprecation", "unchecked" })
+ @Test
+ public void testGetServletNames() {
+ Enumeration<String> is = createMock(Enumeration.class);
+
+ expect(servletContext.getServletNames()).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getServletNames());
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#log(java.lang.String)}.
+ */
+ @Test
+ public void testLogString() {
+ servletContext.log("whatever");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ adapter.log("whatever");
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#log(java.lang.Exception,
java.lang.String)}.
+ */
+ @SuppressWarnings("deprecation")
+ @Test
+ public void testLogExceptionString() {
+ Exception e = new Exception("It does not matter");
+ servletContext.log(e, "whatever");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ adapter.log(e, "whatever");
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#log(java.lang.String,
java.lang.Throwable)}.
+ */
+ @Test
+ public void testLogStringThrowable() {
+ Throwable e = new Throwable("It does not matter");
+ servletContext.log("whatever", e);
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ adapter.log("whatever", e);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getRealPath(java.lang.String)}.
+ */
+ @Test
+ public void testGetRealPath() {
+ expect(servletContext.getRealPath("whatever")).andReturn("mypath");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("mypath", adapter.getRealPath("whatever"));
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getServerInfo()}.
+ */
+ @Test
+ public void testGetServerInfo() {
+ expect(servletContext.getServerInfo()).andReturn("info");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("info", adapter.getServerInfo());
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getInitParameter(java.lang.String)}.
+ */
+ @Test
+ public void testGetInitParameter() {
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("value1", adapter.getInitParameter("one"));
+ assertEquals("otherValue2", adapter.getInitParameter("two"));
+ assertEquals("otherValue3", adapter.getInitParameter("three"));
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getInitParameterNames()}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetInitParameterNames() {
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ Set<String> names = new HashSet<String>();
+ names.add("one");
+ names.add("two");
+ names.add("three");
+ for (Enumeration<String> enumeration =
adapter.getInitParameterNames(); enumeration.hasMoreElements(); ) {
+ String name = enumeration.nextElement();
+ assertTrue(names.remove(name));
}
+ assertTrue(names.isEmpty());
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getAttribute(java.lang.String)}.
+ */
+ @Test
+ public void testGetAttribute() {
+ expect(servletContext.getAttribute("whatever")).andReturn("value");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("value", adapter.getAttribute("whatever"));
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getAttributeNames()}.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testGetAttributeNames() {
+ Enumeration<String> is = createMock(Enumeration.class);
+
+ expect(servletContext.getAttributeNames()).andReturn(is);
+
+ replay(servletContext, config, is);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals(is, adapter.getAttributeNames());
+ verify(is);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#setAttribute(java.lang.String,
java.lang.Object)}.
+ */
+ @Test
+ public void testSetAttribute() {
+ servletContext.setAttribute("whatever", "value");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ adapter.setAttribute("whatever", "value");
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#removeAttribute(java.lang.String)}.
+ */
+ @Test
+ public void testRemoveAttribute() {
+ servletContext.removeAttribute("whatever");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ adapter.removeAttribute("whatever");
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getServletContextName()}.
+ */
+ @Test
+ public void testGetServletContextName() {
+ expect(servletContext.getServletContextName()).andReturn("value");
+
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("value", adapter.getServletContextName());
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.ServletContextAdapter#getContextPath()}.
+ */
+ @Test
+ public void testGetContextPath() {
+ expect(servletContext.getContextPath()).andReturn("value");
- assertTrue(paramSet.isEmpty());
+ replay(servletContext, config);
+ ServletContextAdapter adapter = new ServletContextAdapter(config);
+ assertEquals("value", adapter.getContextPath());
}
}
Added:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
URL:
http://svn.apache.org/viewvc/tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java?rev=952763&view=auto
==============================================================================
---
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
(added)
+++
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
Tue Jun 8 18:28:16 2010
@@ -0,0 +1,119 @@
+/**
+ *
+ */
+package org.apache.tiles.web.util;
+
+import static org.easymock.EasyMock.*;
+import static org.easymock.classextension.EasyMock.*;
+
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Map;
+
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tiles.AttributeContext;
+import org.apache.tiles.TilesContainer;
+import org.apache.tiles.request.ApplicationContext;
+import org.apache.tiles.request.servlet.ServletRequest;
+import org.apache.tiles.request.util.ApplicationAccess;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Tests {...@link TilesDecorationFilter}.
+ *
+ * @version $Rev$ $Date$
+ */
+public class TilesDecorationFilterTest {
+
+ private FilterConfig config;
+
+ private ServletContext servletContext;
+
+ private TilesDecorationFilter filter;
+
+ /**
+ * Sets up the test.
+ * @throws ServletException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ @Before
+ public void setUp() throws ServletException {
+ config = createMock(FilterConfig.class);
+ servletContext = createMock(ServletContext.class);
+ Enumeration<String> names = createMock(Enumeration.class);
+
+ expect(config.getServletContext()).andReturn(servletContext);
+
expect(config.getInitParameter(TilesDecorationFilter.CONTAINER_KEY_INIT_PARAMETER)).andReturn("key");
+
expect(config.getInitParameter("attribute-name")).andReturn("attributeKey");
+
expect(config.getInitParameter("definition")).andReturn("definitionKey");
+ expect(config.getInitParameter("prevent-token")).andReturn("tokenKey");
+ expect(names.hasMoreElements()).andReturn(true);
+ expect(names.nextElement()).andReturn("definition(hello*)");
+ expect(names.hasMoreElements()).andReturn(false);
+ expect(config.getInitParameterNames()).andReturn(names);
+
expect(config.getInitParameter("definition(hello*)")).andReturn("alternateDef");
+
expect(config.getInitParameter("mutator")).andReturn(CustomAttributeMutator.class.getName());
+
+ replay(config, names);
+ filter = new TilesDecorationFilter();
+ filter.init(config);
+ verify(names);
+ }
+
+ /**
+ * Tears down the test.
+ */
+ @After
+ public void tearDown() {
+ verify(config, servletContext);
+ }
+
+ /**
+ * Test method for {...@link
org.apache.tiles.web.util.TilesDecorationFilter#doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse, javax.servlet.FilterChain)}.
+ * @throws ServletException If something goes wrong
+ * @throws IOException If something goes wrong.
+ */
+ @SuppressWarnings("unchecked")
+ @Test
+ public void testDoFilter() throws IOException, ServletException {
+ HttpServletRequest request = createMock(HttpServletRequest.class);
+ HttpServletResponse response = createMock(HttpServletResponse.class);
+ FilterChain chain = createMock(FilterChain.class);
+ ApplicationContext applicationContext =
createMock(ApplicationContext.class);
+ Map<String, Object> applicationScope = createMock(Map.class);
+ TilesContainer container = createMock(TilesContainer.class);
+ AttributeContext attributeContext = createMock(AttributeContext.class);
+
+
expect(request.getAttribute("org.apache.tiles.decoration.PREVENT:tokenKey")).andReturn(null);
+
expect(servletContext.getAttribute(ApplicationAccess.APPLICATION_CONTEXT_ATTRIBUTE)).andReturn(applicationContext);
+
expect(applicationContext.getApplicationScope()).andReturn(applicationScope);
+ expect(applicationScope.get("key")).andReturn(container);
+
expect(container.getAttributeContext(isA(ServletRequest.class))).andReturn(attributeContext);
+ request.setAttribute("org.apache.tiles.decoration.PREVENT:tokenKey",
true);
+
expect(request.getAttribute("javax.servlet.include.servlet_path")).andReturn(null);
+ expect(request.getServletPath()).andReturn("/tiles");
+ container.render(eq("definitionKey"), isA(ServletRequest.class));
+ chain.doFilter(request, response);
+
+ replay(servletContext, request, response, chain, applicationContext,
applicationScope, container, attributeContext);
+ filter.doFilter(request, response, chain);
+ verify(request, response, chain, applicationContext, applicationScope,
container, attributeContext);
+ }
+
+ public static class CustomAttributeMutator implements
AttributeContextMutator {
+
+ @Override
+ public void mutate(AttributeContext context,
+ javax.servlet.ServletRequest request) {
+ // Does nothing.
+ }
+ }
+}
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
tiles/sandbox/trunk/tiles3/tiles-servlet/src/test/java/org/apache/tiles/web/util/TilesDecorationFilterTest.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL