You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/11/30 12:25:32 UTC

svn commit: r1040464 - /wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java

Author: pedro
Date: Tue Nov 30 11:25:31 2010
New Revision: 1040464

URL: http://svn.apache.org/viewvc?rev=1040464&view=rev
Log:
test for the onSubmit invoking sequence
Issue: WICKET-1894

Modified:
    wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java

Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java?rev=1040464&r1=1040463&r2=1040464&view=diff
==============================================================================
--- wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java (original)
+++ wicket/trunk/wicket/src/test/java/org/apache/wicket/markup/html/form/FormWithMultipleButtonsTest.java Tue Nov 30 11:25:31 2010
@@ -16,9 +16,15 @@
  */
 package org.apache.wicket.markup.html.form;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import junit.framework.TestCase;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.markup.html.form.AjaxFallbackButton;
 import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.util.resource.IResourceStream;
@@ -46,10 +52,36 @@ public class FormWithMultipleButtonsTest
 	{
 		TestPage testPage = new TestPage();
 		tester.startPage(testPage);
-		tester.getRequest().getPostParameters().addParameterValue(testPage.b2.getInputName(), "");
+		tester.getRequest()
+			.getPostParameters()
+			.addParameterValue(testPage.ajaxFallbackButton.getInputName(), "");
+		tester.submitForm(testPage.form);
+		assertFalse(testPage.submitSequence.contains(testPage.button));
+		assertTrue(testPage.submitSequence.contains(testPage.ajaxFallbackButton));
+	}
+
+	/**
+	 * @see https://issues.apache.org/jira/browse/WICKET-1894
+	 */
+	public void testAjaxFallbackButtonInvokedFirst()
+	{
+		TestPage testPage = new TestPage();
+		tester.startPage(testPage);
+		tester.executeAjaxEvent(testPage.ajaxFallbackButton, "onclick");
+		assertEquals(0, testPage.submitSequence.indexOf(testPage.ajaxFallbackButton));
+		assertEquals(1, testPage.submitSequence.indexOf(testPage.form));
+	}
+
+	public void testButtonInvokedFirst()
+	{
+		TestPage testPage = new TestPage();
+		tester.startPage(testPage);
+		tester.getRequest()
+			.getPostParameters()
+			.addParameterValue(testPage.button.getInputName(), "");
 		tester.submitForm(testPage.form);
-		assertFalse(testPage.b1.submitted);
-		assertTrue(testPage.b2.submitted);
+		assertEquals(0, testPage.submitSequence.indexOf(testPage.button));
+		assertEquals(1, testPage.submitSequence.indexOf(testPage.form));
 	}
 
 	@Override
@@ -60,15 +92,42 @@ public class FormWithMultipleButtonsTest
 
 	private static class TestPage extends WebPage implements IMarkupResourceStreamProvider
 	{
+		List<Component> submitSequence = new ArrayList<Component>();
 		Form form;
-		TestButton b1;
-		TestButton b2;
+		Button button;
+		AjaxFallbackButton ajaxFallbackButton;
 
 		public TestPage()
 		{
-			add(form = new Form("form"));
-			form.add(b1 = new TestButton("b1"));
-			form.add(b2 = new TestButton("b2"));
+			add(form = new Form("form")
+			{
+				@Override
+				protected void onSubmit()
+				{
+					submitSequence.add(this);
+				};
+			});
+			form.add(button = new Button("b1")
+			{
+				@Override
+				public void onSubmit()
+				{
+					submitSequence.add(this);
+				};
+			});
+			form.add(ajaxFallbackButton = new AjaxFallbackButton("b2", form)
+			{
+				@Override
+				protected void onSubmit(AjaxRequestTarget target, Form<?> form)
+				{
+					submitSequence.add(this);
+				}
+
+				@Override
+				protected void onError(AjaxRequestTarget target, Form<?> form)
+				{
+				}
+			});
 		}
 
 		public IResourceStream getMarkupResourceStream(MarkupContainer container,
@@ -79,19 +138,4 @@ public class FormWithMultipleButtonsTest
 		}
 	}
 
-	private static class TestButton extends Button
-	{
-		boolean submitted;
-
-		public TestButton(String id)
-		{
-			super(id);
-		}
-
-		@Override
-		public void onSubmit()
-		{
-			submitted = true;
-		}
-	}
 }