[Httpunit-commit] CVS: httpunit/src/com/meterware/servletunit InvocationContextImpl.java,1.15,1.16 S
Brought to you by:
russgold
|
From: Russell G. <rus...@us...> - 2004-03-15 02:51:20
|
Update of /cvsroot/httpunit/httpunit/src/com/meterware/servletunit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22771/src/com/meterware/servletunit Modified Files: InvocationContextImpl.java ServletUnitHttpRequest.java Log Message: bug #872129: Cookie header set on a web request was ignored in servletunit Index: InvocationContextImpl.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/servletunit/InvocationContextImpl.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- InvocationContextImpl.java 26 Feb 2004 17:36:47 -0000 1.15 +++ InvocationContextImpl.java 15 Mar 2004 02:42:16 -0000 1.16 @@ -26,10 +26,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import java.util.ArrayList; import java.util.Dictionary; import java.util.Stack; -import java.util.StringTokenizer; import javax.servlet.*; @@ -185,9 +183,6 @@ URL requestURL = request.getURL(); final ServletUnitHttpRequest suhr = new ServletUnitHttpRequest( _application.getServletRequest( requestURL ), request, runner.getContext(), clientHeaders, messageBody ); - Cookie[] cookies = getCookies( clientHeaders ); - for (int i = 0; i < cookies.length; i++) suhr.addCookie( cookies[i] ); - if (_application.usesBasicAuthentication()) suhr.readBasicAuthentication(); else if (_application.usesFormAuthentication()) suhr.readFormAuthentication(); @@ -200,7 +195,6 @@ } - private URL computeEffectiveUrl( HttpServletRequest request, URL requestURL ) { if (!_application.requiresAuthorization( requestURL ) || userIsAuthorized( request, requestURL ) ) { return requestURL; @@ -320,9 +314,6 @@ //------------------------------ private members --------------------------------------- - final private static Cookie[] NO_COOKIES = new Cookie[0]; - - private ServletUnitClient _client; private WebApplication _application; private String _target; @@ -330,23 +321,6 @@ private WebResponse _webResponse; - private Cookie[] getCookies( Dictionary clientHeaders ) { - String cookieHeader = (String) clientHeaders.get( "Cookie" ); - if (cookieHeader == null) return NO_COOKIES; - ArrayList cookies = new ArrayList(); - - StringTokenizer st = new StringTokenizer( cookieHeader, "=;" ); - while (st.hasMoreTokens()) { - String name = st.nextToken(); - if (st.hasMoreTokens()) { - String value = st.nextToken(); - cookies.add( new Cookie( name, value ) ); - } - } - return (Cookie[]) cookies.toArray( new Cookie[ cookies.size() ] ); - } - - private ExecutionContext getContext() { return (ExecutionContext) _contextStack.lastElement(); } Index: ServletUnitHttpRequest.java =================================================================== RCS file: /cvsroot/httpunit/httpunit/src/com/meterware/servletunit/ServletUnitHttpRequest.java,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- ServletUnitHttpRequest.java 14 Mar 2004 22:59:49 -0000 1.32 +++ ServletUnitHttpRequest.java 15 Mar 2004 02:42:16 -0000 1.33 @@ -63,6 +63,7 @@ _headers = new WebClient.HeaderDictionary(); _headers.addEntries( clientHeaders ); _headers.addEntries( request.getHeaders() ); + setCookiesFromHeader( _headers ); _messageBody = messageBody; _secure = request.getURL().getProtocol().equalsIgnoreCase( "https" ); @@ -695,7 +696,7 @@ //--------------------------------------------- package members ---------------------------------------------- - void addCookie( Cookie cookie ) { + private void addCookie( Cookie cookie ) { _cookies.addElement( cookie ); if (cookie.getName().equalsIgnoreCase( ServletUnitHttpSession.SESSION_COOKIE_NAME )) { _sessionID = cookie.getValue(); @@ -765,6 +766,20 @@ } + private void setCookiesFromHeader( Dictionary clientHeaders ) { + String cookieHeader = (String) clientHeaders.get( "Cookie" ); + if (cookieHeader == null) return; + + StringTokenizer st = new StringTokenizer( cookieHeader, "=;" ); + while (st.hasMoreTokens()) { + String name = st.nextToken(); + if (st.hasMoreTokens()) { + addCookie( new Cookie( name, st.nextToken() ) ); + } + } + } + + static class PrioritizedLocale implements Comparable { private Locale _locale; |