You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2016/11/28 05:23:48 UTC
wicket git commit: WICKET-6288 using the page_id to check if the page
was expired
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x ac369b16e -> bc88aca39
WICKET-6288 using the page_id to check if the page was expired
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bc88aca3
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bc88aca3
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bc88aca3
Branch: refs/heads/wicket-6.x
Commit: bc88aca39f514ea9b166d339a9f8821a6d480f4a
Parents: ac369b1
Author: Pedro Henrique Oliveira dos Santos <pe...@apache.org>
Authored: Mon Nov 28 03:23:37 2016 -0200
Committer: Pedro Henrique Oliveira dos Santos <pe...@apache.org>
Committed: Mon Nov 28 03:23:37 2016 -0200
----------------------------------------------------------------------
.../ListenerInterfaceRequestHandler.java | 2 +-
.../ListenerInterfaceRequestHandlerTest.java | 54 ++++++++++++++++++++
2 files changed, 55 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/bc88aca3/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java
index 360a55d..e97ed76 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandler.java
@@ -191,7 +191,7 @@ public class ListenerInterfaceRequestHandler
: RedirectPolicy.AUTO_REDIRECT;
final IPageProvider pageProvider = new PageProvider(page);
- if (freshPage && (isStateless == false || component == null))
+ if (freshPage && pageComponentProvider.getPageId() != null && (isStateless == false || component == null))
{
// A listener interface is invoked on an expired page.
http://git-wip-us.apache.org/repos/asf/wicket/blob/bc88aca3/wicket-core/src/test/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandlerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandlerTest.java b/wicket-core/src/test/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandlerTest.java
index 30416c8..306d65e 100644
--- a/wicket-core/src/test/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandlerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/core/request/handler/ListenerInterfaceRequestHandlerTest.java
@@ -16,6 +16,8 @@
*/
package org.apache.wicket.core.request.handler;
+import static org.hamcrest.CoreMatchers.is;
+
import java.io.IOException;
import java.text.ParseException;
@@ -27,16 +29,25 @@ import org.apache.wicket.WicketRuntimeException;
import org.apache.wicket.WicketTestCase;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.markup.html.AjaxLink;
+import org.apache.wicket.core.request.mapper.MountedMapper;
+import org.apache.wicket.markup.IMarkupFragment;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.Markup;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.IOnChangeListener;
import org.apache.wicket.markup.html.link.ILinkListener;
+import org.apache.wicket.markup.html.link.Link;
+import org.apache.wicket.markup.html.link.StatelessLink;
+import org.apache.wicket.request.IRequestCycle;
import org.apache.wicket.request.Url;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.apache.wicket.resource.DummyPage;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
import org.apache.wicket.util.resource.StringResourceStream;
+import org.hamcrest.CoreMatchers;
import org.junit.Test;
+import org.mockito.Mockito;
/**
* Tests for {@link ListenerInterfaceRequestHandler}
@@ -154,4 +165,47 @@ public class ListenerInterfaceRequestHandlerTest extends WicketTestCase
assertFalse("Handler should not report a page instance is available ",
handler.isPageInstanceCreated());
}
+
+ @Test
+ public void skipListenerIfExpiredPage()
+ {
+ tester.getApplication().getRootRequestMapperAsCompound().add(new MountedMapper("/segment", NotExpiredPage.class));
+ tester.startPage(NotExpiredPage.class);
+ tester.clickLink("statelessLink");
+ NotExpiredPage page = (NotExpiredPage)tester.getLastRenderedPage();
+ assertThat(page.invoked, is(true));
+ }
+
+ public static class NotExpiredPage extends WebPage
+ {
+ public boolean invoked;
+ public NotExpiredPage(PageParameters pageParameters)
+ {
+ super(pageParameters);
+ add(new StatelessLink<Object>("statelessLink")
+ {
+ public void onClick()
+ {
+ invoked = true;
+ }
+ });
+ add(new Link<Object>("statefullLink")
+ {
+ public void onClick()
+ {
+ }
+ });
+ }
+ @Override
+ public IMarkupFragment getMarkup()
+ {
+ return Markup.of("<html><body><a wicket:id=\"statelessLink\"></a><a wicket:id=\"statefullLink\"></a></body></html>");
+ }
+ @Override
+ protected void onBeforeRender()
+ {
+ get("statefullLink").setVisible(false);
+ super.onBeforeRender();
+ }
+ }
}