1   /*
2    * $HeadURL: https://svn.apache.org/repos/asf/httpcomponents/oac.hc3x/trunk/src/test/org/apache/commons/httpclient/cookie/TestCookieIgnoreSpec.java $
3    * $Revision: 1425331 $
4    * $Date: 2012-12-22 19:29:41 +0100 (Sat, 22 Dec 2012) $
5    * ====================================================================
6    *
7    *  Licensed to the Apache Software Foundation (ASF) under one or more
8    *  contributor license agreements.  See the NOTICE file distributed with
9    *  this work for additional information regarding copyright ownership.
10   *  The ASF licenses this file to You under the Apache License, Version 2.0
11   *  (the "License"); you may not use this file except in compliance with
12   *  the License.  You may obtain a copy of the License at
13   *
14   *      http://www.apache.org/licenses/LICENSE-2.0
15   *
16   *  Unless required by applicable law or agreed to in writing, software
17   *  distributed under the License is distributed on an "AS IS" BASIS,
18   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19   *  See the License for the specific language governing permissions and
20   *  limitations under the License.
21   * ====================================================================
22   *
23   * This software consists of voluntary contributions made by many
24   * individuals on behalf of the Apache Software Foundation.  For more
25   * information on the Apache Software Foundation, please see
26   * <http://www.apache.org/>.
27   *
28   */
29  
30  package org.apache.commons.httpclient.cookie;
31  
32  import java.io.IOException;
33  
34  import junit.framework.Test;
35  import junit.framework.TestSuite;
36  
37  import org.apache.commons.httpclient.Cookie;
38  import org.apache.commons.httpclient.Header;
39  import org.apache.commons.httpclient.HttpClientTestBase;
40  import org.apache.commons.httpclient.HttpStatus;
41  import org.apache.commons.httpclient.HttpVersion;
42  import org.apache.commons.httpclient.methods.GetMethod;
43  import org.apache.commons.httpclient.server.HttpService;
44  import org.apache.commons.httpclient.server.SimpleRequest;
45  import org.apache.commons.httpclient.server.SimpleResponse;
46  
47  
48  /***
49   * Test cases for ignore cookie apec
50   *
51   * @author Michael Becke
52   * 
53   * @version $Revision: 1425331 $
54   */
55  public class TestCookieIgnoreSpec extends HttpClientTestBase {
56  
57      // ------------------------------------------------------------ Constructor
58  
59      public TestCookieIgnoreSpec(final String testName) throws IOException {
60          super(testName);
61      }
62  
63      // ------------------------------------------------------- TestCase Methods
64  
65      public static Test suite() {
66          return new TestSuite(TestCookieIgnoreSpec.class);
67      }
68  
69      private class BasicAuthService implements HttpService {
70  
71          public BasicAuthService() {
72              super();
73          }
74  
75          public boolean process(final SimpleRequest request, final SimpleResponse response)
76              throws IOException
77          {
78          	HttpVersion ver = request.getRequestLine().getHttpVersion();
79              response.setStatusLine(ver, HttpStatus.SC_OK);
80              response.addHeader(new Header("Connection", "close"));
81              response.addHeader(new Header("Set-Cookie", 
82                  "custno = 12345; comment=test; version=1," +
83                  " name=John; version=1; max-age=600; secure; domain=.apache.org"));
84              return true;
85          }
86      }
87  
88      public void testIgnoreCookies() throws Exception {
89          this.server.setHttpService(new BasicAuthService());
90  
91          GetMethod httpget = new GetMethod("/");
92          httpget.getParams().setCookiePolicy(CookiePolicy.IGNORE_COOKIES);
93          
94          try {
95              this.client.executeMethod(httpget);
96          } finally {
97              httpget.releaseConnection();
98          }
99          assertEquals("Cookie parsing should have been disabled", 
100                 0, this.client.getState().getCookies().length);
101     }
102 
103     public void testKeepCloverHappy() throws Exception {
104         CookieSpec cookiespec = new IgnoreCookiesSpec();
105         cookiespec.parseAttribute(null, null);
106         cookiespec.parse("host", 80, "/", false, (String)null);
107         cookiespec.parse("host", 80, "/", false, (Header)null);
108         cookiespec.validate("host", 80, "/", false, (Cookie)null);
109         cookiespec.match("host", 80, "/", false, (Cookie)null);
110         cookiespec.match("host", 80, "/", false, (Cookie [])null);
111         cookiespec.domainMatch(null, null);
112         cookiespec.pathMatch(null, null);
113         cookiespec.match("host", 80, "/", false, (Cookie [])null);
114         cookiespec.formatCookie(null);
115         cookiespec.formatCookies(null);
116         cookiespec.formatCookieHeader((Cookie)null);
117         cookiespec.formatCookieHeader((Cookie [])null);
118     }
119 }
120