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 06:26:00 UTC
wicket git commit: WICKET-6288 testing if the page is expired
assuming both component and the stateless state can't be correctly determined
in a fresh page
Repository: wicket
Updated Branches:
refs/heads/wicket-7.x 95d64446a -> 8d78d00ca
WICKET-6288 testing if the page is expired assuming both component and the stateless state can't be correctly determined in a fresh page
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8d78d00c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8d78d00c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8d78d00c
Branch: refs/heads/wicket-7.x
Commit: 8d78d00caca97fa42db8670afec05a6c66152f42
Parents: 95d6444
Author: Pedro Henrique Oliveira dos Santos <pe...@apache.org>
Authored: Mon Nov 28 04:24:58 2016 -0200
Committer: Pedro Henrique Oliveira dos Santos <pe...@apache.org>
Committed: Mon Nov 28 04:24:58 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/8d78d00c/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 ce3286f..5860c67 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
@@ -194,7 +194,7 @@ public class ListenerInterfaceRequestHandler
? component.canCallListenerInterfaceAfterExpiry()
: false;
- if (!canCallListenerInterfaceAfterExpiry && freshPage && (isStateless == false || component == null))
+ if (!canCallListenerInterfaceAfterExpiry && freshPage && (pageComponentProvider.getPageId() != null || component == null))
{
// A listener interface is invoked on an expired page.
http://git-wip-us.apache.org/repos/asf/wicket/blob/8d78d00c/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 62a84ff..5bb53ee 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;
@@ -26,17 +28,26 @@ import org.apache.wicket.Session;
import org.apache.wicket.WicketRuntimeException;
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.apache.wicket.util.tester.WicketTestCase;
+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();
+ }
+ }
}