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);
