<testcase> <info> <keywords> HTTP HTTP GET cookies shared cookies </keywords> </info> # Server-side <reply> <data1> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:00 GMT Server: test-server/fake Content-Type: text/html Set-Cookie: test1=one; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 Set-Cookie: test2=two; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 Set-Cookie: test3=three; domain=foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 Content-Length: 29 run 1: set cookie 1, 2 and 3 </data1> <data2> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:01 GMT Server: test-server/fake Content-Type: text/html Set-Cookie: test4=four; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 Set-Cookie: test5=five; domain=host.foo.com; expires=Sat Feb 2 11:56:27 GMT 2030 Content-Length: 26 run 2: set cookie 4 and 5 </data2> <data3> HTTP/1.1 200 OK Date: Thu, 09 Nov 2010 14:49:02 GMT Server: test-server/fake Content-Type: text/html Funny-head: yesyes Set-Cookie: test4=overwritten4; domain=host.foo.com; expires=Sat May 5 GMT 11:56:27 2035 Set-Cookie: test1=overwritten1; domain=foo.com; expires=Thu Mar 3 GMT 11:56:27 2033 Content-Type: text/html Content-Length: 32 run 3: overwrite cookie 1 and 4 </data3> </reply> # Client-side <client> <server> http </server> <name> HTTP with shared cookie list (and dns cache) </name> # Explicitly set the time zone to a known good one, in case the user is # using one of the 'right' zones that take into account leap seconds # which causes the cookie expiry times to be different. <setenv> TZ=GMT </setenv> <tool> lib506 </tool> <command> http://%HOSTIP:%HTTPPORT/506 </command> </client> # Verify data after the test has been "shot" <verify> <stdout mode="text"> GLOBAL_INIT SHARE_INIT CURLSHOPT_LOCKFUNC CURLSHOPT_UNLOCKFUNC CURLSHOPT_USERDATA CURL_LOCK_DATA_COOKIE CURL_LOCK_DATA_DNS *** run 1 CURLOPT_SHARE lock: share <Pigs in space>: 0 unlock: share <Pigs in space>: 1 PERFORM lock: dns <Pigs in space>: 2 unlock: dns <Pigs in space>: 3 lock: dns <Pigs in space>: 4 unlock: dns <Pigs in space>: 5 lock: cookie <Pigs in space>: 6 unlock: cookie <Pigs in space>: 7 lock: cookie <Pigs in space>: 8 unlock: cookie <Pigs in space>: 9 lock: cookie <Pigs in space>: 10 unlock: cookie <Pigs in space>: 11 lock: cookie <Pigs in space>: 12 unlock: cookie <Pigs in space>: 13 run 1: set cookie 1, 2 and 3 lock: dns <Pigs in space>: 14 unlock: dns <Pigs in space>: 15 CLEANUP lock: dns <Pigs in space>: 16 unlock: dns <Pigs in space>: 17 lock: cookie <Pigs in space>: 18 unlock: cookie <Pigs in space>: 19 lock: share <Pigs in space>: 20 unlock: share <Pigs in space>: 21 *** run 2 CURLOPT_SHARE lock: share <Pigs in space>: 22 unlock: share <Pigs in space>: 23 PERFORM lock: dns <Pigs in space>: 24 unlock: dns <Pigs in space>: 25 lock: dns <Pigs in space>: 26 unlock: dns <Pigs in space>: 27 lock: cookie <Pigs in space>: 28 unlock: cookie <Pigs in space>: 29 lock: cookie <Pigs in space>: 30 unlock: cookie <Pigs in space>: 31 lock: cookie <Pigs in space>: 32 unlock: cookie <Pigs in space>: 33 run 2: set cookie 4 and 5 lock: dns <Pigs in space>: 34 unlock: dns <Pigs in space>: 35 CLEANUP lock: dns <Pigs in space>: 36 unlock: dns <Pigs in space>: 37 lock: cookie <Pigs in space>: 38 unlock: cookie <Pigs in space>: 39 lock: share <Pigs in space>: 40 unlock: share <Pigs in space>: 41 *** run 3 CURLOPT_SHARE lock: share <Pigs in space>: 42 unlock: share <Pigs in space>: 43 CURLOPT_COOKIEJAR PERFORM lock: dns <Pigs in space>: 44 unlock: dns <Pigs in space>: 45 lock: dns <Pigs in space>: 46 unlock: dns <Pigs in space>: 47 lock: cookie <Pigs in space>: 48 unlock: cookie <Pigs in space>: 49 lock: cookie <Pigs in space>: 50 unlock: cookie <Pigs in space>: 51 lock: cookie <Pigs in space>: 52 unlock: cookie <Pigs in space>: 53 run 3: overwrite cookie 1 and 4 lock: dns <Pigs in space>: 54 unlock: dns <Pigs in space>: 55 try SHARE_CLEANUP... lock: share <Pigs in space>: 56 unlock: share <Pigs in space>: 57 SHARE_CLEANUP failed, correct CLEANUP lock: dns <Pigs in space>: 58 unlock: dns <Pigs in space>: 59 lock: cookie <Pigs in space>: 60 unlock: cookie <Pigs in space>: 61 lock: share <Pigs in space>: 62 unlock: share <Pigs in space>: 63 SHARE_CLEANUP lock: share <Pigs in space>: 64 unlock: share <Pigs in space>: 65 GLOBAL_CLEANUP </stdout> <stderr> http://%HOSTIP:%HTTPPORT/506 </stderr> <file name="log/jar506" mode="text"> # Netscape HTTP Cookie File # http://curlm.haxx.se/rfc/cookie_spec.html # This file was generated by libcurl! Edit at your own risk. .foo.com TRUE / FALSE 1993463787 test1 overwritten1 .host.foo.com TRUE / FALSE 1896263787 test2 two .foo.com TRUE / FALSE 1896263787 test3 three .host.foo.com TRUE / FALSE 2061978987 test4 overwritten4 .host.foo.com TRUE / FALSE 1896263787 test5 five </file> </verify> </testcase>