1 <testcase> 2 <info> 3 <keywords> 4 HTTP 5 HTTP PUT 6 followlocation 7 </keywords> 8 9 </info> 10 # Server-side 11 <reply> 12 <data> 13 HTTP/1.0 301 Redirect swsclose 14 Date: Thu, 29 Jul 2008 14:49:00 GMT 15 Server: test-server/fake 16 Location: data/10520002.txt?coolsite=yes 17 Content-Length: 0 18 Connection: close 19 20 </data> 21 <data2> 22 HTTP/1.0 200 Followed here fine swsclose 23 Date: Thu, 29 Jul 2008 14:49:00 GMT 24 Server: test-server/fake 25 Content-Length: 51 26 27 If this is received, the location following worked 28 </data2> 29 <datacheck> 30 HTTP/1.0 301 Redirect swsclose 31 Date: Thu, 29 Jul 2008 14:49:00 GMT 32 Server: test-server/fake 33 Location: data/10520002.txt?coolsite=yes 34 Content-Length: 0 35 Connection: close 36 37 HTTP/1.0 200 Followed here fine swsclose 38 Date: Thu, 29 Jul 2008 14:49:00 GMT 39 Server: test-server/fake 40 Content-Length: 51 41 42 If this is received, the location following worked 43 </datacheck> 44 </reply> 45 46 # Client-side 47 <client> 48 <server> 49 http 50 </server> 51 <name> 52 HTTP 1.0 PUT with Location: following 53 </name> 54 <command> 55 http://%HOSTIP:%HTTPPORT/want/1052 -0 -L -T log/test1052.txt 56 </command> 57 <file name="log/test1052.txt"> 58 Weird 59 file 60 to 61 upload 62 for 63 testing 64 the 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> 81 PUT /want/1052 HTTP/1.0 82 Host: %HOSTIP:%HTTPPORT 83 Accept: */* 84 Content-Length: 78 85 86 Weird 87 file 88 to 89 upload 90 for 91 testing 92 the 93 PUT 94 feature 95 PUT /want/data/10520002.txt?coolsite=yes HTTP/1.0 96 Host: %HOSTIP:%HTTPPORT 97 Accept: */* 98 Content-Length: 78 99 100 Weird 101 file 102 to 103 upload 104 for 105 testing 106 the 107 PUT 108 feature 109 </protocol> 110 </verify> 111 </testcase> 112