1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 package org.apache.commons.httpclient.cookie;
31
32 import java.util.Iterator;
33 import java.util.SortedSet;
34 import java.util.TreeSet;
35 import java.util.Vector;
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: 1425331 $
54 */
55 public class TestCookie extends TestCookieBase {
56
57
58
59
60 public TestCookie(String name) {
61 super(name);
62 }
63
64
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 {
79 Header setCookie = null;
80 Cookie[] parsed = null;
81 Vector cookies = new Vector();
82
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
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
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
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
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
104
105 parsed = (Cookie[])cookies.toArray(new Cookie[0]);
106 SortedSet set = new TreeSet(parsed[0]);
107 int pass = 0;
108 for (Iterator 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 ex) {
136
137 }
138 }
139 }
140