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 lib643 48 </tool> 49 50 <name> 51 HTTP multi-part mimepost using read callback for the file part 52 </name> 53 <command> 54 http://%HOSTIP:%HTTPPORT/643 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 /643 HTTP/1.1 70 Host: %HOSTIP:%HTTPPORT 71 Accept: */* 72 Content-Length: 718 73 Content-Type: multipart/form-data; boundary=---------------------------- 74 75 ------------------------------ 76 Content-Disposition: form-data; name="sendfile"; filename="postit2.c" 77 78 this is what we post to the silly web server 79 80 ------------------------------ 81 Content-Disposition: form-data; name="callbackdata" 82 83 this is what we post to the silly web server 84 85 ------------------------------ 86 Content-Disposition: form-data; name="filename" 87 88 postit2.c 89 ------------------------------ 90 Content-Disposition: form-data; name="submit" 91 92 send 93 ------------------------------ 94 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 95 Content-Type: text/plain 96 97 blah blah 98 -------------------------------- 99 POST /643 HTTP/1.1 100 Host: %HOSTIP:%HTTPPORT 101 Accept: */* 102 Content-Length: 732 103 Content-Type: multipart/form-data; boundary=---------------------------- 104 105 ------------------------------ 106 Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2" 107 108 this is what we post to the silly web server 109 110 ------------------------------ 111 Content-Disposition: form-data; name="callbackdata" 112 113 this is what we post to the silly web server 114 115 ------------------------------ 116 Content-Disposition: form-data; name="filename" 117 118 postit2.c 119 ------------------------------ 120 Content-Disposition: form-data; name="submit" 121 122 send 123 ------------------------------ 124 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 125 Content-Type: text/plain 126 127 blah blah 128 -------------------------------- 129 </protocol> 130 </verify> 131 </testcase> 132