diff --git a/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java b/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java index 0f430de55..4f043cb7b 100644 --- a/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java +++ b/core/src/test/java/org/apache/struts2/dispatcher/DispatcherTest.java @@ -146,6 +146,32 @@ public class DispatcherTest extends StrutsInternalTestCase { assertTrue(wrapped instanceof MultiPartRequestWrapper); } + public void testPrepareMultipartRequestAllAllowedCharacters() throws Exception { + MockHttpServletRequest req = new MockHttpServletRequest(); + MockHttpServletResponse res = new MockHttpServletResponse(); + + req.setMethod("post"); + req.setContentType("multipart/form-data; boundary=01=23a.bC:D((e)d'z?p+o_r,e-"); + Dispatcher du = initDispatcher(Collections.emptyMap()); + du.prepare(req, res); + HttpServletRequest wrapped = du.wrapRequest(req); + + assertTrue(wrapped instanceof MultiPartRequestWrapper); + } + + public void testPrepareMultipartRequestIllegalCharacter() throws Exception { + MockHttpServletRequest req = new MockHttpServletRequest(); + MockHttpServletResponse res = new MockHttpServletResponse(); + + req.setMethod("post"); + req.setContentType("multipart/form-data; boundary=01=2;3a.bC:D((e)d'z?p+o_r,e-"); + Dispatcher du = initDispatcher(Collections.emptyMap()); + du.prepare(req, res); + HttpServletRequest wrapped = du.wrapRequest(req); + + assertFalse(wrapped instanceof MultiPartRequestWrapper); + } + public void testDispatcherListener() throws Exception { final DispatcherListenerState state = new DispatcherListenerState();