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