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


Reply via email to