Updated Branches:
  refs/heads/sandbox/bookmarkable-callback-url [created] 7e5b2e317


WICKET-4932: testing recreateMountedPagesAfterExpiry at 
AbstractBookmarkableMapper


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/7e5b2e31
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/7e5b2e31
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/7e5b2e31

Branch: refs/heads/sandbox/bookmarkable-callback-url
Commit: 7e5b2e31789b0bdb51570d9531a1a109de454f8f
Parents: 66ebc4b
Author: Pedro Santos <[email protected]>
Authored: Wed Jan 9 17:43:30 2013 -0200
Committer: Pedro Santos <[email protected]>
Committed: Wed Jan 9 17:43:30 2013 -0200

----------------------------------------------------------------------
 ...ookmarkableListenerInterfaceRequestHandler.java |    8 ++
 .../request/mapper/AbstractBookmarkableMapper.java |   71 +++++++++---
 .../wicket/request/mapper/BookmarkableMapper.java  |   15 +++-
 .../wicket/request/mapper/MountedMapper.java       |   64 +++-------
 .../wicket/request/mapper/PackageMapper.java       |   30 ++++-
 .../mapper/AbstractBookmarkableMapperTest.java     |   92 +++++++++++++++
 .../wicket/request/mapper/AbstractMapperTest.java  |    4 +
 .../request/mapper/BookmarkableMapperTest.java     |   14 +-
 .../wicket/request/mapper/MountedMapperTest.java   |   44 +++-----
 .../wicket/request/mapper/PackageMapperTest.java   |   18 ++--
 .../wicket/request/mapper/TestMapperContext.java   |    7 +-
 11 files changed, 253 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
 
b/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
index 1767a88..651bc66 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/handler/BookmarkableListenerInterfaceRequestHandler.java
@@ -171,4 +171,12 @@ public class BookmarkableListenerInterfaceRequestHandler
        {
                return pageComponentProvider.getRenderCount();
        }
