4242import org .springframework .test .web .servlet .SmartRequestBuilder ;
4343import org .springframework .test .web .servlet .request .RequestPostProcessor ;
4444import org .springframework .util .Assert ;
45+ import org .springframework .util .ObjectUtils ;
4546import org .springframework .web .util .UriComponents ;
4647import org .springframework .web .util .UriComponentsBuilder ;
4748
@@ -104,27 +105,27 @@ public MockHttpServletRequest buildRequest(ServletContext servletContext) {
104105 String httpMethod = this .webRequest .getHttpMethod ().name ();
105106 UriComponents uriComponents = uriComponents ();
106107
107- MockHttpServletRequest result = new HtmlUnitMockHttpServletRequest (servletContext , httpMethod ,
108+ MockHttpServletRequest request = new HtmlUnitMockHttpServletRequest (servletContext , httpMethod ,
108109 uriComponents .getPath ());
109- parent (result , this .parentBuilder );
110- result .setServerName (uriComponents .getHost ()); // needs to be first for additional headers
111- authType (result );
112- result .setCharacterEncoding (charset );
113- content (result , charset );
114- contextPath (result , uriComponents );
115- contentType (result );
116- cookies (result );
117- headers (result );
118- locales (result );
119- servletPath (uriComponents , result );
120- params (result , uriComponents );
121- ports (uriComponents , result );
122- result .setProtocol ("HTTP/1.1" );
123- result .setQueryString (uriComponents .getQuery ());
124- result .setScheme (uriComponents .getScheme ());
125- pathInfo (uriComponents ,result );
126-
127- return postProcess (result );
110+ parent (request , this .parentBuilder );
111+ request .setServerName (uriComponents .getHost ()); // needs to be first for additional headers
112+ authType (request );
113+ request .setCharacterEncoding (charset );
114+ content (request , charset );
115+ contextPath (request , uriComponents );
116+ contentType (request );
117+ cookies (request );
118+ headers (request );
119+ locales (request );
120+ servletPath (uriComponents , request );
121+ params (request , uriComponents );
122+ ports (uriComponents , request );
123+ request .setProtocol ("HTTP/1.1" );
124+ request .setQueryString (uriComponents .getQuery ());
125+ request .setScheme (uriComponents .getScheme ());
126+ pathInfo (uriComponents ,request );
127+
128+ return postProcess (request );
128129 }
129130
130131 private MockHttpServletRequest postProcess (MockHttpServletRequest request ) {
@@ -137,12 +138,12 @@ private MockHttpServletRequest postProcess(MockHttpServletRequest request) {
137138 return request ;
138139 }
139140
140- private void parent (MockHttpServletRequest result , RequestBuilder parent ) {
141+ private void parent (MockHttpServletRequest request , RequestBuilder parent ) {
141142 if (parent == null ) {
142143 return ;
143144 }
144145
145- MockHttpServletRequest parentRequest = parent .buildRequest (result .getServletContext ());
146+ MockHttpServletRequest parentRequest = parent .buildRequest (request .getServletContext ());
146147
147148 // session
148149 HttpSession parentSession = parentRequest .getSession (false );
@@ -151,7 +152,7 @@ private void parent(MockHttpServletRequest result, RequestBuilder parent) {
151152 while (attrNames .hasMoreElements ()) {
152153 String attrName = attrNames .nextElement ();
153154 Object attrValue = parentSession .getAttribute (attrName );
154- result .getSession ().setAttribute (attrName , attrValue );
155+ request .getSession ().setAttribute (attrName , attrValue );
155156 }
156157 }
157158
@@ -162,7 +163,7 @@ private void parent(MockHttpServletRequest result, RequestBuilder parent) {
162163 Enumeration <String > attrValues = parentRequest .getHeaders (attrName );
163164 while (attrValues .hasMoreElements ()) {
164165 String attrValue = attrValues .nextElement ();
165- result .addHeader (attrName , attrValue );
166+ request .addHeader (attrName , attrValue );
166167 }
167168 }
168169
@@ -171,20 +172,20 @@ private void parent(MockHttpServletRequest result, RequestBuilder parent) {
171172 for (Map .Entry <String , String []> parentParam : parentParams .entrySet ()) {
172173 String paramName = parentParam .getKey ();
173174 String [] paramValues = parentParam .getValue ();
174- result .addParameter (paramName , paramValues );
175+ request .addParameter (paramName , paramValues );
175176 }
176177
177178 // cookie
178179 Cookie [] parentCookies = parentRequest .getCookies ();
179- if (parentCookies != null ) {
180- result .setCookies (parentCookies );
180+ if (! ObjectUtils . isEmpty ( parentCookies ) ) {
181+ request .setCookies (parentCookies );
181182 }
182183
183184 // request attribute
184185 Enumeration <String > parentAttrNames = parentRequest .getAttributeNames ();
185186 while (parentAttrNames .hasMoreElements ()) {
186187 String parentAttrName = parentAttrNames .nextElement ();
187- result .setAttribute (parentAttrName , parentRequest .getAttribute (parentAttrName ));
188+ request .setAttribute (parentAttrName , parentRequest .getAttribute (parentAttrName ));
188189 }
189190 }
190191
@@ -214,47 +215,47 @@ private void authType(MockHttpServletRequest request) {
214215 }
215216 }
216217
217- private void content (MockHttpServletRequest result , String charset ) {
218+ private void content (MockHttpServletRequest request , String charset ) {
218219 String requestBody = this .webRequest .getRequestBody ();
219220 if (requestBody == null ) {
220221 return ;
221222 }
222223 try {
223- result .setContent (requestBody .getBytes (charset ));
224+ request .setContent (requestBody .getBytes (charset ));
224225 }
225226 catch (UnsupportedEncodingException e ) {
226227 throw new RuntimeException (e );
227228 }
228229 }
229230
230- private void contentType (MockHttpServletRequest result ) {
231+ private void contentType (MockHttpServletRequest request ) {
231232 String contentType = header ("Content-Type" );
232- result .setContentType (contentType == null ? MediaType .ALL_VALUE .toString () : contentType );
233+ request .setContentType (contentType == null ? MediaType .ALL_VALUE .toString () : contentType );
233234 }
234235
235- private void contextPath (MockHttpServletRequest result , UriComponents uriComponents ) {
236+ private void contextPath (MockHttpServletRequest request , UriComponents uriComponents ) {
236237 if (this .contextPath == null ) {
237238 List <String > pathSegments = uriComponents .getPathSegments ();
238239 if (pathSegments .isEmpty ()) {
239- result .setContextPath ("" );
240+ request .setContextPath ("" );
240241 }
241242 else {
242- result .setContextPath ("/" + pathSegments .get (0 ));
243+ request .setContextPath ("/" + pathSegments .get (0 ));
243244 }
244245 }
245246 else {
246247 if (!uriComponents .getPath ().startsWith (this .contextPath )) {
247248 throw new IllegalArgumentException (uriComponents .getPath () + " should start with contextPath "
248249 + this .contextPath );
249250 }
250- result .setContextPath (this .contextPath );
251+ request .setContextPath (this .contextPath );
251252 }
252253 }
253254
254- private void cookies (MockHttpServletRequest result ) {
255- String cookieHeaderValue = header ("Cookie" );
256- Cookie [] parentCookies = result .getCookies ();
255+ private void cookies (MockHttpServletRequest request ) {
257256 List <Cookie > cookies = new ArrayList <Cookie >();
257+
258+ String cookieHeaderValue = header ("Cookie" );
258259 if (cookieHeaderValue != null ) {
259260 StringTokenizer tokens = new StringTokenizer (cookieHeaderValue , "=;" );
260261 while (tokens .hasMoreTokens ()) {
@@ -264,29 +265,32 @@ private void cookies(MockHttpServletRequest result) {
264265 + "'. Full cookie was " + cookieHeaderValue );
265266 }
266267 String cookieValue = tokens .nextToken ().trim ();
267- processCookie (result , cookies , new Cookie (cookieName , cookieValue ));
268+ processCookie (request , cookies , new Cookie (cookieName , cookieValue ));
268269 }
269270 }
270271
271272 Set <com .gargoylesoftware .htmlunit .util .Cookie > managedCookies = this .webClient .getCookies (this .webRequest .getUrl ());
272273 for (com .gargoylesoftware .htmlunit .util .Cookie cookie : managedCookies ) {
273- processCookie (result , cookies , new Cookie (cookie .getName (), cookie .getValue ()));
274+ processCookie (request , cookies , new Cookie (cookie .getName (), cookie .getValue ()));
274275 }
276+
277+ Cookie [] parentCookies = request .getCookies ();
275278 if (parentCookies != null ) {
276279 for (Cookie cookie : parentCookies ) {
277280 cookies .add (cookie );
278281 }
279282 }
280- if (!cookies .isEmpty ()) {
281- result .setCookies (cookies .toArray (new Cookie [0 ]));
283+
284+ if (!ObjectUtils .isEmpty (cookies )) {
285+ request .setCookies (cookies .toArray (new Cookie [cookies .size ()]));
282286 }
283287 }
284288
285- private void processCookie (MockHttpServletRequest result , List <Cookie > cookies , Cookie cookie ) {
289+ private void processCookie (MockHttpServletRequest request , List <Cookie > cookies , Cookie cookie ) {
286290 cookies .add (cookie );
287291 if ("JSESSIONID" .equals (cookie .getName ())) {
288- result .setRequestedSessionId (cookie .getValue ());
289- result .setSession (httpSession (result , cookie .getValue ()));
292+ request .setRequestedSessionId (cookie .getValue ());
293+ request .setSession (httpSession (request , cookie .getValue ()));
290294 }
291295 }
292296
@@ -302,9 +306,9 @@ private String header(String headerName) {
302306 return this .webRequest .getAdditionalHeaders ().get (headerName );
303307 }
304308
305- private void headers (MockHttpServletRequest result ) {
309+ private void headers (MockHttpServletRequest request ) {
306310 for (Entry <String , String > header : this .webRequest .getAdditionalHeaders ().entrySet ()) {
307- result .addHeader (header .getKey (), header .getValue ());
311+ request .addHeader (header .getKey (), header .getValue ());
308312 }
309313 }
310314
@@ -340,33 +344,33 @@ private com.gargoylesoftware.htmlunit.util.Cookie createCookie(MockHttpServletRe
340344 request .getContextPath () + "/" , null , request .isSecure (), true );
341345 }
342346
343- private void locales (MockHttpServletRequest result ) {
347+ private void locales (MockHttpServletRequest request ) {
344348 String locale = header ("Accept-Language" );
345349 if (locale == null ) {
346- result .addPreferredLocale (Locale .getDefault ());
350+ request .addPreferredLocale (Locale .getDefault ());
347351 }
348352 else {
349353 String [] locales = locale .split (", " );
350354 for (int i = locales .length - 1 ; i >= 0 ; i --) {
351- result .addPreferredLocale (parseLocale (locales [i ]));
355+ request .addPreferredLocale (parseLocale (locales [i ]));
352356 }
353357 }
354358 }
355359
356- private void params (MockHttpServletRequest result , UriComponents uriComponents ) {
360+ private void params (MockHttpServletRequest request , UriComponents uriComponents ) {
357361 for (Entry <String , List <String >> values : uriComponents .getQueryParams ().entrySet ()) {
358362 String name = values .getKey ();
359363 for (String value : values .getValue ()) {
360364 try {
361- result .addParameter (name , URLDecoder .decode (value , "UTF-8" ));
365+ request .addParameter (name , URLDecoder .decode (value , "UTF-8" ));
362366 }
363367 catch (UnsupportedEncodingException e ) {
364368 throw new RuntimeException (e );
365369 }
366370 }
367371 }
368372 for (NameValuePair param : this .webRequest .getRequestParameters ()) {
369- result .addParameter (param .getName (), param .getValue ());
373+ request .addParameter (param .getName (), param .getValue ());
370374 }
371375 }
372376
@@ -387,35 +391,35 @@ private Locale parseLocale(String locale) {
387391 return new Locale (language , country , qualifier );
388392 }
389393
390- private void pathInfo (UriComponents uriComponents , MockHttpServletRequest result ) {
391- result .setPathInfo (null );
394+ private void pathInfo (UriComponents uriComponents , MockHttpServletRequest request ) {
395+ request .setPathInfo (null );
392396 }
393397
394- private void servletPath (MockHttpServletRequest result , String requestPath ) {
395- String servletPath = requestPath .substring (result .getContextPath ().length ());
398+ private void servletPath (MockHttpServletRequest request , String requestPath ) {
399+ String servletPath = requestPath .substring (request .getContextPath ().length ());
396400 if ("" .equals (servletPath )) {
397401 servletPath = null ;
398402 }
399- result .setServletPath (servletPath );
403+ request .setServletPath (servletPath );
400404 }
401405
402- private void servletPath (UriComponents uriComponents , MockHttpServletRequest result ) {
403- if ("" .equals (result .getPathInfo ())) {
404- result .setPathInfo (null );
406+ private void servletPath (UriComponents uriComponents , MockHttpServletRequest request ) {
407+ if ("" .equals (request .getPathInfo ())) {
408+ request .setPathInfo (null );
405409 }
406- servletPath (result , uriComponents .getPath ());
410+ servletPath (request , uriComponents .getPath ());
407411 }
408412
409- private void ports (UriComponents uriComponents , MockHttpServletRequest result ) {
413+ private void ports (UriComponents uriComponents , MockHttpServletRequest request ) {
410414 int serverPort = uriComponents .getPort ();
411- result .setServerPort (serverPort );
415+ request .setServerPort (serverPort );
412416 if (serverPort == -1 ) {
413417 int portConnection = this .webRequest .getUrl ().getDefaultPort ();
414- result .setLocalPort (serverPort );
415- result .setRemotePort (portConnection );
418+ request .setLocalPort (serverPort );
419+ request .setRemotePort (portConnection );
416420 }
417421 else {
418- result .setRemotePort (serverPort );
422+ request .setRemotePort (serverPort );
419423 }
420424 }
421425
@@ -457,8 +461,8 @@ private HtmlUnitMockHttpServletRequest(ServletContext servletContext, String met
457461 }
458462
459463 public HttpSession getSession (boolean create ) {
460- HttpSession result = super .getSession (false );
461- if (result == null && create ) {
464+ HttpSession session = super .getSession (false );
465+ if (session == null && create ) {
462466 HtmlUnitMockHttpSession newSession = new HtmlUnitMockHttpSession (this );
463467 setSession (newSession );
464468 newSession .setNew (true );
@@ -467,9 +471,9 @@ public HttpSession getSession(boolean create) {
467471 HtmlUnitRequestBuilder .this .sessions .put (sessionid , newSession );
468472 }
469473 addSessionCookie (this , sessionid );
470- result = newSession ;
474+ session = newSession ;
471475 }
472- return result ;
476+ return session ;
473477 }
474478
475479 public HttpSession getSession () {
0 commit comments