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