Author: olegk Date: Thu May 4 09:12:04 2006 New Revision: 399747 URL: http://svn.apache.org/viewcvs?rev=399747&view=rev Log: Provided a test case for a section 9.1 requirement to discard Set-Cookie cookie if equivalent Set-Cookie2 cookie is present
Modified: jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/test/org/apache/commons/httpclient/cookie/TestCookieVersionSupport.java Modified: jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/test/org/apache/commons/httpclient/cookie/TestCookieVersionSupport.java URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/test/org/apache/commons/httpclient/cookie/TestCookieVersionSupport.java?rev=399747&r1=399746&r2=399747&view=diff ============================================================================== --- jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/test/org/apache/commons/httpclient/cookie/TestCookieVersionSupport.java (original) +++ jakarta/commons/proper/httpclient/branches/COOKIE_2_BRANCH/src/test/org/apache/commons/httpclient/cookie/TestCookieVersionSupport.java Thu May 4 09:12:04 2006 @@ -32,8 +32,10 @@ import junit.framework.Test; import junit.framework.TestSuite; +import org.apache.commons.httpclient.Cookie; import org.apache.commons.httpclient.Header; import org.apache.commons.httpclient.HttpClientTestBase; +import org.apache.commons.httpclient.HttpState; import org.apache.commons.httpclient.HttpStatus; import org.apache.commons.httpclient.HttpVersion; import org.apache.commons.httpclient.methods.GetMethod; @@ -180,5 +182,53 @@ assertNotNull(cookiesupport); assertEquals("$Version=\"1\"", cookiesupport.getValue()); } + + private static class SetCookieVersionMixService implements HttpService { + + public SetCookieVersionMixService() { + super(); + } + + public boolean process(final SimpleRequest request, final SimpleResponse response) + throws IOException + { + HttpVersion httpversion = request.getRequestLine().getHttpVersion(); + response.setStatusLine(httpversion, HttpStatus.SC_OK); + response.addHeader(new Header("Set-Cookie", "name=wrong; Path=/test")); + response.addHeader(new Header("Set-Cookie2", "name=right; Path=\"/test\"; Version=\"1\"")); + response.setBodyString("whatever"); + return true; + } + } + + public static class TestHttpState extends HttpState { + + public synchronized void addCookie(Cookie cookie) { + if (cookie != null) { + if ("localhost.local".equals(cookie.getDomain())) { + cookie.setDomain("localhost"); + } + super.addCookie(cookie); + } + } + } + + public void testSetCookieVersionMix() throws IOException { + this.server.setHttpService(new SetCookieVersionMixService()); + this.client.setState(new TestHttpState()); + this.client.getParams().setCookiePolicy(CookiePolicy.RFC_2965); + GetMethod httpget1 = new GetMethod("/test/"); + try { + this.client.executeMethod(httpget1); + } finally { + httpget1.releaseConnection(); + } + Cookie[] cookies = this.client.getState().getCookies(); + assertNotNull(cookies); + assertEquals(1, cookies.length); + assertEquals("right", cookies[0].getValue()); + assertTrue(cookies[0] instanceof Cookie2); + } + } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]