<testcase>
<info>
<keywords>
HTTP
HTTP POST
HTTP MIME POST
</keywords>
</info>

#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Connection: close
Content-Type: text/html

hello
</data>
<datacheck>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Connection: close
Content-Type: text/html

hello
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake swsclose
Connection: close
Content-Type: text/html

hello
</datacheck>
</reply>

# Client-side
<client>
<server>
http
</server>
# tool is what to use instead of 'curl'
<tool>
lib%TESTNUMBER
</tool>

 <name>
HTTP multi-part chunked mimepost using read callback for the file part
 </name>
 <command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>

#
# Verify data after the test has been "shot"
<verify>
<strippart>
s/^--------------------------[a-z0-9]*/------------------------------/
s/boundary=------------------------[a-z0-9]*/boundary=----------------------------/
</strippart>
# Note that the stripping above removes 12 bytes from every occurrence of the
# boundary string and since 5 of them are in the body contents, we see
# (5*12) == 60 bytes less
<protocol>
POST /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

76
------------------------------
Content-Disposition: form-data; name="sendfile"; filename="postit2.c"

d
1
u
1
m
1
m
1
y
1


65

------------------------------
Content-Disposition: form-data; name="callbackdata"


1
d
1
u
1
m
1
m
1
y
1


%if hyper
19A
%else
19a
%endif

------------------------------
Content-Disposition: form-data; name="filename"

postit2.c
------------------------------
Content-Disposition: form-data; name="submit"

send
------------------------------
Content-Disposition: form-data; name="somename"; filename="somefile.txt"
Content-Type: text/plain

blah blah
--------------------------------

0

POST /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Transfer-Encoding: chunked
Content-Type: multipart/form-data; boundary=----------------------------
Expect: 100-continue

84
------------------------------
Content-Disposition: form-data; name="sendfile alternative"; filename="file name 2"

d
1
u
1
m
1
m
1
y
1


65

------------------------------
Content-Disposition: form-data; name="callbackdata"


1
d
1
u
1
m
1
m
1
y
1


%if hyper
19A
%else
19a
%endif

------------------------------
Content-Disposition: form-data; name="filename"

postit2.c
------------------------------
Content-Disposition: form-data; name="submit"

send
------------------------------
Content-Disposition: form-data; name="somename"; filename="somefile.txt"
Content-Type: text/plain

blah blah
--------------------------------

0

</protocol>
</verify>
</testcase>
