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
31 package org.apache.commons.httpclient;
32
33 import junit.framework.*;
34
35 import org.apache.commons.httpclient.cookie.CookiePolicy;
36 import org.apache.commons.httpclient.methods.*;
37 import org.apache.commons.httpclient.params.HttpMethodParams;
38
39 /***
40 * This suite of tests depends upon the httpclienttest webapp,
41 * which is available in the httpclient/src/test-webapp
42 * directory in the CVS tree.
43 * <p>
44 * The webapp should be deployed in the context "httpclienttest"
45 * on a servlet engine running on port 8080 on the localhost
46 * (IP 127.0.0.1).
47 * <p>
48 * You can change the assumed port by setting the
49 * "httpclient.test.localPort" property.
50 * You can change the assumed host by setting the
51 * "httpclient.test.localHost" property.
52 * You can change the assumed context by setting the
53 * "httpclient.test.webappContext" property.
54 *
55 * @author Rodney Waldhoff
56 * @author <a href="mailto:oleg@ural.ru">Oleg Kalnichevski</a>
57 *
58 * @version $Id: TestWebappCookie.java,v 1.15 2004/02/22 18:08:50 olegk Exp $
59 */
60 public class TestWebappCookie extends TestWebappBase {
61
62 public TestWebappCookie(String testName) {
63 super(testName);
64 }
65
66 public static Test suite() {
67 TestSuite suite = new TestSuite(TestWebappCookie.class);
68 return suite;
69 }
70
71 public static void main(String args[]) {
72 String[] testCaseName = { TestWebappCookie.class.getName() };
73 junit.textui.TestRunner.main(testCaseName);
74 }
75
76
77
78
79 public void testSetCookieGet() throws Exception {
80 HttpClient client = createHttpClient();
81 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
82
83 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
84 method.setQueryString("simple=set");
85
86 try {
87 client.executeMethod(method);
88 } catch (Throwable t) {
89 t.printStackTrace();
90 fail("Unable to execute method : " + t.toString());
91 }
92 assertEquals(200,method.getStatusCode());
93 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
94 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
95 assertEquals(1,client.getState().getCookies().length);
96 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
97 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
98 }
99
100 public void testSetCookiePost() throws Exception {
101 HttpClient client = createHttpClient();
102 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
103
104 PostMethod method = new PostMethod("/" + getWebappContext() + "/cookie/write");
105 method.setRequestBody(new NameValuePair[] { new NameValuePair("simple","set") } );
106
107 try {
108 client.executeMethod(method);
109 } catch (Throwable t) {
110 t.printStackTrace();
111 fail("Unable to execute method : " + t.toString());
112 }
113 assertEquals(200,method.getStatusCode());
114 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: POST</title>") >= 0);
115 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
116 assertEquals(1,client.getState().getCookies().length);
117 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
118 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
119 }
120
121 public void testSetCookiePut() throws Exception {
122 HttpClient client = createHttpClient();
123 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
124
125 PutMethod method = new PutMethod("/" + getWebappContext() + "/cookie/write");
126 method.setQueryString("simple=set");
127 method.setRequestBody("data to be sent via http post");
128 try {
129 client.executeMethod(method);
130 } catch (Throwable t) {
131 t.printStackTrace();
132 fail("Unable to execute method : " + t.toString());
133 }
134 assertEquals(200,method.getStatusCode());
135 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: PUT</title>") >= 0);
136 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
137 assertEquals(1,client.getState().getCookies().length);
138 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
139 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
140 }
141
142 public void testSetExpiredCookieGet() throws Exception {
143 HttpClient client = createHttpClient();
144 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
145
146 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
147 method.setQueryString("simple=unset");
148
149 try {
150 client.executeMethod(method);
151 } catch (Throwable t) {
152 t.printStackTrace();
153 fail("Unable to execute method : " + t.toString());
154 }
155 assertEquals(200,method.getStatusCode());
156 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
157 assertTrue(method.getResponseBodyAsString().indexOf("Deleted simplecookie.<br>") >= 0);
158 assertEquals(0,client.getState().getCookies().length);
159 }
160
161 public void testSetExpiredCookiePut() throws Exception {
162 HttpClient client = createHttpClient();
163 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
164
165 PutMethod method = new PutMethod("/" + getWebappContext() + "/cookie/write");
166 method.setQueryString("simple=unset");
167 method.setRequestBody("data to be sent via http post");
168 try {
169 client.executeMethod(method);
170 } catch (Throwable t) {
171 t.printStackTrace();
172 fail("Unable to execute method : " + t.toString());
173 }
174 assertEquals(200,method.getStatusCode());
175 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: PUT</title>") >= 0);
176 assertTrue(method.getResponseBodyAsString().indexOf("Deleted simplecookie.<br>") >= 0);
177 assertEquals(0,client.getState().getCookies().length);
178 }
179
180 public void testSetUnsetCookieGet() throws Exception {
181 HttpClient client = createHttpClient();
182 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
183
184 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
185 method.setQueryString("simple=set");
186
187 try {
188 client.executeMethod(method);
189 } catch (Throwable t) {
190 t.printStackTrace();
191 fail("Unable to execute method : " + t.toString());
192 }
193 assertEquals(200,method.getStatusCode());
194 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
195 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
196 assertEquals(1,client.getState().getCookies().length);
197 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
198 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
199
200 method.recycle();
201
202 method.setPath("/" + getWebappContext() + "/cookie/write");
203 method.setQueryString("simple=unset");
204 try {
205 client.executeMethod(method);
206 } catch (Throwable t) {
207 t.printStackTrace();
208 fail("Unable to execute method : " + t.toString());
209 }
210 assertEquals(200,method.getStatusCode());
211 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
212 assertTrue(method.getResponseBodyAsString().indexOf("Deleted simplecookie.<br>") >= 0);
213 assertEquals(0,client.getState().getCookies().length);
214 }
215
216 public void testSetMultiCookieGetStrict() throws Exception {
217 HttpClient client = createHttpClient();
218 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
219
220 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
221 method.setQueryString("simple=set&domain=set");
222
223 try {
224 client.executeMethod(method);
225 } catch (Throwable t) {
226 t.printStackTrace();
227 fail("Unable to execute method : " + t.toString());
228 }
229 assertEquals(200,method.getStatusCode());
230 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
231 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
232 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
233 assertEquals(2,client.getState().getCookies().length);
234 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
235 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
236 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
237 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
238 }
239
240
241 public void testMultiSendCookieGetNonstrict() throws Exception {
242 HttpClient client = createHttpClient();
243
244 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
245 method.setQueryString("simple=set&domain=set");
246 try {
247 client.executeMethod(method);
248 } catch (Throwable t) {
249 t.printStackTrace();
250 fail("Unable to execute method : " + t.toString());
251 }
252 assertEquals(200,method.getStatusCode());
253 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
254 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
255 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
256 assertEquals(2,client.getState().getCookies().length);
257 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
258 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
259 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
260 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
261
262 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
263 try {
264 client.executeMethod(method2);
265 } catch (Throwable t) {
266 t.printStackTrace();
267 fail("Unable to execute method : " + t.toString());
268 }
269 assertEquals(200,method2.getStatusCode());
270 String s = method2.getResponseBodyAsString();
271 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
272 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"</tt></p>") >= 0);
273 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
274 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
275 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
276 }
277
278
279 public void testSetMultiCookiePut() throws Exception {
280 HttpClient client = createHttpClient();
281 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
282
283 PutMethod method = new PutMethod("/" + getWebappContext() + "/cookie/write");
284 method.setQueryString("simple=set&domain=set");
285 method.setRequestBody("data to be sent via http post");
286 try {
287 client.executeMethod(method);
288 } catch (Throwable t) {
289 t.printStackTrace();
290 fail("Unable to execute method : " + t.toString());
291 }
292 assertEquals(200,method.getStatusCode());
293 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: PUT</title>") >= 0);
294 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
295 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
296 assertEquals(2,client.getState().getCookies().length);
297 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
298 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
299 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
300 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
301 }
302
303 public void testSendCookieGet() throws Exception {
304 HttpClient client = createHttpClient();
305 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
306
307 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
308 method.setQueryString("simple=set");
309
310 try {
311 client.executeMethod(method);
312 } catch (Throwable t) {
313 t.printStackTrace();
314 fail("Unable to execute method : " + t.toString());
315 }
316 assertEquals(200,method.getStatusCode());
317 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
318 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
319 assertEquals(1,client.getState().getCookies().length);
320 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
321 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
322
323 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
324
325 try {
326 client.executeMethod(method2);
327 } catch (Throwable t) {
328 t.printStackTrace();
329 fail("Unable to execute method : " + t.toString());
330 }
331 assertEquals(200,method2.getStatusCode());
332 String s = method2.getResponseBodyAsString();
333 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
334 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"</tt></p>") >= 0);
335 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
336 }
337
338 public void testMultiSendCookieGet() throws Exception {
339 HttpClient client = createHttpClient();
340 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
341
342 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
343 method.setQueryString("simple=set&domain=set");
344
345 try {
346 client.executeMethod(method);
347 } catch (Throwable t) {
348 t.printStackTrace();
349 fail("Unable to execute method : " + t.toString());
350 }
351 assertEquals(200,method.getStatusCode());
352 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
353 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
354 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
355 assertEquals(2,client.getState().getCookies().length);
356 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
357 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
358 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
359 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
360
361 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
362
363 try {
364 client.executeMethod(method2);
365 } catch (Throwable t) {
366 t.printStackTrace();
367 fail("Unable to execute method : " + t.toString());
368 }
369 assertEquals(200,method2.getStatusCode());
370 String s = method2.getResponseBodyAsString();
371 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
372 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
373 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
374 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
375 }
376
377 public void testDeleteCookieGet() throws Exception {
378 HttpClient client = createHttpClient();
379 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
380
381
382 {
383 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
384 method.setQueryString("simple=set&domain=set");
385
386 try {
387 client.executeMethod(method);
388 } catch (Throwable t) {
389 t.printStackTrace();
390 fail("Unable to execute method : " + t.toString());
391 }
392 assertEquals(200,method.getStatusCode());
393 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
394 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
395 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
396 assertEquals(2,client.getState().getCookies().length);
397 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
398 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
399 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
400 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
401 }
402
403 {
404 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
405
406 try {
407 client.executeMethod(method2);
408 } catch (Throwable t) {
409 t.printStackTrace();
410 fail("Unable to execute method : " + t.toString());
411 }
412 assertEquals(200,method2.getStatusCode());
413 String s = method2.getResponseBodyAsString();
414 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
415 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
416 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
417 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
418 }
419
420 {
421 GetMethod method3 = new GetMethod("/" + getWebappContext() + "/cookie/write");
422
423 method3.setQueryString("simple=unset");
424 try {
425 client.executeMethod(method3);
426 } catch (Throwable t) {
427 t.printStackTrace();
428 fail("Unable to execute method : " + t.toString());
429 }
430 assertEquals(200,method3.getStatusCode());
431 assertTrue(method3.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
432 assertTrue(method3.getResponseBodyAsString().indexOf("Deleted simplecookie.<br>") >= 0);
433 assertEquals(1,client.getState().getCookies().length);
434 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[0])).getName());
435 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
436 }
437
438 {
439 GetMethod method4 = new GetMethod("/" + getWebappContext() + "/cookie/read");
440
441 try {
442 client.executeMethod(method4);
443 } catch (Throwable t) {
444 t.printStackTrace();
445 fail("Unable to execute method : " + t.toString());
446 }
447 assertEquals(200,method4.getStatusCode());
448 String s = method4.getResponseBodyAsString();
449 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
450 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
451 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
452 }
453 }
454
455 public void testDeleteCookiePut() throws Exception {
456 HttpClient client = createHttpClient();
457 client.getParams().setBooleanParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
458 {
459 PutMethod method = new PutMethod("/" + getWebappContext() + "/cookie/write");
460 method.setQueryString("simple=set&domain=set");
461 method.setRequestBody("data to be sent via http post");
462 try {
463 client.executeMethod(method);
464 } catch (Throwable t) {
465 t.printStackTrace();
466 fail("Unable to execute method : " + t.toString());
467 }
468 assertEquals(200,method.getStatusCode());
469 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: PUT</title>") >= 0);
470 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
471 assertTrue(method.getResponseBodyAsString().indexOf("Wrote domaincookie.<br>") >= 0);
472 assertEquals(2,client.getState().getCookies().length);
473 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
474 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
475 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[1])).getName());
476 assertEquals("value",((Cookie)(client.getState().getCookies()[1])).getValue());
477 }
478
479 {
480 PutMethod method2 = new PutMethod("/" + getWebappContext() + "/cookie/read");
481 method2.setRequestBody("data to be sent via http post");
482 try {
483 client.executeMethod(method2);
484 } catch (Throwable t) {
485 t.printStackTrace();
486 fail("Unable to execute method : " + t.toString());
487 }
488 assertEquals(200,method2.getStatusCode());
489 String s = method2.getResponseBodyAsString();
490 assertTrue(s, s.indexOf("<title>ReadCookieServlet: PUT</title>") >= 0);
491 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
492 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
493 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
494 }
495
496 {
497 PutMethod method3 = new PutMethod("/" + getWebappContext() + "/cookie/write");
498 method3.setRequestBody("data to be sent via http post");
499 method3.setQueryString("simple=unset");
500 try {
501 client.executeMethod(method3);
502 } catch (Throwable t) {
503 t.printStackTrace();
504 fail("Unable to execute method : " + t.toString());
505 }
506 assertEquals(200,method3.getStatusCode());
507 assertTrue(method3.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: PUT</title>") >= 0);
508 assertTrue(method3.getResponseBodyAsString().indexOf("Deleted simplecookie.<br>") >= 0);
509 assertEquals(1,client.getState().getCookies().length);
510 assertEquals("domaincookie", ((Cookie)(client.getState().getCookies()[0])).getName());
511 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
512 }
513
514 {
515 PutMethod method4 = new PutMethod("/" + getWebappContext() + "/cookie/read");
516 method4.setRequestBody("data to be sent via http post");
517 try {
518 client.executeMethod(method4);
519 } catch (Throwable t) {
520 t.printStackTrace();
521 fail("Unable to execute method : " + t.toString());
522 }
523 assertEquals(200,method4.getStatusCode());
524 String s = method4.getResponseBodyAsString();
525 assertTrue(s, s.indexOf("<title>ReadCookieServlet: PUT</title>") >= 0);
526 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; domaincookie=\"value\"; $Domain=\"" + getHost() + "\"</tt></p>") >= 0);
527 assertTrue(s, s.indexOf("<tt>domaincookie=\"value\"</tt><br>") >= 0);
528 }
529 }
530
531 public void testPathCookie1() throws Exception {
532 HttpClient client = createHttpClient();
533
534
535 {
536 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
537 method.setQueryString("path=/");
538
539 try {
540 client.executeMethod(method);
541 } catch (Throwable t) {
542 t.printStackTrace();
543 fail("Unable to execute method : " + t.toString());
544 }
545 assertEquals(200,method.getStatusCode());
546 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
547 assertTrue(method.getResponseBodyAsString().indexOf("Wrote pathcookie.<br>") >= 0);
548 assertEquals(1,client.getState().getCookies().length);
549 assertEquals("/",((Cookie)(client.getState().getCookies()[0])).getPath());
550 }
551
552 {
553 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/read");
554
555 try {
556 client.executeMethod(method);
557 } catch (Throwable t) {
558 t.printStackTrace();
559 fail("Unable to execute method : " + t.toString());
560 }
561 assertEquals(200,method.getStatusCode());
562 String s = method.getResponseBodyAsString();
563 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
564 assertTrue(s ,s.indexOf("<p><tt>Cookie: $Version=\"1\"; pathcookie=\"value\"; $Path=\"/\"</tt></p>") >= 0);
565 assertTrue(s, s.indexOf("<tt>pathcookie=\"value\"</tt><br>") >= 0);
566 }
567 }
568
569 public void testPathCookie2() throws Exception {
570 HttpClient client = createHttpClient();
571
572
573 {
574 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
575 method.setQueryString("path=/" + getWebappContext());
576
577 try {
578 client.executeMethod(method);
579 } catch (Throwable t) {
580 t.printStackTrace();
581 fail("Unable to execute method : " + t.toString());
582 }
583 assertEquals(200,method.getStatusCode());
584 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
585 assertTrue(method.getResponseBodyAsString().indexOf("Wrote pathcookie.<br>") >= 0);
586 assertEquals(1,client.getState().getCookies().length);
587 assertEquals("/" + getWebappContext(),((Cookie)(client.getState().getCookies()[0])).getPath());
588 }
589
590 {
591 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/read");
592
593 try {
594 client.executeMethod(method);
595 } catch (Throwable t) {
596 t.printStackTrace();
597 fail("Unable to execute method : " + t.toString());
598 }
599 assertEquals(200,method.getStatusCode());
600 String s = method.getResponseBodyAsString();
601 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
602 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; pathcookie=\"value\"; $Path=\"/" + getWebappContext() +"\"</tt></p>") >= 0);
603 assertTrue(s, s.indexOf("<tt>pathcookie=\"value\"</tt><br>") >= 0);
604 }
605 }
606
607 public void testPathCookie3() throws Exception {
608 HttpClient client = createHttpClient();
609
610 {
611 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
612 method.setQueryString("path=/" + getWebappContext() + "/cookie");
613
614 try {
615 client.executeMethod(method);
616 } catch (Throwable t) {
617 t.printStackTrace();
618 fail("Unable to execute method : " + t.toString());
619 }
620 assertEquals(200,method.getStatusCode());
621 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
622 assertTrue(method.getResponseBodyAsString().indexOf("Wrote pathcookie.<br>") >= 0);
623 assertEquals(1,client.getState().getCookies().length);
624 assertEquals("/" + getWebappContext() + "/cookie",((Cookie)(client.getState().getCookies()[0])).getPath());
625 }
626
627 {
628 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/read");
629
630 try {
631 client.executeMethod(method);
632 } catch (Throwable t) {
633 t.printStackTrace();
634 fail("Unable to execute method : " + t.toString());
635 }
636 assertEquals(200,method.getStatusCode());
637 String s = method.getResponseBodyAsString();
638 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
639 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; pathcookie=\"value\"; $Path=\"/" + getWebappContext() + "/cookie\"</tt></p>") >= 0);
640 assertTrue(s, s.indexOf("<tt>pathcookie=\"value\"</tt><br>") >= 0);
641 }
642 }
643
644 public void testPathCookie4() throws Exception {
645 HttpClient client = createHttpClient();
646
647
648 {
649 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
650 method.setQueryString("path=/" + getWebappContext() + "/cookie/write");
651
652 try {
653 client.executeMethod(method);
654 } catch (Throwable t) {
655 t.printStackTrace();
656 fail("Unable to execute method : " + t.toString());
657 }
658 assertEquals(200,method.getStatusCode());
659 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
660 assertTrue(method.getResponseBodyAsString().indexOf("Wrote pathcookie.<br>") >= 0);
661 assertEquals(1,client.getState().getCookies().length);
662 assertEquals("/" + getWebappContext() + "/cookie/write",((Cookie)(client.getState().getCookies()[0])).getPath());
663 }
664
665 {
666 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/read");
667
668 try {
669 client.executeMethod(method);
670 } catch (Throwable t) {
671 t.printStackTrace();
672 fail("Unable to execute method : " + t.toString());
673 }
674 assertEquals(200,method.getStatusCode());
675 assertTrue(method.getResponseBodyAsString().indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
676 assertTrue(method.getResponseBodyAsString(),method.getResponseBodyAsString().indexOf("<p><tt>Cookie: ") == -1);
677 assertTrue(method.getResponseBodyAsString().indexOf("<tt>pathcookie=value</tt><br>") == -1);
678 }
679 }
680
681
682 public void testCookiePolicies() throws Exception {
683 HttpClient client = createHttpClient();
684
685
686 {
687 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
688 method.getParams().setCookiePolicy(CookiePolicy.RFC_2109);
689 method.setQueryString("simple=set");
690
691 try {
692 client.executeMethod(method);
693 } catch (Throwable t) {
694 t.printStackTrace();
695 fail("Unable to execute method : " + t.toString());
696 }
697 assertEquals(200,method.getStatusCode());
698 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
699 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
700 assertEquals(1,client.getState().getCookies().length);
701 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
702 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
703
704 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
705
706 try {
707 client.executeMethod(method2);
708 } catch (Throwable t) {
709 t.printStackTrace();
710 fail("Unable to execute method : " + t.toString());
711 }
712 assertEquals(200,method2.getStatusCode());
713 String s = method2.getResponseBodyAsString();
714 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
715 assertTrue(s, s.indexOf("<p><tt>Cookie: $Version=\"1\"; simplecookie=\"value\"</tt></p>") >= 0);
716 assertTrue(s, s.indexOf("<tt>simplecookie=\"value\"</tt><br>") >= 0);
717 }
718
719 {
720 GetMethod method = new GetMethod("/" + getWebappContext() + "/cookie/write");
721 method.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
722 method.setQueryString("simple=set");
723
724 try {
725 client.executeMethod(method);
726 } catch (Throwable t) {
727 t.printStackTrace();
728 fail("Unable to execute method : " + t.toString());
729 }
730 assertEquals(200,method.getStatusCode());
731 assertTrue(method.getResponseBodyAsString().indexOf("<title>WriteCookieServlet: GET</title>") >= 0);
732 assertTrue(method.getResponseBodyAsString().indexOf("Wrote simplecookie.<br>") >= 0);
733 assertEquals(1,client.getState().getCookies().length);
734 assertEquals("simplecookie", ((Cookie)(client.getState().getCookies()[0])).getName());
735 assertEquals("value",((Cookie)(client.getState().getCookies()[0])).getValue());
736
737 GetMethod method2 = new GetMethod("/" + getWebappContext() + "/cookie/read");
738 method2.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
739
740 try {
741 client.executeMethod(method2);
742 } catch (Throwable t) {
743 t.printStackTrace();
744 fail("Unable to execute method : " + t.toString());
745 }
746 assertEquals(200,method2.getStatusCode());
747 String s = method2.getResponseBodyAsString();
748 assertTrue(s, s.indexOf("<title>ReadCookieServlet: GET</title>") >= 0);
749 assertTrue(s, s.indexOf("<p><tt>Cookie: simplecookie=value</tt></p>") >= 0);
750 assertTrue(s, s.indexOf("<tt>simplecookie=value</tt><br>") >= 0);
751 }
752 }
753
754 }
755