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}
