test643 (2808B)
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: Tue, 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: Tue, 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: Tue, 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 <features> 43 Mime 44 </features> 45 <server> 46 http 47 </server> 48 # tool is what to use instead of 'curl' 49 <tool> 50 lib%TESTNUMBER 51 </tool> 52 53 <name> 54 HTTP multi-part mimepost using read callback for the file part 55 </name> 56 <command> 57 http://%HOSTIP:%HTTPPORT/%TESTNUMBER 58 </command> 59 </client> 60 61 # 62 # Verify data after the test has been "shot" 63 <verify> 64 <strippart> 65 s/^--------------------------[A-Za-z0-9]*/------------------------------/ 66 s/boundary=------------------------[A-Za-z0-9]*/boundary=----------------------------/ 67 </strippart> 68 # Note that the stripping above removes 12 bytes from every occurrence of the 69 # boundary string and since 5 of them are in the body contents, we see 70 # (5*12) == 60 bytes less 71 <protocol> 72 POST /%TESTNUMBER HTTP/1.1 73 Host: %HOSTIP:%HTTPPORT 74 Accept: */* 75 Content-Length: 676 76 Content-Type: multipart/form-data; boundary=---------------------------- 77 78 ------------------------------ 79 Content-Disposition: form-data; name="sendfile"; filename="postit2.c" 80 81 dummy 82 83 ------------------------------ 84 Content-Disposition: form-data; name="callbackdata" 85 86 dummy 87 88 ------------------------------ 89 Content-Disposition: form-data; name="filename" 90 91 postit2.c 92 ------------------------------ 93 Content-Disposition: form-data; name="submit" 94 95 send 96 ------------------------------ 97 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 98 Content-Type: text/plain 99 100 blah blah 101 -------------------------------- 102 POST /%TESTNUMBER HTTP/1.1 103 Host: %HOSTIP:%HTTPPORT 104 Accept: */* 105 Content-Length: 690 106 Content-Type: multipart/form-data; boundary=---------------------------- 107 108 ------------------------------ 109 Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2" 110 111 dummy 112 113 ------------------------------ 114 Content-Disposition: form-data; name="callbackdata" 115 116 dummy 117 118 ------------------------------ 119 Content-Disposition: form-data; name="filename" 120 121 postit2.c 122 ------------------------------ 123 Content-Disposition: form-data; name="submit" 124 125 send 126 ------------------------------ 127 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 128 Content-Type: text/plain 129 130 blah blah 131 -------------------------------- 132 </protocol> 133 </verify> 134 </testcase>