You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2014/07/13 20:00:19 UTC

git commit: WICKET-5578 Stateless/Statefull pages - incorrect behaviour

Repository: wicket
Updated Branches:
  refs/heads/master e93338cc0 -> 5cdc1c8d3


WICKET-5578 Stateless/Statefull pages - incorrect behaviour

Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5cdc1c8d
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5cdc1c8d
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5cdc1c8d

Branch: refs/heads/master
Commit: 5cdc1c8d38aaf0ecd426e26bb13e1d126c935438
Parents: e93338c
Author: adelbene <an...@gmail.com>
Authored: Sun Jul 13 19:59:39 2014 +0200
Committer: adelbene <an...@gmail.com>
Committed: Sun Jul 13 19:59:39 2014 +0200

----------------------------------------------------------------------
 .../main/java/org/apache/wicket/Component.java  |  3 +-
 ...LazyIsPageStatelessRedirectToBufferTest.java | 73 ++++++++++++++++++++
 2 files changed, 75 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/5cdc1c8d/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 9a72a11..c1d1826 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Component.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Component.java
@@ -4544,6 +4544,7 @@ public abstract class Component
 	@Override
 	public boolean canCallListenerInterfaceAfterExpiry()
 	{
-		return getApplication().getPageSettings().getCallListenerInterfaceAfterExpiry();
+        	return getApplication().getPageSettings()
+        		.getCallListenerInterfaceAfterExpiry() || isStateless();
 	}
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/5cdc1c8d/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
index 03d3f33..cd73c5b 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterLazyIsPageStatelessRedirectToBufferTest.java
@@ -16,9 +16,16 @@
  */
 package org.apache.wicket.util.tester;
 
+import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.form.StatelessForm;
 import org.apache.wicket.mock.MockApplication;
 import org.apache.wicket.protocol.http.WebApplication;
 import org.apache.wicket.settings.RequestCycleSettings;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.StringResourceStream;
+import org.junit.Test;
 
 /**
  * https://issues.apache.org/jira/browse/WICKET-5426
@@ -37,4 +44,70 @@ public class WicketTesterLazyIsPageStatelessRedirectToBufferTest extends WicketT
 			}
 		};
 	}
+
+	/**
+	 * https://issues.apache.org/jira/browse/WICKET-5578
+	 * 
+	 * Listener interfaces for stateless component must be invoked also for 
+	 * "lazy" stateless pages.
+	 * 
+	 * @throws Exception
+	 */
+	@Test
+	public void statelessListenerInterfaceInvoked() throws Exception
+	{
+	    tester.startPage(StatelessListenerPage.class);
+	    tester.assertRenderedPage(StatelessListenerPage.class);
+	    
+	    FormTester formTester = tester.newFormTester("statelessForm");
+	    formTester.submit();
+	    
+	    tester.assertRenderedPage(EmptyPage.class);	    
+	}
+	
+	public static class StatelessListenerPage extends MyPage
+	{
+	    public StatelessListenerPage()
+	    {
+		super();
+		add(new StatelessForm("statelessForm")
+		{
+			@Override
+			protected void onSubmit() {
+				setResponsePage(EmptyPage.class);
+			}
+		});
+	    }
+	    @Override
+	    public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass)
+	    {
+		return new StringResourceStream("<html>\n" +
+					"<body>\n" +
+						"\t<a wicket:id=\"link\" />\n" +
+						"\t<form wicket:id=\"statelessForm\"></form>\n" +
+						"\t<div wicket:id=\"isPageStateless\" />\n" +
+					"</body>\n" +
+				"</html>");
+	    }
+	}
+	
+	public static class EmptyPage extends WebPage implements IMarkupResourceStreamProvider 
+	{
+
+		public EmptyPage()
+		{
+		}
+		
+		@Override
+		public IResourceStream getMarkupResourceStream(MarkupContainer container,
+			Class<?> containerClass)
+		{
+			String pageMarkup = "<html><head></head><body>" +
+								"<div>" +
+								"</div>" +
+								"</body></html>";
+			return new StringResourceStream(pageMarkup);
+		}
+		
+	}
 }