diff options
author | Pierrick Charron <pierrick@php.net> | 2011-12-07 16:32:50 +0000 |
---|---|---|
committer | Pierrick Charron <pierrick@php.net> | 2011-12-07 16:32:50 +0000 |
commit | 25081046d7cb750243f36475b5345fbfaa10f4bd (patch) | |
tree | 7a43375a7e58276662124140477808bc4b60f2ed | |
parent | d35096c175242ad710380ddc7bbae0b01dda2adc (diff) | |
download | php-git-25081046d7cb750243f36475b5345fbfaa10f4bd.tar.gz |
Add new test for CURLOPT_POSTFIELDS
-rw-r--r-- | ext/curl/tests/bug27023.phpt | 48 | ||||
-rw-r--r-- | ext/curl/tests/responder/get.php | 5 |
2 files changed, 53 insertions, 0 deletions
diff --git a/ext/curl/tests/bug27023.phpt b/ext/curl/tests/bug27023.phpt new file mode 100644 index 0000000000..ca42c60927 --- /dev/null +++ b/ext/curl/tests/bug27023.phpt @@ -0,0 +1,48 @@ +--TEST-- +Bug #27023 (CURLOPT_POSTFIELDS does not parse content types for files) +--SKIPIF-- +<?php +if (!extension_loaded("curl")) { + exit("skip curl extension not loaded"); +} +if (false === getenv('PHP_CURL_HTTP_REMOTE_SERVER')) { + exit("skip PHP_CURL_HTTP_REMOTE_SERVER env variable is not defined"); +} +?> +--FILE-- +<?php + +$host = getenv('PHP_CURL_HTTP_REMOTE_SERVER'); +$ch = curl_init(); +curl_setopt($ch, CURLOPT_URL, "{$host}/get.php?test=file"); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + +$params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt'); +curl_setopt($ch, CURLOPT_POSTFIELDS, $params); +var_dump(curl_exec($ch)); + +$params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt;type=text/plain'); +curl_setopt($ch, CURLOPT_POSTFIELDS, $params); +var_dump(curl_exec($ch)); + +$params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt;filename=foo.txt'); +curl_setopt($ch, CURLOPT_POSTFIELDS, $params); +var_dump(curl_exec($ch)); + +$params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt;type=text/plain;filename=foo.txt'); +curl_setopt($ch, CURLOPT_POSTFIELDS, $params); +var_dump(curl_exec($ch)); + +$params = array('file' => '@' . __DIR__ . '/curl_testdata1.txt;type=text/plain;filename=foo.txt'); +curl_setopt($ch, CURLOPT_POSTFIELDS, $params); +var_dump(curl_exec($ch)); + + +curl_close($ch); +?> +--EXPECTF-- +string(%d) "curl_testdata1.txt|application/octet-stream" +string(%d) "curl_testdata1.txt|text/plain" +string(%d) "foo.txt|application/octet-stream" +string(%d) "foo.txt|text/plain" +string(%d) "foo.txt|text/plain" diff --git a/ext/curl/tests/responder/get.php b/ext/curl/tests/responder/get.php index e77faa57d9..daffdfca08 100644 --- a/ext/curl/tests/responder/get.php +++ b/ext/curl/tests/responder/get.php @@ -25,6 +25,11 @@ case 'contenttype': header('Content-Type: text/plain;charset=utf-8'); break; + case 'file': + if (isset($_FILES['file'])) { + echo $_FILES['file']['name'] . '|' . $_FILES['file']['type']; + } + break; default: echo "Hello World!\n"; echo "Hello World!"; |