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 package org.apache.http.impl.cookie;
29
30 import org.apache.http.cookie.CookieAttributeHandler;
31 import org.apache.http.cookie.CookieOrigin;
32 import org.apache.http.cookie.MalformedCookieException;
33 import org.junit.Assert;
34 import org.junit.Test;
35
36 public class TestNetscapeCookieAttribHandlers {
37
38 @Test
39 public void testNetscapeDomainValidate1() throws Exception {
40 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
41 final CookieOrigin origin = new CookieOrigin("somehost", 80, "/", false);
42 final CookieAttributeHandler h = new NetscapeDomainHandler();
43
44 cookie.setDomain("somehost");
45 h.validate(cookie, origin);
46
47 cookie.setDomain("otherhost");
48 try {
49 h.validate(cookie, origin);
50 Assert.fail("MalformedCookieException should have been thrown");
51 } catch (final MalformedCookieException ex) {
52
53 }
54 }
55
56 @Test
57 public void testNetscapeDomainValidate2() throws Exception {
58 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
59 final CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false);
60 final CookieAttributeHandler h = new NetscapeDomainHandler();
61
62 cookie.setDomain(".somedomain.com");
63 h.validate(cookie, origin);
64
65 cookie.setDomain(".otherdomain.com");
66 try {
67 h.validate(cookie, origin);
68 Assert.fail("MalformedCookieException should have been thrown");
69 } catch (final MalformedCookieException ex) {
70
71 }
72 cookie.setDomain("www.otherdomain.com");
73 try {
74 h.validate(cookie, origin);
75 Assert.fail("MalformedCookieException should have been thrown");
76 } catch (final MalformedCookieException ex) {
77
78 }
79 }
80
81 @Test
82 public void testNetscapeDomainValidate3() throws Exception {
83 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
84 final CookieOrigin origin = new CookieOrigin("www.a.com", 80, "/", false);
85 final CookieAttributeHandler h = new NetscapeDomainHandler();
86
87 cookie.setDomain(".a.com");
88 h.validate(cookie, origin);
89
90 cookie.setDomain(".com");
91 try {
92 h.validate(cookie, origin);
93 Assert.fail("MalformedCookieException should have been thrown");
94 } catch (final MalformedCookieException ex) {
95
96 }
97 }
98
99 @Test
100 public void testNetscapeDomainValidate4() throws Exception {
101 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
102 final CookieOrigin origin = new CookieOrigin("www.a.b.c", 80, "/", false);
103 final CookieAttributeHandler h = new NetscapeDomainHandler();
104
105 cookie.setDomain(".a.b.c");
106 h.validate(cookie, origin);
107
108 cookie.setDomain(".b.c");
109 try {
110 h.validate(cookie, origin);
111 Assert.fail("MalformedCookieException should have been thrown");
112 } catch (final MalformedCookieException ex) {
113
114 }
115 }
116
117 @Test
118 public void testNetscapeDomainMatch1() throws Exception {
119 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
120 final CookieOrigin origin = new CookieOrigin("www.somedomain.com", 80, "/", false);
121 final CookieAttributeHandler h = new NetscapeDomainHandler();
122
123 cookie.setDomain(null);
124 Assert.assertFalse(h.match(cookie, origin));
125
126 cookie.setDomain(".somedomain.com");
127 Assert.assertTrue(h.match(cookie, origin));
128 }
129
130 @Test
131 public void testNetscapeDomainMatch2() throws Exception {
132 final BasicClientCookie cookie = new BasicClientCookie("name", "value");
133 final CookieOrigin origin = new CookieOrigin("www.whatever.somedomain.com", 80, "/", false);
134 final CookieAttributeHandler h = new NetscapeDomainHandler();
135
136 cookie.setDomain(".somedomain.com");
137 Assert.assertTrue(h.match(cookie, origin));
138 }
139
140 @Test
141 public void testNetscapeDomainInvalidInput() throws Exception {
142 final CookieAttributeHandler h = new NetscapeDomainHandler();
143 try {
144 h.match(null, null);
145 Assert.fail("IllegalArgumentException must have been thrown");
146 } catch (final IllegalArgumentException ex) {
147
148 }
149 try {
150 h.match(new BasicClientCookie("name", "value"), null);
151 Assert.fail("IllegalArgumentException must have been thrown");
152 } catch (final IllegalArgumentException ex) {
153
154 }
155 }
156
157 }