<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>