Author: ivaynberg
Date: Wed Nov 26 10:51:13 2008
New Revision: 720942

URL: http://svn.apache.org/viewvc?rev=720942&view=rev
Log:
WICKET-1931

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/FormTesterTest.java
    
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/MockFormFileUploadPage.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java?rev=720942&r1=720941&r2=720942&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/MockHttpServletRequest.java
 Wed Nov 26 10:51:13 2008
@@ -487,33 +487,19 @@
         */
        public ServletInputStream getInputStream() throws IOException
        {
-               if (uploadedFiles != null && uploadedFiles.size() > 0)
-               {
-                       byte[] request = buildRequest();
+               byte[] request = buildRequest();
 
-                       // Ok lets make an input stream to return
-                       final ByteArrayInputStream bais = new 
ByteArrayInputStream(request);
+               // Ok lets make an input stream to return
+               final ByteArrayInputStream bais = new 
ByteArrayInputStream(request);
 
-                       return new ServletInputStream()
-                       {
-                               @Override
-                               public int read()
-                               {
-                                       return bais.read();
-                               }
-                       };
-               }
-               else
+               return new ServletInputStream()
                {
-                       return new ServletInputStream()
+                       @Override
+                       public int read()
                        {
-                               @Override
-                               public int read()
-                               {
-                                       return -1;
-                               }
-                       };
-               }
+                               return bais.read();
+                       }
+               };
        }
 
        /**

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=720942&r1=720941&r2=720942&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 Nov 26 10:51:13 2008
@@ -18,6 +18,7 @@
 
 import java.util.Locale;
 
+import org.apache.wicket.PageParameters;
 import org.apache.wicket.Session;
 import org.apache.wicket.WicketTestCase;
 import org.apache.wicket.markup.html.form.upload.FileUpload;
@@ -123,7 +124,7 @@
 
                FormTester formTester = tester.newFormTester("form");
                formTester.setFile("file", new File(getBasedir() +
-                               
"src/test/java/org/apache/wicket/util/tester/bg.jpg"), "image/jpeg");
+                       "src/test/java/org/apache/wicket/util/tester/bg.jpg"), 
"image/jpeg");
                formTester.setValue("text", "Mock value");
                formTester.submit();
 
@@ -136,7 +137,7 @@
                assertNotNull(fileUpload);
 
                assertTrue("uploaded content does not have the right size, 
expected 428, got " +
-                               fileUpload.getBytes().length, 
fileUpload.getBytes().length == 428);
+                       fileUpload.getBytes().length, 
fileUpload.getBytes().length == 428);
                assertEquals("bg.jpg", fileUpload.getClientFileName());
                assertEquals("image/jpeg", fileUpload.getContentType());
        }
@@ -159,4 +160,24 @@
                tester.assertErrorMessages(new String[] { "Field 'file' is 
required." });
        }
 
+       /**
+        * Test that formTester deal with Multipart form correctly when no 
actual upload
+        */
+       public void testSubmitMultipartForm()
+       {
+               tester.startPage(MockFormFileUploadPage.class, new 
PageParameters("required=false"));
+               MockFormFileUploadPage page = 
(MockFormFileUploadPage)tester.getLastRenderedPage();
+               MockDomainObjectFileUpload domainObject = 
page.getDomainObject();
+
+               Session.get().setLocale(Locale.US);
+
+               FormTester formTester = tester.newFormTester("form");
+               formTester.setValue("text", "Mock Value");
+               formTester.submit();
+
+               assertFalse(formTester.getForm().hasError());
+               assertNull(page.getFileUpload());
+               assertEquals("Mock Value", domainObject.getText());
+       }
+
 }

Modified: 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/MockFormFileUploadPage.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/MockFormFileUploadPage.java?rev=720942&r1=720941&r2=720942&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/MockFormFileUploadPage.java
 (original)
+++ 
wicket/trunk/wicket/src/test/java/org/apache/wicket/util/tester/MockFormFileUploadPage.java
 Wed Nov 26 10:51:13 2008
@@ -18,6 +18,7 @@
 
 import java.io.Serializable;
 
+import org.apache.wicket.PageParameters;
 import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.TextField;
@@ -70,18 +71,25 @@
 
        private FileUpload fileUpload;
 
+
+       public MockFormFileUploadPage()
+       {
+               this(new PageParameters("required=true"));
+       }
+
        /**
         * Construct.
         */
-       public MockFormFileUploadPage()
+       public MockFormFileUploadPage(final PageParameters param)
        {
                domainObject = new MockDomainObjectFileUpload();
-               Form<MockDomainObjectFileUpload> form = new 
Form<MockDomainObjectFileUpload>("form", new 
CompoundPropertyModel<MockDomainObjectFileUpload>(domainObject))
+               Form<MockDomainObjectFileUpload> form = new 
Form<MockDomainObjectFileUpload>("form",
+                       new 
CompoundPropertyModel<MockDomainObjectFileUpload>(domainObject))
                {
                        private static final long serialVersionUID = 1L;
 
                        @Override
-            protected void onSubmit()
+                       protected void onSubmit()
                        {
                                fileUpload = fileUploadField.getFileUpload();
                        }
@@ -91,7 +99,7 @@
                form.setMaxSize(Bytes.kilobytes(100));
                form.add(new TextField<String>("text"));
                fileUploadField = new FileUploadField("file", new 
Model<FileUpload>());
-               fileUploadField.setRequired(true);
+               fileUploadField.setRequired(param.getAsBoolean("required", 
true));
                form.add(fileUploadField);
        }
 


Reply via email to