Repository: wicket Updated Branches: refs/heads/master 3e85f8b5c -> bdf0f9f7a
WICKET-5666 WicketTester "page was null" for reused stateless Form WICKET-5643 WebPageRenderer should bind a Session if redirect is required and the session is temporary. Add the quickstart from WICKET-5666 as a test case (cherry picked from commit 743240ab6ace1d2faedbcf80bfb09152d72b1cc2) Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bdf0f9f7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bdf0f9f7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bdf0f9f7 Branch: refs/heads/master Commit: bdf0f9f7ac10a888bfc79a0a6340749af45d82f3 Parents: 3e85f8b Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Thu Aug 7 10:48:29 2014 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Thu Aug 7 10:49:32 2014 +0200 ---------------------------------------------------------------------- ...elessPageManipulatingPageParametersTest.java | 104 +++++++++++++++++++ 1 file changed, 104 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/bdf0f9f7/wicket-core/src/test/java/org/apache/wicket/request/handler/render/StatelessPageManipulatingPageParametersTest.java ---------------------------------------------------------------------- diff --git a/wicket-core/src/test/java/org/apache/wicket/request/handler/render/StatelessPageManipulatingPageParametersTest.java b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/StatelessPageManipulatingPageParametersTest.java new file mode 100644 index 0000000..4157766 --- /dev/null +++ b/wicket-core/src/test/java/org/apache/wicket/request/handler/render/StatelessPageManipulatingPageParametersTest.java @@ -0,0 +1,104 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.request.handler.render; + +import org.apache.wicket.MarkupContainer; +import org.apache.wicket.WicketTestCase; +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.protocol.http.WebApplication; +import org.apache.wicket.request.mapper.parameter.PageParameters; +import org.apache.wicket.util.resource.IResourceStream; +import org.apache.wicket.util.resource.StringResourceStream; +import org.apache.wicket.util.tester.FormTester; +import org.junit.Before; +import org.junit.Test; + +/** + * https://issues.apache.org/jira/browse/WICKET-5666 + * https://issues.apache.org/jira/browse/WICKET-5643 + */ +public class StatelessPageManipulatingPageParametersTest extends WicketTestCase { + + @Before + public void before() + { + WebApplication application = tester.getApplication(); + application.mountPage("first", FirstPage.class); + application.mountPage("second", SecondPage.class); + } + + @Test + public void submitAndRedirect() { + tester.startPage(FirstPage.class); + FormTester failingFormTester = tester.newFormTester("form"); + failingFormTester.submit(); + tester.assertRenderedPage(SecondPage.class); + } + + public static class FirstPage extends WebPage implements IMarkupResourceStreamProvider { + + public FirstPage() { + + StatelessForm form = new StatelessForm("form") + { + @Override + protected void onSubmit() + { + PageParameters parameters = new PageParameters(); + parameters.add("login", ""); + setResponsePage(SecondPage.class, parameters); + } + }; + + add(form); + } + + @Override + public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass) + { + String markup = + "<html><body>" + + "<form wicket:id=\"form\">" + + "<input type=\"submit\"/> \n" + + "</form>" + + "</body></html>"; + + return new StringResourceStream(markup); + } + } + + public static class SecondPage extends WebPage implements IMarkupResourceStreamProvider + { + public SecondPage(PageParameters parameters) + { + super(parameters); + + parameters.clearNamed(); + } + + + @Override + public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass) + { + String markup = "<html/>"; + + return new StringResourceStream(markup); + } + } +}
