You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pa...@apache.org on 2013/10/28 09:46:34 UTC

[27/27] git commit: WICKET-4997: more restrictive condition for using bookmarkable urls

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/272c5d9b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/272c5d9b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/272c5d9b

Branch: refs/heads/wicket-4997
Commit: 272c5d9bdeb8e84b1201e65c1462a6b987e28f78
Parents: 6321587
Author: Emond Papegaaij <em...@topicus.nl>
Authored: Wed Aug 21 20:55:41 2013 +0200
Committer: Emond Papegaaij <em...@topicus.nl>
Committed: Mon Oct 28 09:45:43 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/272c5d9b/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 116eb86..d37e660 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -3336,7 +3336,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);
 		}
@@ -3379,7 +3380,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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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/272c5d9b/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);