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/19 08:55:29 UTC

[2/19] git commit: WICKET-5027 do not write button's value into the request automatically

WICKET-5027 do not write button's value into the request automatically

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

Branch: refs/heads/reference-guide
Commit: c9845b23802c461ff8ec486fbbc33a18457a5788
Parents: 17d71db
Author: svenmeier <sv...@apache.org>
Authored: Fri Feb 8 08:55:51 2013 +0100
Committer: svenmeier <sv...@apache.org>
Committed: Fri Feb 8 08:55:51 2013 +0100

----------------------------------------------------------------------
 .../apache/wicket/markup/html/form/CheckGroup.java |    3 +++
 .../org/apache/wicket/util/tester/FormTester.java  |    8 ++++++--
 .../wicket/util/tester/apps_3/ChoicePage.html      |    1 +
 .../wicket/util/tester/apps_3/ChoicePage.java      |   13 +++++++++++++
 .../wicket/util/tester/apps_3/FormTesterTest.java  |    6 +++++-
 5 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/c9845b23/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
index ef6a9a8..8c85867 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/CheckGroup.java
@@ -102,6 +102,9 @@ public class CheckGroup<T> extends FormComponent<Collection<T>> implements IOnCh
 		setRenderBodyOnly(true);
 	}
 
+	/**
+	 * @see FormComponent#getModelValue()
+	 */
 	@Override
 	protected String getModelValue()
 	{

http://git-wip-us.apache.org/repos/asf/wicket/blob/c9845b23/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
index 904da20..ab3bf72 100644
--- a/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
+++ b/wicket-core/src/main/java/org/apache/wicket/util/tester/FormTester.java
@@ -418,13 +418,17 @@ public class FormTester
 		// the browser sends parameters for visible and enabled components only
 		if (formComponent.isVisibleInHierarchy() && formComponent.isEnabledInHierarchy())
 		{
-			// TODO are text components the only ones with an inherent single value
-			if (formComponent instanceof AbstractTextComponent)
+			if (formComponent instanceof IFormSubmittingComponent)
+			{
+				// buttons have to be sumitted explicitely
+			}
+			else if (formComponent instanceof AbstractTextComponent)
 			{
 				return new String[] { getFormComponentValue(formComponent) };
 			}
 			else
 			{
+				// TODO is it safe to assume that all other components' values can be split?
 				String value = getFormComponentValue(formComponent);
 				if (!Strings.isEmpty(value))
 				{

http://git-wip-us.apache.org/repos/asf/wicket/blob/c9845b23/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.html
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.html b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.html
index dd588dd..8a4f1b7 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.html
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.html
@@ -15,6 +15,7 @@
 	<select wicket:id="listMultipleChoice" ><option>1</option></select><br/>
     <span wicket:id="checkBoxMultipleChoice"><input type="checkbox"/>1</span><br/>
 	<span wicket:id="checkGroup"><span wicket:id="loop"><input type="checkbox" wicket:id="check" />1</span></span><br/>
+	<input wicket:id="buttonWithModel" type="submit" />
 	<input wicket:id="anotherButton" type="submit" />
   </form>
 </body>

http://git-wip-us.apache.org/repos/asf/wicket/blob/c9845b23/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
index 3b194d8..fba6310 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/ChoicePage.java
@@ -82,6 +82,9 @@ public class ChoicePage extends WebPage
 	public List<Book> listMultipleChoice = new ArrayList<Book>();
 
 	/** test multiple button */
+	public boolean buttonPressed;
+
+	/** test multiple button */
 	public boolean anotherButtonPressed;
 
 	/**
@@ -128,6 +131,16 @@ public class ChoicePage extends WebPage
 		form.add(new CheckBoxMultipleChoice<Book>("checkBoxMultipleChoice", candidateChoices,
 			bookChoiceRenderer));
 		form.add(newCheckGroup("checkGroup", candidateChoices));
+		form.add(new Button("buttonWithModel", Model.of("ButtonWithModel"))
+		{
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public void onSubmit()
+			{
+				buttonPressed = true;
+			}
+		});
 		form.add(new Button("anotherButton")
 		{
 			private static final long serialVersionUID = 1L;

http://git-wip-us.apache.org/repos/asf/wicket/blob/c9845b23/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/FormTesterTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/FormTesterTest.java b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/FormTesterTest.java
index 721d89c..57b03ec 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/FormTesterTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/tester/apps_3/FormTesterTest.java
@@ -47,7 +47,7 @@ public class FormTesterTest extends WicketTestCase
 		books = new Book[] { new Book("1", "book1"), new Book("2", "book2"),
 				new Book("3", "book3"), new Book("4", "book4") };
 
-		choicePage = (ChoicePage)tester.startPage(new ChoicePage(Arrays.asList(books)));
+		choicePage = tester.startPage(new ChoicePage(Arrays.asList(books)));
 		formTester = tester.newFormTester("choiceForm");
 	}
 
@@ -169,10 +169,14 @@ public class FormTesterTest extends WicketTestCase
 	public void multipleButtonSubmit() throws Exception
 	{
 		formTester.submit();
+
+		assertFalse(choicePage.buttonPressed);
 		assertFalse(choicePage.anotherButtonPressed);
 
 		formTester = tester.newFormTester("choiceForm");
 		formTester.submit("anotherButton");
+
+		assertFalse(choicePage.buttonPressed);
 		assertTrue(choicePage.anotherButtonPressed);
 	}