1 <testcase> 2 <info> 3 <keywords> 4 HTTP 5 HTTP POST 6 HTTP MIME POST 7 </keywords> 8 </info> 9 10 # 11 # Server-side 12 <reply> 13 <data> 14 HTTP/1.1 200 OK 15 Date: Thu, 09 Nov 2010 14:49:00 GMT 16 Server: test-server/fake swsclose 17 Connection: close 18 Content-Type: text/html 19 20 hello 21 </data> 22 <datacheck> 23 HTTP/1.1 200 OK 24 Date: Thu, 09 Nov 2010 14:49:00 GMT 25 Server: test-server/fake swsclose 26 Connection: close 27 Content-Type: text/html 28 29 hello 30 HTTP/1.1 200 OK 31 Date: Thu, 09 Nov 2010 14:49:00 GMT 32 Server: test-server/fake swsclose 33 Connection: close 34 Content-Type: text/html 35 36 hello 37 </datacheck> 38 </reply> 39 40 # Client-side 41 <client> 42 <server> 43 http 44 </server> 45 # tool is what to use instead of 'curl' 46 <tool> 47 lib645 48 </tool> 49 50 <name> 51 HTTP multi-part chunked mimepost using read callback for the file part 52 </name> 53 <command> 54 http://%HOSTIP:%HTTPPORT/645 55 </command> 56 </client> 57 58 # 59 # Verify data after the test has been "shot" 60 <verify> 61 <strippart> 62 s/^--------------------------[a-z0-9]*/------------------------------/ 63 s/boundary=------------------------[a-z0-9]*/boundary=----------------------------/ 64 </strippart> 65 # Note that the stripping above removes 12 bytes from every occurrence of the 66 # boundary string and since 5 of them are in the body contents, we see 67 # (5*12) == 60 bytes less 68 <protocol> 69 POST /645 HTTP/1.1 70 Host: %HOSTIP:%HTTPPORT 71 Accept: */* 72 Transfer-Encoding: chunked 73 Content-Type: multipart/form-data; boundary=---------------------------- 74 Expect: 100-continue 75 76 2ce 77 ------------------------------ 78 Content-Disposition: form-data; name="sendfile"; filename="postit2.c" 79 80 this is what we post to the silly web server 81 82 ------------------------------ 83 Content-Disposition: form-data; name="callbackdata" 84 85 this is what we post to the silly web server 86 87 ------------------------------ 88 Content-Disposition: form-data; name="filename" 89 90 postit2.c 91 ------------------------------ 92 Content-Disposition: form-data; name="submit" 93 94 send 95 ------------------------------ 96 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 97 Content-Type: text/plain 98 99 blah blah 100 -------------------------------- 101 102 0 103 104 POST /645 HTTP/1.1 105 Host: %HOSTIP:%HTTPPORT 106 Accept: */* 107 Transfer-Encoding: chunked 108 Content-Type: multipart/form-data; boundary=---------------------------- 109 Expect: 100-continue 110 111 2dc 112 ------------------------------ 113 Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2" 114 115 this is what we post to the silly web server 116 117 ------------------------------ 118 Content-Disposition: form-data; name="callbackdata" 119 120 this is what we post to the silly web server 121 122 ------------------------------ 123 Content-Disposition: form-data; name="filename" 124 125 postit2.c 126 ------------------------------ 127 Content-Disposition: form-data; name="submit" 128 129 send 130 ------------------------------ 131 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 132 Content-Type: text/plain 133 134 blah blah 135 -------------------------------- 136 137 0 138 139 </protocol> 140 </verify> 141 </testcase> 142