1<testcase>
2<info>
3<keywords>
4HTTP
5HTTP FORMPOST
6</keywords>
7</info>
8# Server-side
9<reply>
10<data>
11HTTP/1.1 200 OK
12Date: Thu, 09 Nov 2010 14:49:00 GMT
13Server: test-server/fake
14Content-Length: 10
15
16blablabla
17</data>
18</reply>
19
20# Client-side
21<client>
22<server>
23http
24</server>
25 <name>
26HTTP RFC1867-type formposting with filename= and type=
27 </name>
28 <command>
29http://%HOSTIP:%HTTPPORT/we/want/39 -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2=<verbatim;type=xxx/yyy" -F "file=@log/test39.txt;type=moo/foobar;filename=fakerfile" -F file2=@log/test39.txt -F "file3=@\"log/test39.txt\";type=mo/foo;filename=\"f\\\\\\\\ak\\\\\\er,\\\\an\\d;.t\\\"xt\"" -F 'file4=@"log/test39.txt"; filename="A\\AA\"\"\\\"ZZZ"'
30</command>
31# We create this file before the command is invoked!
32<file name="log/test39.txt">
33foo bar
34This is a bar foo
35bar
36foo
37</file>
38</client>
39
40# Verify data after the test has been "shot"
41<verify>
42<strip>
43^(Content-Type: multipart/form-data;|-------).*
44</strip>
45<protocol>
46POST /we/want/39 HTTP/1.1
47Host: %HOSTIP:%HTTPPORT
48User-Agent: curl/%VERSION
49Accept: */*
50Content-Length: 1184
51Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
52
53------------------------------24e78000bd32
54Content-Disposition: form-data; name="name"
55
56daniel
57------------------------------24e78000bd32
58Content-Disposition: form-data; name="tool"
59
60curl
61------------------------------24e78000bd32
62Content-Disposition: form-data; name="str1"
63
64@literal
65------------------------------24e78000bd32
66Content-Disposition: form-data; name="str2"
67
68<verbatim;type=xxx/yyy
69------------------------------24e78000bd32
70Content-Disposition: form-data; name="file"; filename="fakerfile"
71Content-Type: moo/foobar
72
73foo bar
74This is a bar foo
75bar
76foo
77
78------------------------------24e78000bd32
79Content-Disposition: form-data; name="file2"; filename="test39.txt"
80Content-Type: text/plain
81
82foo bar
83This is a bar foo
84bar
85foo
86
87------------------------------24e78000bd32
88Content-Disposition: form-data; name="file3"; filename="f\\\\ak\\\\er,\\an\\d;.t\"xt"
89Content-Type: mo/foo
90
91foo bar
92This is a bar foo
93bar
94foo
95
96------------------------------24e78000bd32
97Content-Disposition: form-data; name="file4"; filename="A\\AA\"\"\\\"ZZZ"
98Content-Type: text/plain
99
100foo bar
101This is a bar foo
102bar
103foo
104
105------------------------------24e78000bd32--
106</protocol>
107</verify>
108</testcase>
109