diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2017-09-05 17:11:59 +0100 |
---|---|---|
committer | Patrick Monnerat <patrick@monnerat.net> | 2017-09-05 17:55:51 +0100 |
commit | 63ef436ea15dd93343a2040ffb7c3bb2c9681b87 (patch) | |
tree | 3d60cf99bb9f54b2511a711b7f2fb4dad15136fd /tests | |
parent | 3bbe894fd26114e6835c697008b61beeffd084bf (diff) |
mime: implement encoders.
curl_mime_encoder() is operational and documented.
curl tool -F option is extended with ";encoder=".
curl tool --libcurl option generates calls to curl_mime_encoder().
New encoder tests 648 & 649.
Test 1404 extended with an encoder specification.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test1404 | 8 | ||||
-rw-r--r-- | tests/data/test648 | 75 | ||||
-rw-r--r-- | tests/data/test649 | 72 |
4 files changed, 153 insertions, 4 deletions
diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 464faeeaf..d7ea5c951 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -78,7 +78,7 @@ test608 test609 test610 test611 test612 test613 test614 test615 test616 \ test617 test618 test619 test620 test621 test622 test623 test624 test625 \ test626 test627 test628 test629 test630 test631 test632 test633 test634 \ test635 test636 test637 test638 test639 test640 test641 test642 \ -test643 test644 test645 test646 test647 \ +test643 test644 test645 test646 test647 test648 test649 \ \ test700 test701 test702 test703 test704 test705 test706 test707 test708 \ test709 test710 test711 test712 test713 test714 test715 \ diff --git a/tests/data/test1404 b/tests/data/test1404 index a3ec66ef7..20dc01333 100644 --- a/tests/data/test1404 +++ b/tests/data/test1404 @@ -27,13 +27,13 @@ Connection: close http </server> <name> ---libcurl for HTTP RFC1867-type formposting - -F with three files, one with explicit type +--libcurl for HTTP RFC1867-type formposting - -F with 3 files, one with explicit type & encoder </name> <setenv> SSL_CERT_FILE= </setenv> <command> -http://%HOSTIP:%HTTPPORT/we/want/1404 -F name=value -F 'file=@log/test1404.txt,log/test1404.txt;type=magic/content,log/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/test1404.c +http://%HOSTIP:%HTTPPORT/we/want/1404 -F name=value -F 'file=@log/test1404.txt,log/test1404.txt;type=magic/content;encoder=8bit,log/test1404.txt;headers=X-testheader-1: header 1;headers=X-testheader-2: header 2' --libcurl log/test1404.c </command> # We create this file before the command is invoked! <file name="log/test1404.txt"> @@ -51,7 +51,7 @@ POST /we/want/1404 HTTP/1.1 User-Agent: curl/7.18.2 (i686-pc-linux-gnu) libcurl/7.18.2 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Host: %HOSTIP:%HTTPPORT
Accept: */*
-Content-Length: 849
+Content-Length: 882
Content-Type: multipart/form-data; boundary=----------------------------9ef8d6205763
------------------------------9ef8d6205763
@@ -70,6 +70,7 @@ dummy data ------------------------------9ef8d6205763
Content-Disposition: attachment; filename="test1404.txt"
Content-Type: magic/content
+Content-Transfer-Encoding: 8bit
dummy data @@ -131,6 +132,7 @@ int main(int argc, char *argv[]) curl_mime_filedata(part2, "log/test1404.txt"); part2 = curl_mime_addpart(mime2); curl_mime_filedata(part2, "log/test1404.txt"); + curl_mime_encoder(part2, "8bit"); curl_mime_type(part2, "magic/content"); part2 = curl_mime_addpart(mime2); curl_mime_filedata(part2, "log/test1404.txt"); diff --git a/tests/data/test648 b/tests/data/test648 new file mode 100644 index 000000000..cd8f02085 --- /dev/null +++ b/tests/data/test648 @@ -0,0 +1,75 @@ +<testcase> +<info> +<keywords> +SMTP +MULTIPART +</keywords> +</info> + +# +# Server-side +<reply> +</reply> + +# +# Client-side +<client> +<server> +smtp +</server> + <name> +SMTP multipart with transfer content encoders + </name> +<stdin> +From: different
+To: another
+
+body
+</stdin> + <command> +smtp://%HOSTIP:%SMTPPORT/648 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is the e-mail inline text with a very long line containing the special character = and that should be split by encoder.;headers=Content-disposition: "inline";encoder=quoted-printable' -F "=@log/test648.txt;encoder=base64" -H "From: different" -H "To: another" +</command> +<file name="log/test648.txt"> +This is an attached file. + +It may contain any type of data and will be encoded in base64 for transfer. +</file> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^--------------------------[a-z0-9]*/------------------------------/ +s/boundary=------------------------[a-z0-9]*/boundary=----------------------------/ +</strippart> +<protocol> +EHLO 648
+MAIL FROM:<sender@example.com>
+RCPT TO:<recipient@example.com>
+DATA
+QUIT
+</protocol> +<upload> +Content-Type: multipart/mixed; boundary=----------------------------
+Mime-Version: 1.0
+From: different
+To: another
+
+------------------------------
+Content-Transfer-Encoding: quoted-printable
+Content-disposition: "inline"
+
+This is the e-mail inline text with a very long line containing the special=
+ character =3D and that should be split by encoder.
+------------------------------
+Content-Disposition: attachment; filename="test648.txt"
+Content-Transfer-Encoding: base64
+
+VGhpcyBpcyBhbiBhdHRhY2hlZCBmaWxlLgoKSXQgbWF5IGNvbnRhaW4gYW55IHR5cGUgb2Yg
+ZGF0YSBhbmQgd2lsbCBiZSBlbmNvZGVkIGluIGJhc2U2NCBmb3IgdHJhbnNmZXIuCg==
+--------------------------------
+.
+</upload> +</verify> +</testcase> diff --git a/tests/data/test649 b/tests/data/test649 new file mode 100644 index 000000000..46c01cd00 --- /dev/null +++ b/tests/data/test649 @@ -0,0 +1,72 @@ +<testcase> +<info> +<keywords> +SMTP +MULTIPART +</keywords> +</info> + +# +# Server-side +<reply> +</reply> + +# +# Client-side +<client> +<server> +smtp +</server> + <name> +SMTP multipart with 7bit encoder error + </name> +<stdin> +From: different
+To: another
+
+body
+</stdin> + <command> +smtp://%HOSTIP:%SMTPPORT/649 --mail-rcpt recipient@example.com --mail-from sender@example.com -F '=This is valid;encoder=7bit' -F "=@log/test649.txt;encoder=7bit" -H "From: different" -H "To: another" +</command> +<file name="log/test649.txt"> +This is an attached file (in french: pièce jointe). + +It contains at least an 8-bit byte value. +</file> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^--------------------------[a-z0-9]*/------------------------------/ +s/boundary=------------------------[a-z0-9]*/boundary=----------------------------/ +</strippart> +<protocol> +EHLO 649
+MAIL FROM:<sender@example.com>
+RCPT TO:<recipient@example.com>
+DATA
+</protocol> +<upload nonewline="yes"> +Content-Type: multipart/mixed; boundary=----------------------------
+Mime-Version: 1.0
+From: different
+To: another
+
+------------------------------
+Content-Transfer-Encoding: 7bit
+
+This is valid
+------------------------------
+Content-Disposition: attachment; filename="test649.txt"
+Content-Transfer-Encoding: 7bit
+
+This is an attached file (in french: pi +</upload> +<errorcode> +26 +</errorcode> +</verify> +</testcase> |