On Thu, Jan 10, 2013 at 12:58 AM, <[email protected]> wrote:
> Updated Branches:
> refs/heads/sandbox/bookmarkable-callback-url fba8bddd9 -> 1ec0b8b36
>
>
> WICKET-4932: testing if the page is bookmarkable before to encode the
> callback url for a component inside it
>
> Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
> Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/1ec0b8b3
> Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/1ec0b8b3
> Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/1ec0b8b3
>
> Branch: refs/heads/sandbox/bookmarkable-callback-url
> Commit: 1ec0b8b3637feb19da4f87b485e96bfc7ce4e992
> Parents: fba8bdd
> Author: Pedro Santos <[email protected]>
> Authored: Wed Jan 9 20:58:40 2013 -0200
> Committer: Pedro Santos <[email protected]>
> Committed: Wed Jan 9 20:58:40 2013 -0200
>
> ----------------------------------------------------------------------
> .../request/mapper/AbstractBookmarkableMapper.java | 2 +-
> .../mapper/AbstractBookmarkableMapperTest.java | 70 ++++++++++++++-
> .../request/mapper/BookmarkableMapperTest.java | 6 ++
> .../wicket/request/mapper/PackageMapperTest.java | 6 ++
> 4 files changed, 80 insertions(+), 4 deletions(-)
> ----------------------------------------------------------------------
>
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1ec0b8b3/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 47ac13a..7e164dd 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
> @@ -333,7 +333,7 @@ public abstract class AbstractBookmarkableMapper
> extends AbstractComponentMapper
>
> protected boolean checkPageClass(Class<? extends IRequestablePage>
> pageClass)
> {
> - return true;
> + return
> Application.get().getPageFactory().isBookmarkable(pageClass);
> }
>
> public Url mapHandler(IRequestHandler requestHandler)
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1ec0b8b3/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
> index 693adec..705f14c 100644
> ---
> 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
> @@ -17,13 +17,22 @@ package org.apache.wicket.request.mapper;
> * limitations under the License.
> */
>
> +import static org.hamcrest.CoreMatchers.notNullValue;
> +import static org.hamcrest.CoreMatchers.nullValue;
> +
> import org.apache.wicket.MockPage;
> import org.apache.wicket.WicketTestCase;
> +import org.apache.wicket.markup.html.link.ILinkListener;
> import org.apache.wicket.protocol.http.PageExpiredException;
> import org.apache.wicket.request.Request;
> import org.apache.wicket.request.Url;
> +import org.apache.wicket.request.component.IRequestableComponent;
> +import
> org.apache.wicket.request.handler.BookmarkableListenerInterfaceRequestHandler;
> +import org.apache.wicket.request.handler.ListenerInterfaceRequestHandler;
> +import org.apache.wicket.request.handler.PageAndComponentProvider;
> import org.apache.wicket.request.mapper.info.PageInfo;
> import org.junit.Assert;
> +import org.junit.Before;
> import org.junit.Test;
>
> /**
> @@ -34,7 +43,14 @@ public class AbstractBookmarkableMapperTest extends
> WicketTestCase
>
> private static final int NOT_RENDERED_COUNT = 2;
> private static final int EXPIRED_ID = 2;
> + private AbstractBookmarkableMapperStub mapper;
>
> + /** */
> + @Before
> + public void initialize()
> + {
> + mapper = new AbstractBookmarkableMapperStub();
> + }
>
> /**
> * <a href="https://issues.apache.org/jira/browse/WICKET-4932
> ">WICKET-4932</a>
> @@ -43,12 +59,54 @@ public class AbstractBookmarkableMapperTest extends
> WicketTestCase
> 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");
> }
>
> - /** only a stub since we are testing an abstract class */
> + /** */
> + @Test
> + public void
> itDoenstEndodesBookmarkableInfoForCallbacksInNonBookmarkablePages()
>
There is a typo in the method name (endodes)
> + {
> + assertThat(mapper.mapHandler(anInterfaceHandlerFor(new
> NonBookmarkablePage(1))),
> + nullValue());
> + assertThat(mapper.mapHandler(anInterfaceHandlerFor(new
> BookmarkablePage())), notNullValue());
> + }
> +
> + private ListenerInterfaceRequestHandler
> anInterfaceHandlerFor(MockPage page)
> + {
> + IRequestableComponent component = page.get("bar:foo");
> + return new ListenerInterfaceRequestHandler(new
> PageAndComponentProvider(page, component),
> + ILinkListener.INTERFACE);
> + }
> +
> + /**
> + * An non bookmarkable page since there's no default constructor
> + */
> + public static class NonBookmarkablePage extends MockPage
>
private ?
I prefer private because otherwise the IDE suggests this class in places
where I don't wont it (like other tests).
> + {
> + /** */
> + private static final long serialVersionUID = 1L;
> +
> + /**
> + * @param aMandatoryParameter
> + */
> + public NonBookmarkablePage(int aMandatoryParameter)
> + {
> + }
> + }
> +
> + /**
> + * An bookmarkable page since there's a default constructor
> + */
> + public static class BookmarkablePage extends MockPage
>
private ?
> + {
> + /** */
> + private static final long serialVersionUID = 1L;
> + }
> +
> + /**
> + * only a stub since we are testing an abstract class
> + */
> private static class AbstractBookmarkableMapperStub extends
> AbstractBookmarkableMapper
> {
>
> @@ -61,7 +119,7 @@ public class AbstractBookmarkableMapperTest extends
> WicketTestCase
> @Override
> protected Url buildUrl(UrlInfo info)
> {
> - return null;
> + return new Url();
> }
>
> @Override
> @@ -76,6 +134,12 @@ public class AbstractBookmarkableMapperTest extends
> WicketTestCase
> return 0;
> }
>
> + @Override
> + protected Url
> mapBookmarkableHandler(BookmarkableListenerInterfaceRequestHandler handler)
> + {
> + return super.mapBookmarkableHandler(handler);
> + }
> +
> }
>
> }
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1ec0b8b3/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 628ae04..c3b013d 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
> @@ -48,6 +48,12 @@ public class BookmarkableMapperTest extends
> AbstractMapperTest
> {
> return context;
> }
> +
> + @Override
> + protected boolean checkPageClass(java.lang.Class<? extends
> IRequestablePage> pageClass)
> + {
> + return true;
> + }
> };
>
> private static final String PAGE_CLASS_NAME =
> MockPage.class.getName();
>
>
> http://git-wip-us.apache.org/repos/asf/wicket/blob/1ec0b8b3/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 fa8e6c8..67bff94 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
> @@ -52,6 +52,12 @@ public class PackageMapperTest extends
> AbstractMapperTest
> {
> return context;
> }
> +
> + @Override
> + protected boolean checkPageClass(java.lang.Class<? extends
> IRequestablePage> pageClass)
> + {
> + return true;
> + }
> };
>
> private static final String PAGE_CLASS_NAME =
> MockPage.class.getSimpleName();
>
>
--
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>