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