Author: ivaynberg
Date: Wed Aug 25 08:18:14 2010
New Revision: 988870

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

Issue: WICKET-2934

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java?rev=988870&r1=988869&r2=988870&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java 
(original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/tester/FormTester.java 
Wed Aug 25 08:18:14 2010
@@ -379,8 +379,9 @@ public class FormTester
                        @Override
                        public void onFormComponent(final FormComponent<?> 
formComponent, IVisit<Void> visit)
                        {
-                               // do nothing for invisible component
-                               if (!formComponent.isVisibleInHierarchy())
+                               // do nothing for invisible or disabled 
component -- the browser would not send any parameter
+                               // for a disabled component
+                               if (!(formComponent.isVisibleInHierarchy() && 
formComponent.isEnabledInHierarchy()))
                                {
                                        return;
                                }

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java?rev=988870&r1=988869&r2=988870&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java
 Wed Aug 25 08:18:14 2010
@@ -18,6 +18,7 @@ package org.apache.wicket.util.tester;
 
 import java.util.Locale;
 
+import org.apache.wicket.Component;
 import org.apache.wicket.Session;
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.html.form.upload.FileUpload;
@@ -151,8 +152,9 @@ public class FormTesterTest extends Wick
                FileUpload fileUpload = page.getFileUpload();
                assertNotNull(fileUpload);
 
-               assertTrue("uploaded content does not have the right size, 
expected 428, got " +
-                       fileUpload.getBytes().length, 
fileUpload.getBytes().length == 428);
+               assertTrue(
+                       "uploaded content does not have the right size, 
expected 428, got " +
+                               fileUpload.getBytes().length, 
fileUpload.getBytes().length == 428);
                assertEquals("bg.jpg", fileUpload.getClientFileName());
                assertEquals("image/jpeg", fileUpload.getContentType());
        }
@@ -200,4 +202,31 @@ public class FormTesterTest extends Wick
                assertEquals("Mock Value", domainObject.getText());
        }
 
+       /**
+        * @throws Exception
+        */
+       public void testNoParametersCreatedForDisabledComponents() throws 
Exception
+       {
+               tester.startPage(new MockFormPage()
+               {
+                       @Override
+                       protected void onBeforeRender()
+                       {
+                               super.onBeforeRender();
+                               // on first rendering there can't be any form 
parameters.
+                               // on second rendering there must not be any 
since we disable the form.
+                               // the components all get rendered as disabled, 
so the browser would not send
+                               // any parameters. thus FormTester must not 
send any either.
+                               
assertTrue(getRequest().getPostParameters().getParameterNames().isEmpty());
+                       }
+               });
+               final Component form = 
tester.getComponentFromLastRenderedPage("form");
+               form.setEnabled(false);
+               assertFalse(form.isEnabled());
+               Component check = 
tester.getComponentFromLastRenderedPage("form:checkbox");
+               assertTrue(check.isEnabled());
+               assertFalse(check.isEnabledInHierarchy());
+               FormTester formTester = tester.newFormTester("form");
+               formTester.submit();
+       }
 }


Reply via email to