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 package org.apache.commons.httpclient.cookie;
30
31 import java.util.Iterator;
32 import java.util.SortedSet;
33 import java.util.TreeSet;
34 import java.util.Vector;
35
36 import junit.framework.Test;
37 import junit.framework.TestSuite;
38
39 import org.apache.commons.httpclient.Cookie;
40 import org.apache.commons.httpclient.Header;
41
42
43 /***
44 * Test cases for Cookie
45 *
46 * @author BC Holmes
47 * @author Rod Waldhoff
48 * @author dIon Gillard
49 * @author <a href="mailto:JEvans@Cyveillance.com">John Evans</a>
50 * @author Marc A. Saegesser
51 * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
52 * @version $Revision: 155418 $
53 */
54 public class TestCookie extends TestCookieBase {
55
56
57
58
59 public TestCookie(String name) {
60 super(name);
61 }
62
63
64
65 public static Test suite() {
66 return new TestSuite(TestCookie.class);
67 }
68
69 /***
70 * Tests default constructor.
71 */
72 public void testDefaultConstuctor() {
73 Cookie dummy = new Cookie();
74 assertEquals( "noname=", dummy.toExternalForm() );
75 }
76
77 public void testComparator() throws Exception {
78 Header setCookie = null;
79 Cookie[] parsed = null;
80 Vector cookies = new Vector();
81
82 setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.apache.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
83 CookieSpec cookiespec = new CookieSpecBase();
84 parsed = cookieParse(cookiespec, ".apache.org", 80, "/commons/httpclient", true, setCookie);
85 cookies.add(parsed[0]);
86
87 setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons/bif;Domain=.apache.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
88 parsed = cookieParse(cookiespec, ".apache.org", 80, "/commons/bif/httpclient", true, setCookie);
89 cookies.add(parsed[0]);
90
91 setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.baz.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
92 parsed = cookieParse(cookiespec, ".baz.org", 80, "/commons/httpclient", true, setCookie);
93 cookies.add(parsed[0]);
94
95 setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons/bif;Domain=.baz.org;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
96 parsed = cookieParse(cookiespec, ".baz.org", 80, "/commons/bif/httpclient", true, setCookie);
97 cookies.add(parsed[0]);
98
99 setCookie = new Header("Set-Cookie","cookie-name=cookie-value;Path=/commons;Domain=.baz.com;Expires=Thu, 01-Jan-1970 00:00:10 GMT");
100 parsed = cookieParse(cookiespec, ".baz.com", 80, "/commons/httpclient", true, setCookie);
101 cookies.add(parsed[0]);
102
103
104 parsed = (Cookie[])cookies.toArray(new Cookie[0]);
105 SortedSet set = new TreeSet(parsed[0]);
106 int pass = 0;
107 for (Iterator itr = set.iterator(); itr.hasNext();) {
108 Cookie cookie = (Cookie)itr.next();
109 switch (pass) {
110 case 0:
111 assertTrue("0th cookie should be cookie[1]", cookie == parsed[1]);
112 break;
113 case 1:
114 assertTrue("1st cookie should be cookie[0]", cookie == parsed[0]);
115 break;
116 case 2:
117 assertTrue("2nd cookie should be cookie[3]", cookie == parsed[3]);
118 break;
119 case 3:
120 assertTrue("3rd cookie should be cookie[2]", cookie == parsed[2]);
121 break;
122 case 4:
123 assertTrue("4th cookie should be cookie[4]", cookie == parsed[4]);
124 break;
125 default:
126 fail("This should never happen.");
127 }
128 pass++;
129 }
130 try {
131 parsed[0].compare("foo", "bar");
132 fail("Should have thrown an exception trying to compare non-cookies");
133 }
134 catch (ClassCastException ex) {
135
136 }
137 }
138 }
139