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/%TESTNUMBER0002.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/%TESTNUMBER0002.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/%TESTNUMBER -0 -L -T %LOGDIR/test%TESTNUMBER.txt 56</command> 57<file name="%LOGDIR/test%TESTNUMBER.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 73# The primary reason libcurl sends the data part twice in this test is that 74# the test HTTP server is blocking until it has read the entire request, 75# including the full request-body before it responds. So in this test the 76# server says 301 and 200 _after_ the entire PUT body has been sent. 77<protocol> 78PUT /want/%TESTNUMBER HTTP/1.0 79Host: %HOSTIP:%HTTPPORT 80User-Agent: curl/%VERSION 81Accept: */* 82Content-Length: 78 83 84Weird 85 file 86 to 87 upload 88for 89 testing 90the 91 PUT 92 feature 93PUT /want/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.0 94Host: %HOSTIP:%HTTPPORT 95User-Agent: curl/%VERSION 96Accept: */* 97Content-Length: 78 98 99Weird 100 file 101 to 102 upload 103for 104 testing 105the 106 PUT 107 feature 108</protocol> 109</verify> 110</testcase> 111