Return-Path: Delivered-To: apmail-jakarta-httpclient-commits-archive@www.apache.org Received: (qmail 21852 invoked from network); 25 Jun 2006 17:23:09 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 25 Jun 2006 17:23:09 -0000 Received: (qmail 97932 invoked by uid 500); 25 Jun 2006 17:23:09 -0000 Mailing-List: contact httpclient-commits-help@jakarta.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: httpclient-dev@jakarta.apache.org Delivered-To: mailing list httpclient-commits@jakarta.apache.org Received: (qmail 97921 invoked by uid 99); 25 Jun 2006 17:23:09 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Jun 2006 10:23:09 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received-SPF: pass (asf.osuosl.org: local policy) Received: from [140.211.166.113] (HELO eris.apache.org) (140.211.166.113) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 25 Jun 2006 10:23:07 -0700 Received: by eris.apache.org (Postfix, from userid 65534) id 815501A983A; Sun, 25 Jun 2006 10:22:47 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r417034 - in /jakarta/httpcomponents/httpclient/trunk/src: java/org/apache/http/cookie/impl/ test/org/apache/http/cookie/impl/ Date: Sun, 25 Jun 2006 17:22:46 -0000 To: httpclient-commits@jakarta.apache.org From: olegk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20060625172247.815501A983A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: olegk Date: Sun Jun 25 10:22:45 2006 New Revision: 417034 URL: http://svn.apache.org/viewvc?rev=417034&view=rev Log: Added RFC2109 specific cookie attribute handlers Added: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java (with props) jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java (with props) jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java (with props) Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/NetscapeDraftSpec.java jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestAllCookieImpl.java jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestNetscapeCookieAttribHandlers.java Modified: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/NetscapeDraftSpec.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/NetscapeDraftSpec.java?rev=417034&r1=417033&r2=417034&view=diff ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/NetscapeDraftSpec.java (original) +++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/NetscapeDraftSpec.java Sun Jun 25 10:22:45 2006 @@ -5,7 +5,7 @@ * * ==================================================================== * - * Copyright 2002-2004 The Apache Software Foundation + * Copyright 2002-2006 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,7 +37,7 @@ import org.apache.http.io.CharArrayBuffer; /** - * Netscape cookie draft specific cookie management functions + * Netscape cookie draft compliant cookie policy * * @author B.C. Holmes * @author Park, Sung-Gu Added: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java?rev=417034&view=auto ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java (added) +++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java Sun Jun 25 10:22:45 2006 @@ -0,0 +1,122 @@ +/* + * $HeadURL$ + * $Revision$ + * $Date$ + * + * ==================================================================== + * + * Copyright 2002-2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + */ +package org.apache.http.cookie.impl; + +import org.apache.http.cookie.Cookie; +import org.apache.http.cookie.CookieAttributeHandler; +import org.apache.http.cookie.CookieOrigin; +import org.apache.http.cookie.MalformedCookieException; + +public class RFC2109DomainHandler implements CookieAttributeHandler { + + public RFC2109DomainHandler() { + super(); + } + + public void parse(final Cookie cookie, final String value) + throws MalformedCookieException { + if (cookie == null) { + throw new IllegalArgumentException("Cookie may not be null"); + } + if (value == null) { + throw new MalformedCookieException("Missing value for domain attribute"); + } + if (value.trim().equals("")) { + throw new MalformedCookieException("Blank value for domain attribute"); + } + cookie.setDomain(value); + cookie.setDomainAttributeSpecified(true); + } + + public void validate(final Cookie cookie, final CookieOrigin origin) + throws MalformedCookieException { + if (cookie == null) { + throw new IllegalArgumentException("Cookie may not be null"); + } + if (origin == null) { + throw new IllegalArgumentException("Cookie origin may not be null"); + } + String host = origin.getHost(); + String domain = cookie.getDomain(); + if (domain == null) { + throw new MalformedCookieException("Cookie domain may not be null"); + } + if (!domain.equals(host)) { + int dotIndex = domain.indexOf('.'); + if (dotIndex == -1) { + throw new MalformedCookieException("Domain attribute \"" + + domain + + "\" does not match the host \"" + + host + "\""); + } + // domain must start with dot + if (!domain.startsWith(".")) { + throw new MalformedCookieException("Domain attribute \"" + + domain + + "\" violates RFC 2109: domain must start with a dot"); + } + // domain must have at least one embedded dot + dotIndex = domain.indexOf('.', 1); + if (dotIndex < 0 || dotIndex == domain.length() - 1) { + throw new MalformedCookieException("Domain attribute \"" + + domain + + "\" violates RFC 2109: domain must contain an embedded dot"); + } + host = host.toLowerCase(); + if (!host.endsWith(domain)) { + throw new MalformedCookieException( + "Illegal domain attribute \"" + domain + + "\". Domain of origin: \"" + host + "\""); + } + // host minus domain may not contain any dots + String hostWithoutDomain = host.substring(0, host.length() - domain.length()); + if (hostWithoutDomain.indexOf('.') != -1) { + throw new MalformedCookieException("Domain attribute \"" + + domain + + "\" violates RFC 2109: host minus domain may not contain any dots"); + } + } + } + + public boolean match(final Cookie cookie, final CookieOrigin origin) { + if (cookie == null) { + throw new IllegalArgumentException("Cookie may not be null"); + } + if (origin == null) { + throw new IllegalArgumentException("Cookie origin may not be null"); + } + String host = origin.getHost(); + String domain = cookie.getDomain(); + if (domain == null) { + return false; + } + return host.equals(domain) || (domain.startsWith(".") && host.endsWith(domain)); + } + +} \ No newline at end of file Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109DomainHandler.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java?rev=417034&view=auto ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java (added) +++ jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java Sun Jun 25 10:22:45 2006 @@ -0,0 +1,70 @@ +/* + * $HeadURL$ + * $Revision$ + * $Date$ + * + * ==================================================================== + * + * Copyright 2002-2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + */ +package org.apache.http.cookie.impl; + +import org.apache.http.cookie.Cookie; +import org.apache.http.cookie.CookieOrigin; +import org.apache.http.cookie.MalformedCookieException; + +public class RFC2109VersionHandler extends AbstractCookieAttributeHandler { + + public RFC2109VersionHandler() { + super(); + } + + public void parse(final Cookie cookie, final String value) + throws MalformedCookieException { + if (cookie == null) { + throw new IllegalArgumentException("Cookie may not be null"); + } + if (value == null) { + throw new MalformedCookieException("Missing value for version attribute"); + } + if (value.trim().equals("")) { + throw new MalformedCookieException("Blank value for version attribute"); + } + try { + cookie.setVersion(Integer.parseInt(value)); + } catch (NumberFormatException e) { + throw new MalformedCookieException("Invalid version: " + + e.getMessage()); + } + } + + public void validate(final Cookie cookie, final CookieOrigin origin) + throws MalformedCookieException { + if (cookie == null) { + throw new IllegalArgumentException("Cookie may not be null"); + } + if (cookie.getVersion() < 0) { + throw new MalformedCookieException("Cookie version may not be negative"); + } + } + +} \ No newline at end of file Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/httpcomponents/httpclient/trunk/src/java/org/apache/http/cookie/impl/RFC2109VersionHandler.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestAllCookieImpl.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestAllCookieImpl.java?rev=417034&r1=417033&r2=417034&view=diff ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestAllCookieImpl.java (original) +++ jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestAllCookieImpl.java Sun Jun 25 10:22:45 2006 @@ -41,6 +41,7 @@ suite.addTest(TestAbstractCookieSpec.suite()); suite.addTest(TestBasicCookieAttribHandlers.suite()); suite.addTest(TestNetscapeCookieAttribHandlers.suite()); + suite.addTest(TestRFC2109CookieAttribHandlers.suite()); suite.addTest(TestBrowserCompatSpec.suite()); suite.addTest(TestCookieNetscapeDraft.suite()); return suite; Modified: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestNetscapeCookieAttribHandlers.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestNetscapeCookieAttribHandlers.java?rev=417034&r1=417033&r2=417034&view=diff ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestNetscapeCookieAttribHandlers.java (original) +++ jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestNetscapeCookieAttribHandlers.java Sun Jun 25 10:22:45 2006 @@ -4,7 +4,7 @@ * $Date$ * ==================================================================== * - * Copyright 2002-2004 The Apache Software Foundation + * Copyright 2002-2006 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -149,7 +149,7 @@ assertTrue(h.match(cookie, origin)); } - public void testBrowserCompatDomainInvalidInput() throws Exception { + public void testNetscapeDomainInvalidInput() throws Exception { CookieAttributeHandler h = new NetscapeDomainHandler(); try { h.match(null, null); Added: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java?rev=417034&view=auto ============================================================================== --- jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java (added) +++ jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java Sun Jun 25 10:22:45 2006 @@ -0,0 +1,302 @@ +/* + * $HeadURL$ + * $Revision$ + * $Date$ + * ==================================================================== + * + * Copyright 2002-2006 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ==================================================================== + * + * This software consists of voluntary contributions made by many + * individuals on behalf of the Apache Software Foundation. For more + * information on the Apache Software Foundation, please see + * . + * + */ + +package org.apache.http.cookie.impl; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.apache.http.cookie.Cookie; +import org.apache.http.cookie.CookieAttributeHandler; +import org.apache.http.cookie.CookieOrigin; +import org.apache.http.cookie.MalformedCookieException; + +public class TestRFC2109CookieAttribHandlers extends TestCase { + + public TestRFC2109CookieAttribHandlers(String testName) { + super(testName); + } + + public static Test suite() { + return new TestSuite(TestRFC2109CookieAttribHandlers.class); + } + + // ------------------------------------------------------------------- Main + public static void main(String args[]) { + String[] testCaseName = { TestRFC2109CookieAttribHandlers.class.getName() }; + junit.textui.TestRunner.main(testCaseName); + } + + public void testRFC2109DomainParse() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + h.parse(cookie, "somehost"); + assertEquals("somehost", cookie.getDomain()); + + try { + h.parse(cookie, null); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + try { + h.parse(cookie, " "); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109DomainValidate1() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("somehost", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain("somehost"); + h.validate(cookie, origin); + + cookie.setDomain("otherhost"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + cookie.setDomain(null); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109DomainValidate2() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain(".somedomain.com"); + h.validate(cookie, origin); + + cookie.setDomain(".otherdomain.com"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + cookie.setDomain("www.otherdomain.com"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109DomainValidate3() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.a.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain(".a.com"); + h.validate(cookie, origin); + + cookie.setDomain(".com"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109DomainValidate4() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.a.b.c", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain(".a.b.c"); + h.validate(cookie, origin); + + cookie.setDomain(".b.c"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + cookie.setDomain(".a.a.b.c"); + try { + h.validate(cookie, origin); + fail("MalformedCookieException should have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109DomainMatch1() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain(null); + assertFalse(h.match(cookie, origin)); + + cookie.setDomain(".somedomain.com"); + assertTrue(h.match(cookie, origin)); + } + + public void testRFC2109DomainMatch2() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.whatever.somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain(".somedomain.com"); + assertTrue(h.match(cookie, origin)); + } + + public void testRFC2109DomainMatch3() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain("somedomain.com"); + assertTrue(h.match(cookie, origin)); + } + + public void testRFC2109DomainMatch4() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109DomainHandler(); + + cookie.setDomain("somedomain.com"); + assertFalse(h.match(cookie, origin)); + } + + public void testRFC2109DomainInvalidInput() throws Exception { + CookieAttributeHandler h = new RFC2109DomainHandler(); + try { + h.parse(null, null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + h.validate(null, null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + h.validate(new Cookie("name", "value"), null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + h.match(null, null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + h.match(new Cookie("name", "value"), null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + } + + public void testRFC2109VersionParse() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieAttributeHandler h = new RFC2109VersionHandler(); + h.parse(cookie, "12"); + assertEquals(12, cookie.getVersion()); + } + + public void testRFC2109VersionParseInvalid() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieAttributeHandler h = new RFC2109VersionHandler(); + try { + h.parse(cookie, "garbage"); + fail("MalformedCookieException must have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + try { + h.parse(cookie, null); + fail("MalformedCookieException must have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + try { + h.parse(cookie, " "); + fail("MalformedCookieException must have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109VersionValidate() throws Exception { + Cookie cookie = new Cookie("name", "value"); + CookieOrigin origin = new CookieOrigin("somedomain.com", 80, "/", false); + CookieAttributeHandler h = new RFC2109VersionHandler(); + + cookie.setVersion(12); + h.validate(cookie, origin); + + cookie.setVersion(-12); + try { + h.validate(cookie, origin); + fail("MalformedCookieException must have been thrown"); + } catch (MalformedCookieException ex) { + // expected + } + } + + public void testRFC2109VersionInvalidInput() throws Exception { + CookieAttributeHandler h = new RFC2109VersionHandler(); + try { + h.parse(null, null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + try { + h.validate(null, null); + fail("IllegalArgumentException must have been thrown"); + } catch (IllegalArgumentException ex) { + // expected + } + } + +} \ No newline at end of file Propchange: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Propchange: jakarta/httpcomponents/httpclient/trunk/src/test/org/apache/http/cookie/impl/TestRFC2109CookieAttribHandlers.java ------------------------------------------------------------------------------ svn:mime-type = text/plain