Updated Branches: refs/heads/master 17d71dbb6 -> c9845b238
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/master Commit: c9845b23802c461ff8ec486fbbc33a18457a5788 Parents: 17d71db Author: svenmeier <svenme...@apache.org> Authored: Fri Feb 8 08:55:51 2013 +0100 Committer: svenmeier <svenme...@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); }