1<testcase>
2<info>
3<keywords>
4HTTP
5HTTP PUT
6followlocation
7</keywords>
8
9</info>
10# Server-side
11<reply>
12<data>
13HTTP/1.0 301 Redirect swsclose
14Date: Thu, 29 Jul 2008 14:49:00 GMT
15Server: test-server/fake
16Location: data/10520002.txt?coolsite=yes
17Content-Length: 0
18Connection: close
19
20</data>
21<data2>
22HTTP/1.0 200 Followed here fine swsclose
23Date: Thu, 29 Jul 2008 14:49:00 GMT
24Server: test-server/fake
25Content-Length: 51
26
27If this is received, the location following worked
28</data2>
29<datacheck>
30HTTP/1.0 301 Redirect swsclose
31Date: Thu, 29 Jul 2008 14:49:00 GMT
32Server: test-server/fake
33Location: data/10520002.txt?coolsite=yes
34Content-Length: 0
35Connection: close
36
37HTTP/1.0 200 Followed here fine swsclose
38Date: Thu, 29 Jul 2008 14:49:00 GMT
39Server: test-server/fake
40Content-Length: 51
41
42If this is received, the location following worked
43</datacheck>
44</reply>
45
46# Client-side
47<client>
48<server>
49http
50</server>
51 <name>
52HTTP 1.0 PUT with Location: following
53 </name>
54 <command>
55http://%HOSTIP:%HTTPPORT/want/1052 -0 -L -T log/test1052.txt
56</command>
57<file name="log/test1052.txt">
58Weird
59     file
60         to
61   upload
62for
63   testing
64the
65   PUT
66      feature
67</file>
68</client>
69
70# Verify data after the test has been "shot"
71<verify>
72<strip>
73^User-Agent:.*
74</strip>
75
76# The primary reason libcurl sends the data part twice in this test is that
77# the test HTTP server is blocking until it has read the entire request,
78# including the full request-body before it responds. So in this test the
79# server says 301 and 200 _after_ the entire PUT body has been sent.
80<protocol>
81PUT /want/1052 HTTP/1.0
82Host: %HOSTIP:%HTTPPORT
83Accept: */*
84Content-Length: 78
85
86Weird
87     file
88         to
89   upload
90for
91   testing
92the
93   PUT
94      feature
95PUT /want/data/10520002.txt?coolsite=yes HTTP/1.0
96Host: %HOSTIP:%HTTPPORT
97Accept: */*
98Content-Length: 78
99
100Weird
101     file
102         to
103   upload
104for
105   testing
106the
107   PUT
108      feature
109</protocol>
110</verify>
111</testcase>
112