1*6236dae4SAndroid Build Coastguard Worker<testcase> 2*6236dae4SAndroid Build Coastguard Worker<info> 3*6236dae4SAndroid Build Coastguard Worker<keywords> 4*6236dae4SAndroid Build Coastguard WorkerHTTP 5*6236dae4SAndroid Build Coastguard WorkerHTTP FORMPOST 6*6236dae4SAndroid Build Coastguard Worker</keywords> 7*6236dae4SAndroid Build Coastguard Worker</info> 8*6236dae4SAndroid Build Coastguard Worker# Server-side 9*6236dae4SAndroid Build Coastguard Worker<reply> 10*6236dae4SAndroid Build Coastguard Worker<data> 11*6236dae4SAndroid Build Coastguard WorkerHTTP/1.1 200 OK 12*6236dae4SAndroid Build Coastguard WorkerDate: Tue, 09 Nov 2010 14:49:00 GMT 13*6236dae4SAndroid Build Coastguard WorkerServer: test-server/fake 14*6236dae4SAndroid Build Coastguard WorkerContent-Length: 10 15*6236dae4SAndroid Build Coastguard Worker 16*6236dae4SAndroid Build Coastguard Workerblablabla 17*6236dae4SAndroid Build Coastguard Worker</data> 18*6236dae4SAndroid Build Coastguard Worker</reply> 19*6236dae4SAndroid Build Coastguard Worker 20*6236dae4SAndroid Build Coastguard Worker# Client-side 21*6236dae4SAndroid Build Coastguard Worker<client> 22*6236dae4SAndroid Build Coastguard Worker<features> 23*6236dae4SAndroid Build Coastguard WorkerMime 24*6236dae4SAndroid Build Coastguard Worker</features> 25*6236dae4SAndroid Build Coastguard Worker<server> 26*6236dae4SAndroid Build Coastguard Workerhttp 27*6236dae4SAndroid Build Coastguard Worker</server> 28*6236dae4SAndroid Build Coastguard Worker<name> 29*6236dae4SAndroid Build Coastguard WorkerHTTP RFC1867-type formposting with filename containing '"' 30*6236dae4SAndroid Build Coastguard Worker</name> 31*6236dae4SAndroid Build Coastguard Worker<command> 32*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER -F "file=@\"%LOGDIR/test%TESTNUMBER\\\".txt\";type=mo/foo;filename=\"test%TESTNUMBER\\\".txt\"" -F 'file2=@"%LOGDIR/test%TESTNUMBER\".txt"' -F 'file3=@"%LOGDIR/test%TESTNUMBER\".txt";type=m/f,"%LOGDIR/test%TESTNUMBER\".txt"' 33*6236dae4SAndroid Build Coastguard Worker</command> 34*6236dae4SAndroid Build Coastguard Worker<precheck> 35*6236dae4SAndroid Build Coastguard Worker%PERL -e "print 'Test requires a system supporting double quotes in file names' if ($^O eq 'msys');" 36*6236dae4SAndroid Build Coastguard Worker</precheck> 37*6236dae4SAndroid Build Coastguard Worker# We create this file before the command is invoked! 38*6236dae4SAndroid Build Coastguard Worker<file name=%LOGDIR/test%TESTNUMBER".txt> 39*6236dae4SAndroid Build Coastguard Workerfoo bar 40*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo 41*6236dae4SAndroid Build Coastguard Workerbar 42*6236dae4SAndroid Build Coastguard Workerfoo 43*6236dae4SAndroid Build Coastguard Worker</file> 44*6236dae4SAndroid Build Coastguard Worker</client> 45*6236dae4SAndroid Build Coastguard Worker 46*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 47*6236dae4SAndroid Build Coastguard Worker<verify> 48*6236dae4SAndroid Build Coastguard Worker<strip> 49*6236dae4SAndroid Build Coastguard Worker^(Content-Type: multipart/form-data;|Content-Type: multipart/mixed; boundary=|-------).* 50*6236dae4SAndroid Build Coastguard Worker</strip> 51*6236dae4SAndroid Build Coastguard Worker<protocol> 52*6236dae4SAndroid Build Coastguard WorkerPOST /we/want/%TESTNUMBER HTTP/1.1 53*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT 54*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION 55*6236dae4SAndroid Build Coastguard WorkerAccept: */* 56*6236dae4SAndroid Build Coastguard WorkerContent-Length: 1006 57*6236dae4SAndroid Build Coastguard WorkerContent-Type: multipart/form-data; boundary=----------------------------24e78000bd32 58*6236dae4SAndroid Build Coastguard Worker 59*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32 60*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file"; filename="test%TESTNUMBER%22.txt" 61*6236dae4SAndroid Build Coastguard WorkerContent-Type: mo/foo 62*6236dae4SAndroid Build Coastguard Worker 63*6236dae4SAndroid Build Coastguard Workerfoo bar 64*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo 65*6236dae4SAndroid Build Coastguard Workerbar 66*6236dae4SAndroid Build Coastguard Workerfoo 67*6236dae4SAndroid Build Coastguard Worker 68*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32 69*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file2"; filename="test%TESTNUMBER%22.txt" 70*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain 71*6236dae4SAndroid Build Coastguard Worker 72*6236dae4SAndroid Build Coastguard Workerfoo bar 73*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo 74*6236dae4SAndroid Build Coastguard Workerbar 75*6236dae4SAndroid Build Coastguard Workerfoo 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32 78*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file3" 79*6236dae4SAndroid Build Coastguard WorkerContent-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b 80*6236dae4SAndroid Build Coastguard Worker 81*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: attachment; filename="test%TESTNUMBER%22.txt" 82*6236dae4SAndroid Build Coastguard WorkerContent-Type: m/f 83*6236dae4SAndroid Build Coastguard Worker 84*6236dae4SAndroid Build Coastguard Workerfoo bar 85*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo 86*6236dae4SAndroid Build Coastguard Workerbar 87*6236dae4SAndroid Build Coastguard Workerfoo 88*6236dae4SAndroid Build Coastguard Worker 89*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: attachment; filename="test%TESTNUMBER%22.txt" 90*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain 91*6236dae4SAndroid Build Coastguard Worker 92*6236dae4SAndroid Build Coastguard Workerfoo bar 93*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo 94*6236dae4SAndroid Build Coastguard Workerbar 95*6236dae4SAndroid Build Coastguard Workerfoo 96*6236dae4SAndroid Build Coastguard Worker 97*6236dae4SAndroid Build Coastguard Worker 98*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32-- 99*6236dae4SAndroid Build Coastguard Worker</protocol> 100*6236dae4SAndroid Build Coastguard Worker</verify> 101*6236dae4SAndroid Build Coastguard Worker</testcase> 102