]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
Split non-portable part off test 1133
authorMarcel Raad <Marcel.Raad@teamviewer.com>
Wed, 8 Aug 2018 20:43:27 +0000 (22:43 +0200)
committerMarcel Raad <Marcel.Raad@teamviewer.com>
Sat, 11 Aug 2018 21:32:26 +0000 (23:32 +0200)
Split off testing file names with double quotes into new test 1158.
Disable it for MSYS using a precheck as it doesn't support file names
with double quotes (but Cygwin does, for example).

Fixes https://github.com/curl/curl/issues/2796
Closes https://github.com/curl/curl/pull/2854

tests/data/Makefile.inc
tests/data/test1133
tests/data/test1158 [new file with mode: 0644]

index b1d9544fdad542e58ddb0fb3fa31b8efcf73d922..66d86a6cd0ffb6f5bb494cfa4c68235cfc76e99f 100644 (file)
@@ -127,7 +127,7 @@ test1120 test1121 test1122 test1123 test1124 test1125 test1126 test1127 \
 test1128 test1129 test1130 test1131 test1132 test1133 test1134 test1135 \
 test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \
 test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
-test1152 test1153 test1154 test1155 test1156 test1157 \
+test1152 test1153 test1154 test1155 test1156 test1157 test1158 \
 \
 test1160 test1161 test1162 test1163 test1164 \
 test1170 test1171 \
index b8ed56b2dd213efb36a91728fbba8f15089a811b..d71155eda9759d80d7e8f6c41c4c614dc46243dc 100644 (file)
@@ -26,10 +26,10 @@ http
 HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'
  </name>
  <command>
-http://%HOSTIP:%HTTPPORT/we/want/1133 -F "file=@\"log/test1133,a\\\"nd;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/test1133,a\"nd;.txt"' -F 'file3=@"log/test1133,a\"nd;.txt";type=m/f,"log/test1133,a\"nd;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b'
+http://%HOSTIP:%HTTPPORT/we/want/1133 -F "file=@\"log/test1133,and;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/test1133,and;.txt"' -F 'file3=@"log/test1133,and;.txt";type=m/f,"log/test1133,and;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b'
 </command>
 # We create this file before the command is invoked!
-<file name=log/test1133,a"nd;.txt>
+<file name=log/test1133,and;.txt>
 foo bar
 This is a bar foo
 bar
@@ -47,7 +47,7 @@ POST /we/want/1133 HTTP/1.1
 User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3\r
 Host: %HOSTIP:%HTTPPORT\r
 Accept: */*\r
-Content-Length: 1270\r
+Content-Length: 1264\r
 Expect: 100-continue\r
 Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
 \r
@@ -61,7 +61,7 @@ bar
 foo
 \r
 ------------------------------24e78000bd32\r
-Content-Disposition: form-data; name="file2"; filename="test1133,a\"nd;.txt"\r
+Content-Disposition: form-data; name="file2"; filename="test1133,and;.txt"\r
 Content-Type: text/plain\r
 \r
 foo bar
@@ -73,7 +73,7 @@ foo
 Content-Disposition: form-data; name="file3"\r
 Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b\r
 \r
-Content-Disposition: attachment; filename="test1133,a\"nd;.txt"\r
+Content-Disposition: attachment; filename="test1133,and;.txt"\r
 Content-Type: m/f\r
 \r
 foo bar
@@ -81,7 +81,7 @@ This is a bar foo
 bar
 foo
 \r
-Content-Disposition: attachment; filename="test1133,a\"nd;.txt"\r
+Content-Disposition: attachment; filename="test1133,and;.txt"\r
 Content-Type: text/plain\r
 \r
 foo bar
diff --git a/tests/data/test1158 b/tests/data/test1158
new file mode 100644 (file)
index 0000000..62adc57
--- /dev/null
@@ -0,0 +1,98 @@
+<testcase>
+<info>
+<keywords>
+HTTP
+HTTP FORMPOST
+</keywords>
+</info>
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK\r
+Date: Thu, 09 Nov 2010 14:49:00 GMT\r
+Server: test-server/fake\r
+Content-Length: 10\r
+\r
+blablabla
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+<name>
+HTTP RFC1867-type formposting with filename containing '"'
+</name>
+<command>
+http://%HOSTIP:%HTTPPORT/we/want/1158 -F "file=@\"log/test1158\\\".txt\";type=mo/foo;filename=\"test1158\\\".txt\"" -F 'file2=@"log/test1158\".txt"' -F 'file3=@"log/test1158\".txt";type=m/f,"log/test1158\".txt"'
+</command>
+<precheck>
+perl -e "print 'Test requires a system supporting double quotes in file names' if ($^O eq 'msys');"
+</precheck>
+# We create this file before the command is invoked!
+<file name=log/test1158".txt>
+foo bar
+This is a bar foo
+bar
+foo
+</file>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^(User-Agent:|Content-Type: multipart/form-data;|Content-Type: multipart/mixed; boundary=|-------).*
+</strip>
+<protocol>
+POST /we/want/1158 HTTP/1.1\r
+User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3\r
+Host: %HOSTIP:%HTTPPORT\r
+Accept: */*\r
+Content-Length: 954\r
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32\r
+\r
+------------------------------24e78000bd32\r
+Content-Disposition: form-data; name="file"; filename="test1158\".txt"\r
+Content-Type: mo/foo\r
+\r
+foo bar
+This is a bar foo
+bar
+foo
+\r
+------------------------------24e78000bd32\r
+Content-Disposition: form-data; name="file2"; filename="test1158\".txt"\r
+Content-Type: text/plain\r
+\r
+foo bar
+This is a bar foo
+bar
+foo
+\r
+------------------------------24e78000bd32\r
+Content-Disposition: form-data; name="file3"\r
+Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b\r
+\r
+Content-Disposition: attachment; filename="test1158\".txt"\r
+Content-Type: m/f\r
+\r
+foo bar
+This is a bar foo
+bar
+foo
+\r
+Content-Disposition: attachment; filename="test1158\".txt"\r
+Content-Type: text/plain\r
+\r
+foo bar
+This is a bar foo
+bar
+foo
+\r
+\r
+------------------------------24e78000bd32--\r
+</protocol>
+</verify>
+</testcase>