diff options
author | Marcel Raad <Marcel.Raad@teamviewer.com> | 2018-08-08 22:43:27 +0200 |
---|---|---|
committer | Marcel Raad <Marcel.Raad@teamviewer.com> | 2018-08-11 23:32:26 +0200 |
commit | 41dabac76106e8a4bc667fd7102c12b5bec10056 (patch) | |
tree | 8e5b12183d16759de5b35fc406b706ab504b9974 | |
parent | 220cd241cd8e64c5968df91c6f0a8083b49869ee (diff) |
Split non-portable part off test 1133
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
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test1133 | 12 | ||||
-rw-r--r-- | tests/data/test1158 | 98 |
3 files changed, 105 insertions, 7 deletions
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index b1d9544fd..66d86a6cd 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -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 \ diff --git a/tests/data/test1133 b/tests/data/test1133 index b8ed56b2d..d71155eda 100644 --- a/tests/data/test1133 +++ b/tests/data/test1133 @@ -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
Host: %HOSTIP:%HTTPPORT
Accept: */*
-Content-Length: 1270
+Content-Length: 1264
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
@@ -61,7 +61,7 @@ bar foo ------------------------------24e78000bd32
-Content-Disposition: form-data; name="file2"; filename="test1133,a\"nd;.txt"
+Content-Disposition: form-data; name="file2"; filename="test1133,and;.txt"
Content-Type: text/plain
foo bar @@ -73,7 +73,7 @@ foo Content-Disposition: form-data; name="file3"
Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b
-Content-Disposition: attachment; filename="test1133,a\"nd;.txt"
+Content-Disposition: attachment; filename="test1133,and;.txt"
Content-Type: m/f
foo bar @@ -81,7 +81,7 @@ This is a bar foo bar foo -Content-Disposition: attachment; filename="test1133,a\"nd;.txt"
+Content-Disposition: attachment; filename="test1133,and;.txt"
Content-Type: text/plain
foo bar diff --git a/tests/data/test1158 b/tests/data/test1158 new file mode 100644 index 000000000..62adc579d --- /dev/null +++ b/tests/data/test1158 @@ -0,0 +1,98 @@ +<testcase> +<info> +<keywords> +HTTP +HTTP FORMPOST +</keywords> +</info> +# Server-side +<reply> +<data> +HTTP/1.1 200 OK
+Date: Thu, 09 Nov 2010 14:49:00 GMT
+Server: test-server/fake
+Content-Length: 10
+
+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
+User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3
+Host: %HOSTIP:%HTTPPORT
+Accept: */*
+Content-Length: 954
+Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
+
+------------------------------24e78000bd32
+Content-Disposition: form-data; name="file"; filename="test1158\".txt"
+Content-Type: mo/foo
+
+foo bar +This is a bar foo +bar +foo +
+------------------------------24e78000bd32
+Content-Disposition: form-data; name="file2"; filename="test1158\".txt"
+Content-Type: text/plain
+
+foo bar +This is a bar foo +bar +foo +
+------------------------------24e78000bd32
+Content-Disposition: form-data; name="file3"
+Content-Type: multipart/mixed; boundary=----------------------------7f0e85a48b0b
+
+Content-Disposition: attachment; filename="test1158\".txt"
+Content-Type: m/f
+
+foo bar +This is a bar foo +bar +foo +
+Content-Disposition: attachment; filename="test1158\".txt"
+Content-Type: text/plain
+
+foo bar +This is a bar foo +bar +foo +
+
+------------------------------24e78000bd32--
+</protocol> +</verify> +</testcase> |