test554 (3010B)
1 <testcase> 2 <info> 3 <keywords> 4 HTTP 5 HTTP POST 6 FORM 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 form-api 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 formpost 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: 780 76 Content-Type: multipart/form-data; boundary=---------------------------- 77 78 ------------------------------ 79 Content-Disposition: form-data; name="sendfile"; filename="postit2.c" 80 81 this is what we post to the silly web server 82 83 ------------------------------ 84 Content-Disposition: form-data; name="callbackdata" 85 86 this is what we post to the silly web server 87 88 ------------------------------ 89 Content-Disposition: form-data; name="filename" 90 91 postit2.c 92 ------------------------------ 93 Content-Disposition: form-data; name="submit" 94 Content-Type: text/plain 95 96 send 97 ------------------------------ 98 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 99 Content-Type: text/plain 100 101 blah blah 102 -------------------------------- 103 POST /%TESTNUMBER HTTP/1.1 104 Host: %HOSTIP:%HTTPPORT 105 Accept: */* 106 Content-Length: 794 107 Content-Type: multipart/form-data; boundary=---------------------------- 108 109 ------------------------------ 110 Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2" 111 112 this is what we post to the silly web server 113 114 ------------------------------ 115 Content-Disposition: form-data; name="callbackdata" 116 117 this is what we post to the silly web server 118 119 ------------------------------ 120 Content-Disposition: form-data; name="filename" 121 122 postit2.c 123 ------------------------------ 124 Content-Disposition: form-data; name="submit" 125 Content-Type: text/plain 126 127 send 128 ------------------------------ 129 Content-Disposition: form-data; name="somename"; filename="somefile.txt" 130 Content-Type: text/plain 131 132 blah blah 133 -------------------------------- 134 </protocol> 135 </verify> 136 </testcase>