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/>

Reply via email to