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();
+		}
+	}
 }