Updated Branches:
  refs/heads/master 7ea31ba59 -> ee02c8835

WICKET-4997: more restrictive condition for using bookmarkable urls


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

Branch: refs/heads/master
Commit: ee02c88356da54a025dad50a0d0daf298ff52d68
Parents: 9c27729
Author: Emond Papegaaij <[email protected]>
Authored: Wed Aug 21 20:55:41 2013 +0200
Committer: Emond Papegaaij <[email protected]>
Committed: Mon Oct 28 10:21:57 2013 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/wicket/Component.java  |  6 ++--
 .../wicket/ajax/MockComponent3-expected.html    |  2 +-
 .../EnclosurePageExpectedResult_9-1-1.html      |  2 +-
 .../EnclosurePageExpectedResult_9-1.html        |  2 +-
 .../EnclosurePageExpectedResult_9-2-1.html      |  2 +-
 .../EnclosurePageExpectedResult_9-2.html        |  2 +-
 .../EnclosurePageExpectedResult_9-3-1.html      |  2 +-
 .../EnclosurePageExpectedResult_9-3-2.html      |  2 +-
 .../EnclosurePageExpectedResult_9-3.html        |  2 +-
 .../EnclosurePageExpectedResult_9-4.html        |  2 +-
 .../internal/EnclosurePageExpectedResult_9.html |  2 +-
 .../markup/html/link/MountedPageLinkTest.java   | 33 +++++++++++++++++---
 .../wicket/markup/html/link/PageWithLink.java   |  7 -----
 13 files changed, 43 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/main/java/org/apache/wicket/Component.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Component.java 
b/wicket-core/src/main/java/org/apache/wicket/Component.java
index 0c56063..b78f8bf 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -3334,7 +3334,8 @@ public abstract class Component
                Page page = getPage();
                PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this, parameters);
                IRequestHandler handler;
-               if (page.isBookmarkable())
+               if 
(getApplication().getPageSettings().getRecreateMountedPagesAfterExpiry() &&
+                       ((page.isBookmarkable() && 
page.wasCreatedBookmarkable()) || page.isPageStateless()))
                {
                        handler = new 
BookmarkableListenerInterfaceRequestHandler(provider, listener, id);
                }
@@ -3377,7 +3378,8 @@ public abstract class Component
                Page page = getPage();
                PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this, parameters);
                IRequestHandler handler;
