You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/02/06 09:52:00 UTC

[20/38] git commit: WICKET-5017 serialize form components to request for FormSubmitLink

WICKET-5017 serialize form components to request for FormSubmitLink

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

Branch: refs/heads/reference-guide
Commit: 54a43707bcbd2ceb4a5fb9e13167c4d3481703de
Parents: 5d821d2
Author: svenmeier <sv...@apache.org>
Authored: Thu Jan 31 09:19:01 2013 +0100
Committer: svenmeier <sv...@apache.org>
Committed: Thu Jan 31 09:19:01 2013 +0100

----------------------------------------------------------------------
 .../wicket/util/tester/BaseWicketTester.java       |   11 ++-
 .../wicket/util/tester/MockFormSubmitsPage.html    |   17 ++++
 .../wicket/util/tester/MockFormSubmitsPage.java    |   62 +++++++++++++++
 .../wicket/util/tester/WicketTesterTest.java       |   27 ++++++
 4 files changed, 115 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/54a43707/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
index 14c6fca..fdd3502 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/BaseWicketTester.java
@@ -1857,6 +1857,7 @@ public class BaseWicketTester
 			String pageRelativePath = submitLink.getInputName();
 			request.getPostParameters().setParameterValue(pageRelativePath, "x");
 
+			serializeFormToRequest(submitLink.getForm());
 			submitForm(submitLink.getForm().getPageRelativePath());
 		}
 		// if the link is a normal link (or ResourceLink)
@@ -1914,8 +1915,12 @@ public class BaseWicketTester
 	}
 
 	/**
+	 * Submit the given form in the last rendered {@link Page}
+	 * <p>
+	 * <strong>Note</strong>: Form request parameters have to be set explicitely.
 	 * 
 	 * @param form
+	 *            path to component
 	 */
 	public void submitForm(Form<?> form)
 	{
@@ -1923,10 +1928,12 @@ public class BaseWicketTester
 	}
 
 	/**
-	 * Submits the <code>Form</code> in the last rendered <code>Page</code>.
+	 * Submits the {@link Form} in the last rendered {@link Page}.
+	 * <p>
+	 * <strong>Note</strong>: Form request parameters have to be set explicitely.
 	 * 
 	 * @param path
-	 *            path to <code>Form</code> component
+	 *            path to component
 	 */
 	public void submitForm(String path)
 	{

http://git-wip-us.apache.org/repos/asf/wicket/blob/54a43707/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.html b/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.html
new file mode 100644
index 0000000..00168c6
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://www.wicketframework.org">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+<title>Mock Ajax Form</title>
+</head>
+<body>
+	<form wicket:id="form">
+		<input wicket:id="text" type="text"/>
+		<input wicket:id="button" type="submit"/>
+		<input wicket:id="ajaxButton" type="submit"/>
+		<a wicket:id="link">link</a>
+		<a wicket:id="ajaxlink">ajaxlink</a>
+	</form>
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/wicket/blob/54a43707/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.java
new file mode 100644
index 0000000..f7d790e
--- /dev/null
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/MockFormSubmitsPage.java
@@ -0,0 +1,62 @@
+/*
+ * 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.util.tester;
+
+import org.apache.wicket.ajax.markup.html.form.AjaxButton;
+import org.apache.wicket.ajax.markup.html.form.AjaxSubmitLink;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.form.SubmitLink;
+import org.apache.wicket.markup.html.form.TextField;
+import org.apache.wicket.model.PropertyModel;
+
+/**
+ */
+public class MockFormSubmitsPage extends WebPage
+{
+	private static final long serialVersionUID = 1L;
+
+	public Form<Void> form;
+
+	public String text = "a text value";
+
+	/**
+	 * Construct.
+	 */
+	public MockFormSubmitsPage()
+	{
+		form = new Form<Void>("form");
+		add(form);
+
+		form.add(new TextField("text", new PropertyModel(this, "text")));
+
+		form.add(new Button("button"));
+
+		form.add(new AjaxButton("ajaxButton")
+		{
+
+		});
+
+		form.add(new SubmitLink("link"));
+
+		form.add(new AjaxSubmitLink("ajaxlink")
+		{
+
+		});
+	}
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket/blob/54a43707/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
index ae4101e..b8612ff 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/WicketTesterTest.java
@@ -1317,4 +1317,31 @@ public class WicketTesterTest extends WicketTestCase
 		tester.assertRedirectUrl("http://localhost:4333/");
 		assertEquals(HttpServletResponse.SC_FOUND, tester.getLastResponse().getStatus());
 	}
+
+	/**
+	 * WICKET-5017
+	 */
+	@Test
+	public void formSubmitSendsFormInputInRequest()
+	{
+		MockFormSubmitsPage page = new MockFormSubmitsPage();
+
+		tester.startPage(page);
+
+		tester.newFormTester("form").submit();
+		assertEquals("a text value", page.text);
+
+		tester.executeAjaxEvent(page.get("form:ajaxButton"), "click");
+		assertEquals("a text value", page.text);
+
+		tester.clickLink("form:ajaxlink");
+		assertEquals("a text value", page.text);
+
+		tester.clickLink("form:link");
+		assertEquals("a text value", page.text);
+
+		// this one doesn't
+		tester.submitForm(page.form);
+		assertEquals(null, page.text);
+	}
 }