<testcase>
<info>
<keywords>
HTTP
HTTP GET
cookies
</keywords>
</info>
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Funny-head: yesyes
Set-Cookie: testn1=yes; path=/we/want/; domain=.host.foo.com; Max-Age=-1;
Set-Cookie: test=yes; path=/we/want/; domain=.host.foo.com; Max-Age=0;
Content-Length: 4

boo
</data>
<data2>
HTTP/1.1 200 OK
Funny-head: yesyes
Content-Length: 4

moo
</data2>
</reply>

# Client-side
<client>
<file name="%LOGDIR/jar%TESTNUMBER.txt" mode="text">
.host.foo.com	TRUE	/we/want/	FALSE	22147483647	test	no
</file>
<file name="%LOGDIR/jar%TESTNUMBER-2.txt" mode="text">
.host.foo.com	TRUE	/we/want/	FALSE	22147483647	tester	yes
</file>
<server>
http
</server>
<name>
HTTP cookie with Max-Age=0
</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>
<command>
http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER -b %LOGDIR/jar%TESTNUMBER.txt -b %LOGDIR/jar%TESTNUMBER-2.txt -H "Host: host.foo.com" http://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER0002
</command>
<features>
cookies
</features>
</client>

# Verify data after the test has been "shot"
<verify>
<protocol>
GET /we/want/%TESTNUMBER HTTP/1.1
Host: host.foo.com
User-Agent: curl/%VERSION
Accept: */*
Cookie: tester=yes; test=no

GET /we/want/%TESTNUMBER0002 HTTP/1.1
Host: host.foo.com
User-Agent: curl/%VERSION
Accept: */*
Cookie: tester=yes

</protocol>
</verify>
</testcase>
