<testcase> <info> <keywords> HTTP HTTP PUT followlocation </keywords> </info> # Server-side <reply> <data> HTTP/1.0 301 Redirect swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Location: data/%TESTNUMBER0002.txt?coolsite=yes Content-Length: 0 Connection: close </data> <data2> HTTP/1.0 200 Followed here fine swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Content-Length: 51 If this is received, the location following worked </data2> <datacheck> HTTP/1.0 301 Redirect swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Location: data/%TESTNUMBER0002.txt?coolsite=yes Content-Length: 0 Connection: close HTTP/1.0 200 Followed here fine swsclose Date: Thu, 29 Jul 2008 14:49:00 GMT Server: test-server/fake Content-Length: 51 If this is received, the location following worked </datacheck> </reply> # Client-side <client> <server> http </server> <name> HTTP 1.0 PUT with Location: following </name> <command> http://%HOSTIP:%HTTPPORT/want/%TESTNUMBER -0 -L -T %LOGDIR/test%TESTNUMBER.txt </command> <file name="%LOGDIR/test%TESTNUMBER.txt"> Weird file to upload for testing the PUT feature </file> </client> # Verify data after the test has been "shot" <verify> # The primary reason libcurl sends the data part twice in this test is that # the test HTTP server is blocking until it has read the entire request, # including the full request-body before it responds. So in this test the # server says 301 and 200 _after_ the entire PUT body has been sent. <protocol> PUT /want/%TESTNUMBER HTTP/1.0 Host: %HOSTIP:%HTTPPORT User-Agent: curl/%VERSION Accept: */* Content-Length: 78 Weird file to upload for testing the PUT feature PUT /want/data/%TESTNUMBER0002.txt?coolsite=yes HTTP/1.0 Host: %HOSTIP:%HTTPPORT User-Agent: curl/%VERSION Accept: */* Content-Length: 78 Weird file to upload for testing the PUT feature </protocol> </verify> </testcase>