<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>
GLOBAL_INIT
SHARE_INIT
CURLSHOPT_LOCKFUNC
CURLSHOPT_UNLOCKFUNC
CURLSHOPT_USERDATA
CURL_LOCK_DATA_COOKIE
CURL_LOCK_DATA_DNS
CURLOPT_SHARE
lock:   share  [Pigs in space]: 0
unlock: share  [Pigs in space]: 1
CURLOPT_COOKIELIST injected_and_clobbered
lock:   cookie [Pigs in space]: 2
unlock: cookie [Pigs in space]: 3
CURLOPT_COOKIELIST ALL
lock:   cookie [Pigs in space]: 4
unlock: cookie [Pigs in space]: 5
CURLOPT_COOKIELIST session
lock:   cookie [Pigs in space]: 6
unlock: cookie [Pigs in space]: 7
CURLOPT_COOKIELIST injected
lock:   cookie [Pigs in space]: 8
unlock: cookie [Pigs in space]: 9
CURLOPT_COOKIELIST SESS
lock:   cookie [Pigs in space]: 10
unlock: cookie [Pigs in space]: 11
CLEANUP
lock:   cookie [Pigs in space]: 12
unlock: cookie [Pigs in space]: 13
lock:   share  [Pigs in space]: 14
unlock: share  [Pigs in space]: 15
*** run 1
CURLOPT_SHARE
lock:   share  [Pigs in space]: 16
unlock: share  [Pigs in space]: 17
PERFORM
lock:   dns    [Pigs in space]: 18
unlock: dns    [Pigs in space]: 19
lock:   dns    [Pigs in space]: 20
unlock: dns    [Pigs in space]: 21
lock:   cookie [Pigs in space]: 22
unlock: cookie [Pigs in space]: 23
lock:   cookie [Pigs in space]: 24
unlock: cookie [Pigs in space]: 25
lock:   cookie [Pigs in space]: 26
unlock: cookie [Pigs in space]: 27
lock:   cookie [Pigs in space]: 28
unlock: cookie [Pigs in space]: 29
run 1: set cookie 1, 2 and 3
lock:   dns    [Pigs in space]: 30
unlock: dns    [Pigs in space]: 31
CLEANUP
lock:   cookie [Pigs in space]: 32
unlock: cookie [Pigs in space]: 33
lock:   share  [Pigs in space]: 34
unlock: share  [Pigs in space]: 35
*** run 2
CURLOPT_SHARE
lock:   share  [Pigs in space]: 36
unlock: share  [Pigs in space]: 37
PERFORM
lock:   dns    [Pigs in space]: 38
unlock: dns    [Pigs in space]: 39
lock:   cookie [Pigs in space]: 40
unlock: cookie [Pigs in space]: 41
lock:   cookie [Pigs in space]: 42
unlock: cookie [Pigs in space]: 43
lock:   cookie [Pigs in space]: 44
unlock: cookie [Pigs in space]: 45
run 2: set cookie 4 and 5
lock:   dns    [Pigs in space]: 46
unlock: dns    [Pigs in space]: 47
CLEANUP
lock:   cookie [Pigs in space]: 48
unlock: cookie [Pigs in space]: 49
lock:   share  [Pigs in space]: 50
unlock: share  [Pigs in space]: 51
*** run 3
CURLOPT_SHARE
lock:   share  [Pigs in space]: 52
unlock: share  [Pigs in space]: 53
CURLOPT_COOKIEJAR
CURLOPT_COOKIELIST FLUSH
lock:   cookie [Pigs in space]: 54
unlock: cookie [Pigs in space]: 55
PERFORM
lock:   dns    [Pigs in space]: 56
unlock: dns    [Pigs in space]: 57
lock:   cookie [Pigs in space]: 58
unlock: cookie [Pigs in space]: 59
lock:   cookie [Pigs in space]: 60
unlock: cookie [Pigs in space]: 61
lock:   cookie [Pigs in space]: 62
unlock: cookie [Pigs in space]: 63
run 3: overwrite cookie 1 and 4
lock:   dns    [Pigs in space]: 64
unlock: dns    [Pigs in space]: 65
CLEANUP
lock:   cookie [Pigs in space]: 66
unlock: cookie [Pigs in space]: 67
lock:   share  [Pigs in space]: 68
unlock: share  [Pigs in space]: 69
CURLOPT_SHARE
lock:   share  [Pigs in space]: 70
unlock: share  [Pigs in space]: 71
CURLOPT_COOKIELIST ALL
lock:   cookie [Pigs in space]: 72
unlock: cookie [Pigs in space]: 73
CURLOPT_COOKIEJAR
CURLOPT_COOKIELIST RELOAD
lock:   cookie [Pigs in space]: 74
unlock: cookie [Pigs in space]: 75
loaded cookies:
-----------------
  .host.foo.com	TRUE	/	FALSE	1896263787	injected	yes
  .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
-----------------
try SHARE_CLEANUP...
lock:   share  [Pigs in space]: 76
unlock: share  [Pigs in space]: 77
SHARE_CLEANUP failed, correct
CLEANUP
lock:   cookie [Pigs in space]: 78
unlock: cookie [Pigs in space]: 79
lock:   share  [Pigs in space]: 80
unlock: share  [Pigs in space]: 81
SHARE_CLEANUP
lock:   share  [Pigs in space]: 82
unlock: share  [Pigs in space]: 83
GLOBAL_CLEANUP
</stdout>
<stderr>
http://%HOSTIP:%HTTPPORT/506 
</stderr>
<file name="log/jar506" mode="text">
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.

.host.foo.com	TRUE	/	FALSE	1896263787	injected	yes
.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>
