KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > httpclient > cookie > TestCookie


1 /*
2  * $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//httpclient/src/test/org/apache/commons/httpclient/cookie/TestCookie.java,v 1.2 2004/04/25 12:25:09 olegk Exp $
3  * $Revision: 480424 $
4  * $Date: 2006-11-29 05:56:49 +0000 (Wed, 29 Nov 2006) $
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.util.Iterator JavaDoc;
33 import java.util.SortedSet JavaDoc;
34 import java.util.TreeSet JavaDoc;
35 import java.util.Vector JavaDoc;
36
37 import junit.framework.Test;
38 import junit.framework.TestSuite;
39
40 import org.apache.commons.httpclient.Cookie;
41 import org.apache.commons.httpclient.Header;
42
43
44 /**
45  * Test cases for Cookie
46  *
47  * @author BC Holmes
48  * @author Rod Waldhoff
49  * @author dIon Gillard
50  * @author <a HREF="mailto:JEvans@Cyveillance.com">John Evans</a>
51  * @author Marc A. Saegesser
52  * @author <a HREF="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
53  * @version $Revision: 480424 $
54  */

55 public class TestCookie extends TestCookieBase {
56
57
58     // ------------------------------------------------------------ Constructor
59

60     public TestCookie(String JavaDoc name) {
61         super(name);
62     }
63
64     // ------------------------------------------------------- TestCase Methods
65

66     public static Test suite() {
67         return new TestSuite(TestCookie.class);
68     }
69
70     /**
71      * Tests default constructor.
72      */

73     public void testDefaultConstuctor() {
74         Cookie dummy = new Cookie();
75         assertEquals( "noname=", dummy.toExternalForm() );
76     }
77
78     public void testComparator() throws Exception JavaDoc {
79         Header setCookie = null;
80         Cookie[] parsed = null;
81         Vector JavaDoc cookies = new Vector JavaDoc();
82         // Cookie 0
83
setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.apache.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
84         CookieSpec cookiespec = new CookieSpecBase();
85         parsed = cookieParse(cookiespec, ".apache.org", 80, "/commons/httpclient", true, setCookie);
86         cookies.add(parsed[0]);
87         // Cookie 1
88
setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons/bif;Domain=.apache.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
89         parsed = cookieParse(cookiespec, ".apache.org", 80, "/commons/bif/httpclient", true, setCookie);
90         cookies.add(parsed[0]);
91         // Cookie 2
92
setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.baz.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
93         parsed = cookieParse(cookiespec, ".baz.org", 80, "/commons/httpclient", true, setCookie);
94         cookies.add(parsed[0]);
95         // Cookie 3
96
setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons/bif;Domain=.baz.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
97         parsed = cookieParse(cookiespec, ".baz.org", 80, "/commons/bif/httpclient", true, setCookie);
98         cookies.add(parsed[0]);
99         // Cookie 4
100
setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.baz.com;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
101         parsed = cookieParse(cookiespec, ".baz.com", 80, "/commons/httpclient", true, setCookie);
102         cookies.add(parsed[0]);
103         // The order should be:
104
// 1, 0, 3, 2, 4
105
parsed = (Cookie[])cookies.toArray(new Cookie[0]);
106         SortedSet JavaDoc set = new TreeSet JavaDoc(parsed[0]);
107         int pass = 0;
108         for (Iterator JavaDoc itr = set.iterator(); itr.hasNext();) {
109             Cookie cookie = (Cookie)itr.next();
110             switch (pass) {
111                 case 0:
112                     assertTrue("0th cookie should be cookie[1]", cookie == parsed[1]);
113                     break;
114                 case 1:
115                     assertTrue("1st cookie should be cookie[0]", cookie == parsed[0]);
116                     break;
117                 case 2:
118                     assertTrue("2nd cookie should be cookie[3]", cookie == parsed[3]);
119                     break;
120                 case 3:
121                     assertTrue("3rd cookie should be cookie[2]", cookie == parsed[2]);
122                     break;
123                 case 4:
124                     assertTrue("4th cookie should be cookie[4]", cookie == parsed[4]);
125                     break;
126                 default:
127                     fail("This should never happen.");
128             }
129             pass++;
130         }
131         try {
132             parsed[0].compare("foo", "bar");
133             fail("Should have thrown an exception trying to compare non-cookies");
134         }
135         catch (ClassCastException JavaDoc ex) {
136             // expected
137
}
138     }
139 }
140
141
Popular Tags