+
+       public static BookmarkableListenerInterfaceRequestHandler wrap(
+               ListenerInterfaceRequestHandler handler)
+       {
+               return new BookmarkableListenerInterfaceRequestHandler(new 
PageAndComponentProvider(
+                       handler.getPage(), handler.getComponent()), 
handler.getListenerInterface(),
+                       handler.getBehaviorIndex());
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
index 9042158..7ae520d 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapper.java
@@ -17,6 +17,8 @@
 package org.apache.wicket.request.mapper;
 
 import org.apache.wicket.RequestListenerInterface;
+import org.apache.wicket.protocol.http.PageExpiredException;
+import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.IRequestHandlerDelegate;
 import org.apache.wicket.request.IRequestMapper;
@@ -35,6 +37,7 @@ import org.apache.wicket.request.mapper.info.ComponentInfo;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.info.PageInfo;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.settings.IPageSettings;
 import org.apache.wicket.util.lang.Args;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -47,6 +50,7 @@ import org.slf4j.LoggerFactory;
 public abstract class AbstractBookmarkableMapper extends 
AbstractComponentMapper
 {
        private static Logger logger = 
LoggerFactory.getLogger(AbstractBookmarkableMapper.class);
+       private IPageSettings settings;
 
        /**
         * Represents information stored in URL.
@@ -138,6 +142,17 @@ public abstract class AbstractBookmarkableMapper extends 
AbstractComponentMapper
         */
        public AbstractBookmarkableMapper()
        {
+               this(WebApplication.get().getPageSettings());
+       }
+
+       /**
+        * Construct.
+        * 
+        * @param settings
+        */
+       public AbstractBookmarkableMapper(IPageSettings settings)
+       {
+               this.settings = settings;
        }
 
        /**
@@ -207,7 +222,15 @@ public abstract class AbstractBookmarkableMapper extends 
AbstractComponentMapper
                PageProvider provider = new PageProvider(pageInfo.getPageId(), 
pageClass, pageParameters,
                        renderCount);
                provider.setPageSource(getContext());
-               return new RenderPageRequestHandler(provider);
+               if (provider.isNewPageInstance() && 
!settings.getRecreateMountedPagesAfterExpiry())
+               {
+                       throw new 
PageExpiredException(String.format("Bookmarkable page id '%d' has expired.",
+                               pageInfo.getPageId()));
+               }
+               else
+               {
+                       return new RenderPageRequestHandler(provider);
+               }
        }
 
        /**
@@ -302,6 +325,7 @@ public abstract class AbstractBookmarkableMapper extends 
AbstractComponentMapper
                return null;
        }
 
+// TODO remove since we are duplicating an API here
        protected boolean checkPageInstance(IRequestablePage page)
        {
                return page != null && checkPageClass(page.getClass());
@@ -382,30 +406,43 @@ public abstract class AbstractBookmarkableMapper extends 
AbstractComponentMapper
                {
                        // listener interface URL with page class information
                        BookmarkableListenerInterfaceRequestHandler handler = 
(BookmarkableListenerInterfaceRequestHandler)requestHandler;
-                       Class<? extends IRequestablePage> pageClass = 
handler.getPageClass();
-
-                       if (!checkPageClass(pageClass))
+                       if (checkPageClass(handler.getPageClass()))
                        {
-                               return null;
+                               return mapBookmarkableHandler(handler);
                        }
-
-                       Integer renderCount = null;
-                       if 
(handler.getListenerInterface().isIncludeRenderCount())
+               }
+               else if (requestHandler instanceof 
ListenerInterfaceRequestHandler &&
+                       settings.getRecreateMountedPagesAfterExpiry())
+               {
+                       ListenerInterfaceRequestHandler handler = 
(ListenerInterfaceRequestHandler)requestHandler;
+                       if (checkPageClass(handler.getPageClass()))
                        {
-                               renderCount = handler.getRenderCount();
+                               return 
mapBookmarkableHandler(BookmarkableListenerInterfaceRequestHandler.wrap(handler));
                        }
+               }
+               return null;
+       }
 
-                       PageInfo pageInfo = getPageInfo(handler);
-                       ComponentInfo componentInfo = new 
ComponentInfo(renderCount,
-                               
requestListenerInterfaceToString(handler.getListenerInterface()),
-                               handler.getComponentPath(), 
handler.getBehaviorIndex());
+       protected Url 
mapBookmarkableHandler(BookmarkableListenerInterfaceRequestHandler handler)
+       {
+               String componentPath = handler.getComponentPath();
+               RequestListenerInterface listenerInterface = 
handler.getListenerInterface();
 
-                       UrlInfo urlInfo = new UrlInfo(new 
PageComponentInfo(pageInfo, componentInfo),
-                               pageClass, handler.getPageParameters());
-                       return buildUrl(urlInfo);
+               Integer renderCount = null;
+               if (listenerInterface.isIncludeRenderCount())
+               {
+                       renderCount = handler.getRenderCount();
                }
 
-               return null;
+               PageInfo pageInfo = getPageInfo(handler);
+               ComponentInfo componentInfo = new ComponentInfo(renderCount,
+                       requestListenerInterfaceToString(listenerInterface), 
componentPath,
+                       handler.getBehaviorIndex());
+               PageComponentInfo pageComponentInfo = new 
PageComponentInfo(pageInfo, componentInfo);
+               PageParameters parameters = new 
PageParameters(handler.getPageParameters());
+               UrlInfo urlInfo = new UrlInfo(pageComponentInfo, 
handler.getPageClass(),
+                       parameters.mergeWith(handler.getPageParameters()));
+               return buildUrl(urlInfo);
        }
 
        protected final PageInfo getPageInfo(IPageRequestHandler handler)

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
index 759f389..4ae4bf1 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/BookmarkableMapper.java
@@ -24,6 +24,7 @@ import 
org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.settings.IPageSettings;
 import org.apache.wicket.util.lang.Args;
 
 /**
@@ -53,9 +54,11 @@ public class BookmarkableMapper extends 
AbstractBookmarkableMapper
         * Construct.
         * 
         * @param pageParametersEncoder
+        * @param settings
         */
-       public BookmarkableMapper(IPageParametersEncoder pageParametersEncoder)
+       public BookmarkableMapper(IPageParametersEncoder pageParametersEncoder, 
IPageSettings settings)
        {
+               super(settings);
                Args.notNull(pageParametersEncoder, "pageParametersEncoder");
 
                this.pageParametersEncoder = pageParametersEncoder;
@@ -63,6 +66,16 @@ public class BookmarkableMapper extends 
AbstractBookmarkableMapper
 
        /**
         * Construct.
+        * 
+        * @param pageParametersEncoder
+        */
+       public BookmarkableMapper(IPageParametersEncoder pageParametersEncoder)
+       {
+               this(pageParametersEncoder, 
Application.get().getPageSettings());
+       }
+
+       /**
+        * Construct.
         */
        public BookmarkableMapper()
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
index 3d40023..6ff64f8 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/MountedMapper.java
@@ -20,18 +20,14 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.RequestListenerInterface;
-import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
-import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler;
-import org.apache.wicket.request.mapper.info.ComponentInfo;
 import org.apache.wicket.request.mapper.info.PageComponentInfo;
-import org.apache.wicket.request.mapper.info.PageInfo;
 import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.settings.IPageSettings;
 import org.apache.wicket.util.ClassProvider;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
@@ -186,6 +182,24 @@ public class MountedMapper extends 
AbstractBookmarkableMapper
                ClassProvider<? extends IRequestablePage> pageClassProvider,
                IPageParametersEncoder pageParametersEncoder)
        {
+               this(mountPath, pageClassProvider, pageParametersEncoder, 
Application.get()
+                       .getPageSettings());
+
+       }
+
+       /**
+        * Construct.
+        * 
+        * @param mountPath
+        * @param pageClassProvider
+        * @param pageParametersEncoder
+        * @param settings
+        */
+       public MountedMapper(String mountPath,
+               ClassProvider<? extends IRequestablePage> pageClassProvider,
+               IPageParametersEncoder pageParametersEncoder, IPageSettings 
settings)
+       {
+               super(settings);
                Args.notEmpty(mountPath, "mountPath");
                Args.notNull(pageClassProvider, "pageClassProvider");
                Args.notNull(pageParametersEncoder, "pageParametersEncoder");
@@ -360,46 +374,6 @@ public class MountedMapper extends 
AbstractBookmarkableMapper
                return new PageParameters();
        }
 
-       @Override
-       public Url mapHandler(IRequestHandler requestHandler)
-       {
-               Url url = super.mapHandler(requestHandler);
-
-               if (url == null && requestHandler instanceof 
ListenerInterfaceRequestHandler &&
-                       getRecreateMountedPagesAfterExpiry())
-               {
-                       ListenerInterfaceRequestHandler handler = 
(ListenerInterfaceRequestHandler)requestHandler;
-                       IRequestablePage page = handler.getPage();
-                       if (checkPageInstance(page))
-                       {
-                               String componentPath = 
handler.getComponentPath();
-                               RequestListenerInterface listenerInterface = 
handler.getListenerInterface();
-
-                               Integer renderCount = null;
-                               if (listenerInterface.isIncludeRenderCount())
-                               {
-                                       renderCount = page.getRenderCount();
-                               }
-
-                               PageInfo pageInfo = getPageInfo(handler);
-                               ComponentInfo componentInfo = new 
ComponentInfo(renderCount,
-                                       
requestListenerInterfaceToString(listenerInterface), componentPath,
-                                       handler.getBehaviorIndex());
-                               PageComponentInfo pageComponentInfo = new 
PageComponentInfo(pageInfo, componentInfo);
-                               PageParameters parameters = new 
PageParameters(page.getPageParameters());
-                               UrlInfo urlInfo = new 
UrlInfo(pageComponentInfo, page.getClass(),
-                                       
parameters.mergeWith(handler.getPageParameters()));
-                               url = buildUrl(urlInfo);
-                       }
-               }
-
-               return url;
-       }
-
-       boolean getRecreateMountedPagesAfterExpiry()
-       {
-               return 
Application.get().getPageSettings().getRecreateMountedPagesAfterExpiry();
-       }
 
        /**
         * @see 
org.apache.wicket.request.mapper.AbstractBookmarkableMapper#buildUrl(org.apache.wicket.request.mapper.AbstractBookmarkableMapper.UrlInfo)

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java
index bfacbcb..5fed6d5 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/mapper/PackageMapper.java
@@ -18,6 +18,7 @@ package org.apache.wicket.request.mapper;
 
 import java.lang.reflect.Modifier;
 
+import org.apache.wicket.Application;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
@@ -26,6 +27,7 @@ import 
org.apache.wicket.request.mapper.info.PageComponentInfo;
 import org.apache.wicket.request.mapper.parameter.IPageParametersEncoder;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.settings.IPageSettings;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.lang.PackageName;
 
@@ -88,6 +90,20 @@ public class PackageMapper extends AbstractBookmarkableMapper
        public PackageMapper(final PackageName packageName,
                final IPageParametersEncoder pageParametersEncoder)
        {
+               this(packageName, pageParametersEncoder, 
Application.get().getPageSettings());
+       }
+
+       /**
+        * Construct.
+        * 
+        * @param packageName
+        * @param pageParametersEncoder
+        * @param settigns
+        */
+       public PackageMapper(final PackageName packageName,
+               final IPageParametersEncoder pageParametersEncoder, 
IPageSettings settigns)
+       {
+               super(settigns);
                Args.notNull(packageName, "packageName");
                Args.notNull(pageParametersEncoder, "pageParametersEncoder");
 
@@ -137,7 +153,7 @@ public class PackageMapper extends 
AbstractBookmarkableMapper
 
                        // load the page class
                        String className = url.getSegments().get(0);
-                       
+
                        if (isValidClassName(className) == false)
                        {
                                return null;
@@ -161,13 +177,13 @@ public class PackageMapper extends 
AbstractBookmarkableMapper
        }
 
        /**
-        * filter out invalid class names for package mapper. getting trash for 
class names
-        * can e.g. happen when the home page is in the same package that is 
mounted by package mapper
-        * but the request was previously mapped by e.g. {@link 
HomePageMapper}. We then get some 
-        * strange url like '/example/..' and wicket tries to look up class 
name '..'.
+        * filter out invalid class names for package mapper. getting trash for 
class names can e.g.
+        * happen when the home page is in the same package that is mounted by 
package mapper but the
+        * request was previously mapped by e.g. {@link HomePageMapper}. We 
then get some strange url
+        * like '/example/..' and wicket tries to look up class name '..'.
         * <p/>
-        *  @see <a 
href="https://issues.apache.org/jira/browse/WICKET-4303";>WICKET-4303</a>
-        *  <p/>
+        * 
+        * @see <a 
href="https://issues.apache.org/jira/browse/WICKET-4303";>WICKET-4303</a> <p/>
         */
        private boolean isValidClassName(String className)
        {

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java
new file mode 100644
index 0000000..c2de418
--- /dev/null
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractBookmarkableMapperTest.java
@@ -0,0 +1,92 @@
+package org.apache.wicket.request.mapper;
+
+/*
+ * 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.
+ */
+
+import org.apache.wicket.MockPage;
+import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.protocol.http.PageExpiredException;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.Request;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.request.mapper.info.PageInfo;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * @author pedrosans
+ */
+public class AbstractBookmarkableMapperTest extends WicketTestCase
+{
+
+       private static final int NOT_RENDERED_COUNT = 2;
+       private static final int EXPIRED_ID = 2;
+
+
+       /**
+        * <a 
href="https://issues.apache.org/jira/browse/WICKET-4932";>WICKET-4932</a>
+        */
+       @Test(expected = PageExpiredException.class)
+       public void 
itFailsToProcessAnExpiredPageIfShouldNotRecreateMountedPagesAfterExpiry()
+       {
+               
tester.getApplication().getPageSettings().setRecreateMountedPagesAfterExpiry(false);
+               AbstractBookmarkableMapperStub mapper = new 
AbstractBookmarkableMapperStub();
+               mapper.processHybrid(new PageInfo(EXPIRED_ID), MockPage.class, 
null, NOT_RENDERED_COUNT);
+               Assert.fail("it shouldn't process expired pages if the app was 
flagged to not recreated mounted pages after expiry");
+       }
+
+       /** */
+       public class AbstractBookmarkableMapperStub extends 
AbstractBookmarkableMapper
+       {
+
+               @Override
+               protected UrlInfo parseRequest(Request request)
+               {
+                       return null;
+               }
+
+               @Override
+               protected Url buildUrl(UrlInfo info)
+               {
+                       return null;
+               }
+
+               @Override
+               protected boolean pageMustHaveBeenCreatedBookmarkable()
+               {
+                       return false;
+               }
+
+               @Override
+               public int getCompatibilityScore(Request request)
+               {
+                       return 0;
+               }
+
+               @Override
+               protected IRequestHandler processHybrid(PageInfo pageInfo,
+                       Class<? extends IRequestablePage> pageClass, 
PageParameters pageParameters,
+                       Integer renderCount)
+               {
+                       return super.processHybrid(pageInfo, pageClass, 
pageParameters, renderCount);
+               }
+
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
index 57455c4..bf40394 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/AbstractMapperTest.java
@@ -24,6 +24,8 @@ import org.apache.wicket.markup.html.link.ILinkListener;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.component.IRequestablePage;
+import org.apache.wicket.settings.IPageSettings;
+import org.apache.wicket.settings.def.PageSettings;
 import org.junit.Assert;
 import org.junit.Before;
 
@@ -37,9 +39,11 @@ public abstract class AbstractMapperTest extends Assert
         */
        public AbstractMapperTest()
        {
+               settings.setRecreateMountedPagesAfterExpiry(true);
        }
 
        protected TestMapperContext context = new TestMapperContext();
+       protected IPageSettings settings = new PageSettings();
 
        /**
         * @throws Exception

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java
index e6f3cc1..628ae04 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/BookmarkableMapperTest.java
@@ -31,6 +31,7 @@ import 
org.apache.wicket.request.handler.PageAndComponentProvider;
 import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
 import org.junit.Test;
 
 /**
@@ -39,7 +40,8 @@ import org.junit.Test;
 public class BookmarkableMapperTest extends AbstractMapperTest
 {
 
-       private final BookmarkableMapper encoder = new BookmarkableMapper()
+       private final BookmarkableMapper encoder = new BookmarkableMapper(new 
PageParametersEncoder(),
+               settings)
        {
                @Override
                protected IMapperContext getContext()
@@ -112,14 +114,12 @@ public class BookmarkableMapperTest extends 
AbstractMapperTest
                IRequestHandler handler = encoder.mapRequest(getRequest(url));
 
                assertTrue(handler instanceof RenderPageRequestHandler);
-               
context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
-               IRequestablePage page = 
((RenderPageRequestHandler)handler).getPage();
-               checkPage(page, 15);
+               PageParameters pageParameters = 
((RenderPageRequestHandler)handler).getPageParameters();
+               checkPage(((RenderPageRequestHandler)handler).getPage(), 15);
 
-               PageParameters p = page.getPageParameters();
-               assertEquals(2, p.getIndexedCount());
+               assertEquals(2, pageParameters.getIndexedCount());
 
-               assertEquals(2, p.getNamedKeys().size());
+               assertEquals(2, pageParameters.getNamedKeys().size());
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
index ed9eddb..6c67134 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/MountedMapperTest.java
@@ -33,6 +33,8 @@ import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.request.http.WebRequest;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
+import org.apache.wicket.util.ClassProvider;
 import org.junit.Test;
 
 /**
@@ -48,7 +50,8 @@ public class MountedMapperTest extends AbstractMapperTest
        {
        }
 
-       private final MountedMapper encoder = new 
MountedMapper("/some/mount/path", MockPage.class)
+       private final MountedMapper encoder = new 
MountedMapper("/some/mount/path",
+               ClassProvider.of(MockPage.class), new PageParametersEncoder(), 
settings)
        {
                @Override
                protected IMapperContext getContext()
@@ -56,15 +59,11 @@ public class MountedMapperTest extends AbstractMapperTest
                        return context;
                }
 
-               @Override
-               boolean getRecreateMountedPagesAfterExpiry()
-               {
-                       return true;
-               }
        };
 
        private final MountedMapper placeholderEncoder = new MountedMapper(
-               "/some/${param1}/path/${param2}", MockPage.class)
+               "/some/${param1}/path/${param2}", 
ClassProvider.of(MockPage.class),
+               new PageParametersEncoder(), settings)
        {
                @Override
                protected IMapperContext getContext()
@@ -72,27 +71,17 @@ public class MountedMapperTest extends AbstractMapperTest
                        return context;
                }
 
-               @Override
-               boolean getRecreateMountedPagesAfterExpiry()
-               {
-                       return true;
-               }
        };
 
        private final MountedMapper optionPlaceholderEncoder = new 
MountedMapper(
-               "/some/#{param1}/path/${param2}/#{param3}", MockPage.class)
+               "/some/#{param1}/path/${param2}/#{param3}", 
ClassProvider.of(MockPage.class),
+               new PageParametersEncoder(), settings)
        {
                @Override
                protected IMapperContext getContext()
                {
                        return context;
                }
-
-               @Override
-               boolean getRecreateMountedPagesAfterExpiry()
-               {
-                       return true;
-               }
        };
 
        /**
@@ -156,14 +145,13 @@ public class MountedMapperTest extends AbstractMapperTest
                IRequestHandler handler = encoder.mapRequest(getRequest(url));
 
                assertTrue(handler instanceof RenderPageRequestHandler);
-               
context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
-               IRequestablePage page = 
((RenderPageRequestHandler)handler).getPage();
-               checkPage(page, 15);
+               PageParameters pageParameters = 
((RenderPageRequestHandler)handler).getPageParameters();
 
-               PageParameters p = page.getPageParameters();
-               assertEquals(2, p.getIndexedCount());
+               checkPage(((RenderPageRequestHandler)handler).getPage(), 15);
 
-               assertEquals(2, p.getNamedKeys().size());
+               assertEquals(2, pageParameters.getIndexedCount());
+
+               assertEquals(2, pageParameters.getNamedKeys().size());
        }
 
        /**
@@ -533,7 +521,8 @@ public class MountedMapperTest extends AbstractMapperTest
        @Test(expected = IllegalArgumentException.class)
        public void construct1()
        {
-               IRequestMapper e = new MountedMapper("", MockPage.class);
+               IRequestMapper e = new MountedMapper("", 
ClassProvider.of(MockPage.class),
+                       new PageParametersEncoder(), settings);
        }
 
        /**
@@ -542,7 +531,8 @@ public class MountedMapperTest extends AbstractMapperTest
        @Test
        public void construct2()
        {
-               IRequestMapper homePageMapper = new MountedMapper("/", 
MockPage.class);
+               IRequestMapper homePageMapper = new MountedMapper("/", 
ClassProvider.of(MockPage.class),
+                       new PageParametersEncoder(), settings);
                assertNotNull(homePageMapper);
        }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java
index 23a854b..fa8e6c8 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/PackageMapperTest.java
@@ -32,6 +32,7 @@ import org.apache.wicket.request.handler.PageProvider;
 import org.apache.wicket.request.handler.RenderPageRequestHandler;
 import org.apache.wicket.request.mapper.PackageMapperTest.OuterPage.InnerPage;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.request.mapper.parameter.PageParametersEncoder;
 import org.apache.wicket.util.lang.PackageName;
 import org.junit.Test;
 
@@ -43,7 +44,8 @@ public class PackageMapperTest extends AbstractMapperTest
 
        private static final String ALIAS = "alias";
 
-       private final PackageMapper encoder = new 
PackageMapper(PackageName.forClass(MockPage.class))
+       private final PackageMapper encoder = new 
PackageMapper(PackageName.forClass(MockPage.class),
+               new PageParametersEncoder(), settings)
        {
                @Override
                protected IMapperContext getContext()
@@ -55,7 +57,7 @@ public class PackageMapperTest extends AbstractMapperTest
        private static final String PAGE_CLASS_NAME = 
MockPage.class.getSimpleName();
 
        private final PackageMapper aliasEncoder = new PackageMapper(
-               PackageName.forClass(MockPage.class))
+               PackageName.forClass(MockPage.class), new 
PageParametersEncoder(), settings)
        {
                @Override
                protected IMapperContext getContext()
@@ -157,14 +159,12 @@ public class PackageMapperTest extends AbstractMapperTest
 
                assertTrue(handler instanceof RenderPageRequestHandler);
 
-               
context.setCurrentPageParameters(((RenderPageRequestHandler)handler).getPageParameters());
-               IRequestablePage page = 
((RenderPageRequestHandler)handler).getPage();
-               checkPage(page, 15);
+               PageParameters pageParameters = 
((RenderPageRequestHandler)handler).getPageParameters();
+               checkPage(((RenderPageRequestHandler)handler).getPage(), 15);
 
-               PageParameters p = page.getPageParameters();
-               assertEquals(2, p.getIndexedCount());
+               assertEquals(2, pageParameters.getIndexedCount());
 
-               assertEquals(2, p.getNamedKeys().size());
+               assertEquals(2, pageParameters.getNamedKeys().size());
        }
 
        /**
@@ -454,7 +454,7 @@ public class PackageMapperTest extends AbstractMapperTest
 
 
        private final PackageMapper innerClassEncoder = new PackageMapper(
-               PackageName.forClass(OuterPage.class))
+               PackageName.forClass(OuterPage.class), new 
PageParametersEncoder(), settings)
        {
                @Override
                protected IMapperContext getContext()

http://git-wip-us.apache.org/repos/asf/wicket/blob/7e5b2e31/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java
 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java
index af3d4c1..9ad9b59 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/request/mapper/TestMapperContext.java
@@ -216,10 +216,15 @@ public class TestMapperContext implements IMapperContext
 
        public TestMapperContext setCurrentPageParameters(PageParameters 
parameters)
        {
-               this.currentPageParameters = parameters;
+               currentPageParameters = parameters;
                return this;
        }
 
+       public void setCreateMockPageIfInstanceNotFound(boolean 
createMockPageIfInstanceNotFound)
+       {
+               this.createMockPageIfInstanceNotFound = 
createMockPageIfInstanceNotFound;
+       }
+
        /**
         * 
         * Adapts {@link PageProvider} to this {@link IMapperContext}

Reply via email to