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);
}