-               if (page.isBookmarkable())
+               if 
(getApplication().getPageSettings().getRecreateMountedPagesAfterExpiry() &&
+                       ((page.isBookmarkable() && 
page.wasCreatedBookmarkable()) || page.isPageStateless()))
                {
                        handler = new 
BookmarkableListenerInterfaceRequestHandler(provider, listener);
                }

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent3-expected.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent3-expected.html 
b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent3-expected.html
index f9552b4..7171a53 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent3-expected.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/ajax/MockComponent3-expected.html
@@ -1,2 +1,2 @@
-<![CDATA[<head xmlns:wicket="http://wicket.apache.org";><link rel="stylesheet" 
type="text/css" 
href="../resource/org.apache.wicket.ajax.MockComponent3/mockStyleSheet3.css" />
+<![CDATA[<head xmlns:wicket="http://wicket.apache.org";><link rel="stylesheet" 
type="text/css" 
href="./resource/org.apache.wicket.ajax.MockComponent3/mockStyleSheet3.css" />
 </head>]]>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1-1.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1-1.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1-1.html
index 0685a74..21c441d 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1-1.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1-1.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?2-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?2-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       <input wicket:id="input" type="checkbox" name="input"/>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1.html
index 233f38c..6ae92e0 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-1.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?1-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?1-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     
   </form>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2-1.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2-1.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2-1.html
index 9e2678d..baeac11 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2-1.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2-1.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?2-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?2-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     
   </form>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
index 9258a54..987b223 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-2.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?4-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?4-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     
   </form>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-1.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-1.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-1.html
index 4726ca5..df38e88 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-1.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-1.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?5-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?5-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-2.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-2.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-2.html
index 9daf8ec..87eb79e 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-2.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3-2.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?6-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?6-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       <input wicket:id="input" type="checkbox" name="input"/>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
index 3cd7389..3e86ff0 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-3.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?3-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?3-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
index f4f2a88..2186bd1 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9-4.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?1-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?1-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       <input wicket:id="input" type="checkbox" checked="checked" name="input"/>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
index 89e606e..638925b 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_9.html
@@ -1,6 +1,6 @@
 <html xmlns:wicket>
 <body>
-  <form wicket:id="form" id="form1" method="post" 
action="./bookmarkable/org.apache.wicket.markup.html.internal.EnclosurePage_9?0-1.IFormSubmitListener-form"><div
 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
+  <form wicket:id="form" id="form1" method="post" 
action="./page?0-1.IFormSubmitListener-form"><div 
style="width:0px;height:0px;position:absolute;left:-100px;top:-100px;overflow:hidden"><input
 type="hidden" name="form1_hf_0" id="form1_hf_0" /></div>
     <!-- does Wicket behave different if the enclosure child is a 
FormComponent?? Needs testing -->
     <wicket:enclosure child="label">
       <input wicket:id="input" type="checkbox" name="input"/>

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
index 3b10aeb..ae35127 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/MountedPageLinkTest.java
@@ -16,6 +16,9 @@
  */
 package org.apache.wicket.markup.html.link;
 
+import java.util.Arrays;
+import java.util.Collection;
+
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.core.request.mapper.PageInstanceMapper;
 import org.apache.wicket.protocol.http.PageExpiredException;
@@ -23,6 +26,9 @@ import 
org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.settings.IPageSettings;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
 
 /**
  * Testcases for links on mounted pages. These links are special, because they 
refer the page by id
@@ -31,15 +37,30 @@ import org.junit.Test;
  * 
  * @author papegaaij
  */
+@RunWith(Parameterized.class)
 public class MountedPageLinkTest extends WicketTestCase
 {
+       @Parameters
+       public static Collection<Object[]> data()
+       {
+               return Arrays.asList(new Object[][] { { true }, { false } });
+       }
+
+       private boolean mount;
+
+       public MountedPageLinkTest(boolean mount)
+       {
+               this.mount = mount;
+       }
+
        /**
         * Mount the page
         */
        @Before
        public void mountPage()
        {
-               tester.getApplication().mountPage("mount/${param}/part2", 
PageWithLink.class);
+               if (mount)
+                       
tester.getApplication().mountPage("mount/${param}/part2", PageWithLink.class);
        }
 
        /**
@@ -52,8 +73,12 @@ public class MountedPageLinkTest extends WicketTestCase
                        new PageParameters().add("param", "value"));
                Link<?> link = (Link<?>)page.get("link");
                String url = link.getURL().toString();
-               assertTrue("URL for link should contain 'mount/value/part2': " 
+ url, url.toString()
-                       .contains("mount/value/part2"));
+               if (mount)
+                       assertTrue("URL for link should contain 
'mount/value/part2': " + url, url.toString()
+                               .contains("mount/value/part2"));
+               else
+                       assertTrue("URL for link should contain 'param=value': 
" + url, url.toString()
+                               .contains("param=value"));
                tester.executeUrl(url);
        }
 
@@ -71,7 +96,7 @@ public class MountedPageLinkTest extends WicketTestCase
                Link<?> link = (Link<?>)page.get("link");
                String url = link.getURL().toString();
                // simulate a page expiry
-               url = url.replace("part2?0", "part2?3");
+               url = url.replace("?0", "?3");
                tester.executeUrl(url);
 
                // request parameters to callback urls should be ignored for 
the re-created page

http://git-wip-us.apache.org/repos/asf/wicket/blob/ee02c883/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
index 6f7fc4c..e6af20c 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/markup/html/link/PageWithLink.java
@@ -41,13 +41,6 @@ public class PageWithLink extends WebPage
        }
 
        @Override
-       public boolean isBookmarkable()
-       {
-               // not bookmarkable because ${param} is required
-               return false;
-       }
-
-       @Override
        public void renderHead(IHeaderResponse response)
        {
                super.renderHead(response);

Reply via email to