You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2011/09/20 19:59:30 UTC

svn commit: r1173279 - in /wicket/trunk/wicket-core/src: main/java/org/apache/wicket/markup/html/form/Form.java test/java/org/apache/wicket/markup/html/form/FormTest.java

Author: ivaynberg
Date: Tue Sep 20 17:59:30 2011
New Revision: 1173279

URL: http://svn.apache.org/viewvc?rev=1173279&view=rev
Log:

Issue: WICKET-4070

Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
    wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormTest.java

Modified: wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=1173279&r1=1173278&r2=1173279&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java Tue Sep 20 17:59:30 2011
@@ -797,6 +797,7 @@ public class Form<T> extends WebMarkupCo
 			if (hasError())
 			{
 				callOnError(submittingComponent);
+				return;
 			}
 
 			// Form has no error

Modified: wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormTest.java?rev=1173279&r1=1173278&r2=1173279&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormTest.java (original)
+++ wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/form/FormTest.java Tue Sep 20 17:59:30 2011
@@ -16,8 +16,13 @@
  */
 package org.apache.wicket.markup.html.form;
 
+import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.MockPageParametersAware;
 import org.apache.wicket.WicketTestCase;
+import org.apache.wicket.markup.IMarkupResourceStreamProvider;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.util.resource.IResourceStream;
+import org.apache.wicket.util.resource.StringResourceStream;
 import org.apache.wicket.util.string.Strings;
 import org.apache.wicket.util.visit.IVisitor;
 
@@ -82,6 +87,61 @@ public class FormTest extends WicketTest
 		assertTrue(response.contains(Strings.escapeMarkup(TestPage.TEST_QUERY_STRING)));
 	}
 
+	public void testOnValidateModelObjects()
+	{
+
+		class TestPage extends WebPage implements IMarkupResourceStreamProvider
+		{
+			boolean shouldFail;
+			boolean submit;
+			boolean error;
+
+			public TestPage()
+			{
+				add(new Form<Void>("form")
+				{
+					@Override
+					protected void onValidateModelObjects()
+					{
+						if (shouldFail)
+							error("failed");
+					}
+
+					@Override
+					protected void onSubmit()
+					{
+						submit = true;
+					}
+
+					@Override
+					protected void onError()
+					{
+						error = true;
+					}
+				});
+			}
+
+			public IResourceStream getMarkupResourceStream(final MarkupContainer container,
+				Class<?> containerClass)
+			{
+				return new StringResourceStream("<form wicket:id='form'></form>");
+			}
+		}
+
+		TestPage page = new TestPage();
+		tester.startPage(page);
+		tester.submitForm("form");
+		assertTrue(page.submit);
+		assertFalse(page.error);
+
+		page = new TestPage();
+		page.shouldFail = true;
+		tester.startPage(page);
+		tester.submitForm("form");
+		assertFalse(page.submit);
+		assertTrue(page.error);
+	}
+
 	/** */
 	public static class TestPage extends MockPageParametersAware
 	{