From 0401734dfd39617a42318295a6e54064b40b2502 Mon Sep 17 00:00:00 2001 From: Patrick Monnerat Date: Thu, 12 Oct 2017 19:36:16 +0100 Subject: mime: keep "text/plain" content type if user-specified. Include test cases in 554, 587, 650. Fixes https://github.com/curl/curl/issues/1986 --- tests/data/test554 | 6 ++++-- tests/data/test587 | 2 +- tests/data/test650 | 9 +++++---- tests/libtest/lib554.c | 9 +++++---- tests/libtest/lib650.c | 15 ++++++++------- 5 files changed, 23 insertions(+), 18 deletions(-) (limited to 'tests') diff --git a/tests/data/test554 b/tests/data/test554 index ce4a14dc4..24d9c0468 100644 --- a/tests/data/test554 +++ b/tests/data/test554 @@ -68,7 +68,7 @@ s/boundary=------------------------[a-z0-9]*/boundary=-------------------------- POST /554 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* -Content-Length: 718 +Content-Length: 744 Content-Type: multipart/form-data; boundary=---------------------------- ------------------------------ @@ -87,6 +87,7 @@ Content-Disposition: form-data; name="filename" postit2.c ------------------------------ Content-Disposition: form-data; name="submit" +Content-Type: text/plain send ------------------------------ @@ -98,7 +99,7 @@ blah blah POST /554 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* -Content-Length: 732 +Content-Length: 758 Content-Type: multipart/form-data; boundary=---------------------------- ------------------------------ @@ -117,6 +118,7 @@ Content-Disposition: form-data; name="filename" postit2.c ------------------------------ Content-Disposition: form-data; name="submit" +Content-Type: text/plain send ------------------------------ diff --git a/tests/data/test587 b/tests/data/test587 index 5a845d431..0d9530e93 100644 --- a/tests/data/test587 +++ b/tests/data/test587 @@ -43,7 +43,7 @@ s/boundary=------------------------[a-z0-9]*/boundary=-------------------------- POST /587 HTTP/1.1 Host: %HOSTIP:%HTTPPORT Accept: */* -Content-Length: 718 +Content-Length: 744 Content-Type: multipart/form-data; boundary=---------------------------- ------------------------------ diff --git a/tests/data/test650 b/tests/data/test650 index e07d4c10b..1a06064c7 100644 --- a/tests/data/test650 +++ b/tests/data/test650 @@ -63,9 +63,12 @@ Transfer-Encoding: chunked Content-Type: multipart/form-data; boundary=---------------------------- Expect: 100-continue -5f0 +60a ------------------------------ Content-Disposition: form-data; name="fieldname" +Content-Type: text/plain +X-customheader-1: Header 1 data +X-customheader-2: Header 2 data this is what we post to the silly web server ------------------------------ @@ -98,15 +101,13 @@ This is data from a file. ------------------------------ Content-Disposition: form-data; name="filecontents" -X-customheader-1: Header 1 data -X-customheader-2: Header 2 data This is data from a file. ------------------------------ Content-Disposition: form-data; name="formlength" -1341 +1367 ------------------------------ Content-Disposition: form-data; name="standardinput" Content-Type: application/octet-stream diff --git a/tests/libtest/lib554.c b/tests/libtest/lib554.c index 936d0a10a..cc21d245b 100644 --- a/tests/libtest/lib554.c +++ b/tests/libtest/lib554.c @@ -117,7 +117,7 @@ static int once(char *URL, bool oldstyle) CURLFORM_END); if(formrc) - printf("curl_formadd(1) = %d\n", (int)formrc); + printf("curl_formadd(2) = %d\n", (int)formrc); /* Fill in the filename field */ formrc = curl_formadd(&formpost, @@ -134,7 +134,7 @@ static int once(char *URL, bool oldstyle) CURLFORM_END); if(formrc) - printf("curl_formadd(2) = %d\n", (int)formrc); + printf("curl_formadd(3) = %d\n", (int)formrc); /* Fill in a submit field too */ formrc = curl_formadd(&formpost, @@ -147,10 +147,11 @@ static int once(char *URL, bool oldstyle) #else CURLFORM_COPYCONTENTS, "send", #endif + CURLFORM_CONTENTTYPE, "text/plain", CURLFORM_END); if(formrc) - printf("curl_formadd(3) = %d\n", (int)formrc); + printf("curl_formadd(4) = %d\n", (int)formrc); formrc = curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "somename", @@ -160,7 +161,7 @@ static int once(char *URL, bool oldstyle) CURLFORM_END); if(formrc) - printf("curl_formadd(4) = %d\n", (int)formrc); + printf("curl_formadd(5) = %d\n", (int)formrc); curl = curl_easy_init(); if(!curl) { diff --git a/tests/libtest/lib650.c b/tests/libtest/lib650.c index 130ef1e77..60a2e9f1d 100644 --- a/tests/libtest/lib650.c +++ b/tests/libtest/lib650.c @@ -68,10 +68,14 @@ int test(char *URL) return TEST_ERR_MAJOR_BAD; } - /* Check proper name and data copying. */ + /* Check proper name and data copying, as well as headers. */ + headers = curl_slist_append(headers, "X-customheader-1: Header 1 data"); + headers = curl_slist_append(headers, "X-customheader-2: Header 2 data"); + headers = curl_slist_append(headers, "Content-Type: text/plain"); formrc = curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, &name, CURLFORM_COPYCONTENTS, &data, + CURLFORM_CONTENTHEADER, headers, CURLFORM_END); if(formrc) @@ -113,18 +117,15 @@ int test(char *URL) if(formrc) printf("curl_formadd(3) = %d\n", (int) formrc); - /* Check data from file content and headers. */ - headers = curl_slist_append(headers, "X-customheader-1: Header 1 data"); - headers = curl_slist_append(headers, "X-customheader-2: Header 2 data"); + /* Check data from file content. */ formrc = curl_formadd(&formpost, &lastptr, CURLFORM_COPYNAME, "filecontents", CURLFORM_FILECONTENT, libtest_arg2, - CURLFORM_CONTENTHEADER, headers, CURLFORM_END); if(formrc) - printf("curl_formadd(3) = %d\n", (int) formrc); + printf("curl_formadd(4) = %d\n", (int) formrc); /* Measure the current form length. * This is done before including stdin data because we want to reuse it @@ -148,7 +149,7 @@ int test(char *URL) CURLFORM_END); if(formrc) - printf("curl_formadd(4) = %d\n", (int) formrc); + printf("curl_formadd(5) = %d\n", (int) formrc); curl = curl_easy_init(); if(!curl) { -- cgit v1.2.3