xref: /aosp_15_r20/external/curl/tests/data/test1189 (revision 6236dae45794135f37c4eb022389c904c8b0090d)
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 WorkerMultipart formposting with backslash-escaping of name= and filename=
30*6236dae4SAndroid Build Coastguard Worker</name>
31*6236dae4SAndroid Build Coastguard Worker<command>
32*6236dae4SAndroid Build Coastguard Workerhttp://%HOSTIP:%HTTPPORT/we/want/%TESTNUMBER --form-escape -F name=daniel -F tool=curl --form-string "str1=@literal" --form-string "str2=<verbatim;type=xxx/yyy" -F "file=@%LOGDIR/test%TESTNUMBER.txt;type=moo/foobar;filename=fakerfile" -F file2=@%LOGDIR/test%TESTNUMBER.txt -F "file3=@\"%LOGDIR/test%TESTNUMBER.txt\";type=mo/foo;filename=\"f\\\\\\\\ak\\\\\\er,\\\\an\\d;.t\\\"xt\"" -F 'file4=@"%LOGDIR/test%TESTNUMBER.txt"; filename="A\\AA\"\"\\\"ZZZ"'
33*6236dae4SAndroid Build Coastguard Worker</command>
34*6236dae4SAndroid Build Coastguard Worker# We create this file before the command is invoked!
35*6236dae4SAndroid Build Coastguard Worker<file name="%LOGDIR/test%TESTNUMBER.txt">
36*6236dae4SAndroid Build Coastguard Workerfoo bar
37*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo
38*6236dae4SAndroid Build Coastguard Workerbar
39*6236dae4SAndroid Build Coastguard Workerfoo
40*6236dae4SAndroid Build Coastguard Worker</file>
41*6236dae4SAndroid Build Coastguard Worker</client>
42*6236dae4SAndroid Build Coastguard Worker
43*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot"
44*6236dae4SAndroid Build Coastguard Worker<verify>
45*6236dae4SAndroid Build Coastguard Worker<strip>
46*6236dae4SAndroid Build Coastguard Worker^(Content-Type: multipart/form-data;|-------).*
47*6236dae4SAndroid Build Coastguard Worker</strip>
48*6236dae4SAndroid Build Coastguard Worker<protocol>
49*6236dae4SAndroid Build Coastguard WorkerPOST /we/want/%TESTNUMBER HTTP/1.1
50*6236dae4SAndroid Build Coastguard WorkerHost: %HOSTIP:%HTTPPORT
51*6236dae4SAndroid Build Coastguard WorkerUser-Agent: curl/%VERSION
52*6236dae4SAndroid Build Coastguard WorkerAccept: */*
53*6236dae4SAndroid Build Coastguard WorkerContent-Length: 1240
54*6236dae4SAndroid Build Coastguard WorkerContent-Type: multipart/form-data; boundary=----------------------------24e78000bd32
55*6236dae4SAndroid Build Coastguard Worker
56*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
57*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="name"
58*6236dae4SAndroid Build Coastguard Worker
59*6236dae4SAndroid Build Coastguard Workerdaniel
60*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
61*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="tool"
62*6236dae4SAndroid Build Coastguard Worker
63*6236dae4SAndroid Build Coastguard Workercurl
64*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
65*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="str1"
66*6236dae4SAndroid Build Coastguard Worker
67*6236dae4SAndroid Build Coastguard Worker@literal
68*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
69*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="str2"
70*6236dae4SAndroid Build Coastguard Worker
71*6236dae4SAndroid Build Coastguard Worker<verbatim;type=xxx/yyy
72*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
73*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file"; filename="fakerfile"
74*6236dae4SAndroid Build Coastguard WorkerContent-Type: moo/foobar
75*6236dae4SAndroid Build Coastguard Worker
76*6236dae4SAndroid Build Coastguard Workerfoo bar
77*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo
78*6236dae4SAndroid Build Coastguard Workerbar
79*6236dae4SAndroid Build Coastguard Workerfoo
80*6236dae4SAndroid Build Coastguard Worker
81*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
82*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file2"; filename="test%TESTNUMBER.txt"
83*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain
84*6236dae4SAndroid Build Coastguard Worker
85*6236dae4SAndroid Build Coastguard Workerfoo bar
86*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo
87*6236dae4SAndroid Build Coastguard Workerbar
88*6236dae4SAndroid Build Coastguard Workerfoo
89*6236dae4SAndroid Build Coastguard Worker
90*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
91*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file3"; filename="f\\\\ak\\\\er,\\an\\d;.t\"xt"
92*6236dae4SAndroid Build Coastguard WorkerContent-Type: mo/foo
93*6236dae4SAndroid Build Coastguard Worker
94*6236dae4SAndroid Build Coastguard Workerfoo bar
95*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo
96*6236dae4SAndroid Build Coastguard Workerbar
97*6236dae4SAndroid Build Coastguard Workerfoo
98*6236dae4SAndroid Build Coastguard Worker
99*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32
100*6236dae4SAndroid Build Coastguard WorkerContent-Disposition: form-data; name="file4"; filename="A\\AA\"\"\\\"ZZZ"
101*6236dae4SAndroid Build Coastguard WorkerContent-Type: text/plain
102*6236dae4SAndroid Build Coastguard Worker
103*6236dae4SAndroid Build Coastguard Workerfoo bar
104*6236dae4SAndroid Build Coastguard WorkerThis is a bar foo
105*6236dae4SAndroid Build Coastguard Workerbar
106*6236dae4SAndroid Build Coastguard Workerfoo
107*6236dae4SAndroid Build Coastguard Worker
108*6236dae4SAndroid Build Coastguard Worker------------------------------24e78000bd32--
109*6236dae4SAndroid Build Coastguard Worker</protocol>
110*6236dae4SAndroid Build Coastguard Worker</verify>
111*6236dae4SAndroid Build Coastguard Worker</testcase>
112