@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2017 the original author or authors .
* Copyright 2002 - 2018 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -58,16 +58,18 @@ import org.springframework.web.servlet.FlashMapManager;
@@ -58,16 +58,18 @@ import org.springframework.web.servlet.FlashMapManager;
import org.springframework.web.servlet.support.SessionFlashMapManager ;
import org.springframework.web.util.UriComponentsBuilder ;
import org.springframework.web.util.UriUtils ;
import org.springframework.web.util.UrlPathHelper ;
/ * *
* Default builder for { @link MockHttpServletRequest } required as input to perform
* requests in { @link MockMvc } .
* Default builder for { @link MockHttpServletRequest } required as input to
* perform requests in { @link MockMvc } .
*
* < p > Application tests will typically access this builder through the static factory
* methods in { @link MockMvcRequestBuilders } .
* < p > Application tests will typically access this builder through the static
* factory methods in { @link MockMvcRequestBuilders } .
*
* < p > Although this class cannot be extended , additional ways to initialize the
* { @code MockHttpServletRequest } can be plugged in via { @link # with ( RequestPostProcessor ) } .
* < p > This class is not open for extension . To apply custom initialization to
* the created { @code MockHttpServletRequest } , please use the
* { @link # with ( RequestPostProcessor ) } extension point .
*
* @author Rossen Stoyanchev
* @author Juergen Hoeller
@ -81,6 +83,8 @@ public class MockHttpServletRequestBuilder
@@ -81,6 +83,8 @@ public class MockHttpServletRequestBuilder
private static final Charset UTF8_CHARSET = Charset . forName ( "UTF-8" ) ;
private static final UrlPathHelper urlPathHelper = new UrlPathHelper ( ) ;
private final String method ;
@ -692,7 +696,8 @@ public class MockHttpServletRequestBuilder
@@ -692,7 +696,8 @@ public class MockHttpServletRequestBuilder
"Invalid servlet path [" + this . servletPath + "] for request URI [" + requestUri + "]" ) ;
}
String extraPath = requestUri . substring ( this . contextPath . length ( ) + this . servletPath . length ( ) ) ;
this . pathInfo = ( StringUtils . hasText ( extraPath ) ? extraPath : null ) ;
this . pathInfo = ( StringUtils . hasText ( extraPath ) ?
urlPathHelper . decodeRequestString ( request , extraPath ) : null ) ;
}
request . setPathInfo ( this . pathInfo ) ;
}