]> granicus.if.org Git - php/commitdiff
Add new test for CURLOPT_POSTFIELDS
authorPierrick Charron <pierrick@php.net>
Wed, 7 Dec 2011 16:32:50 +0000 (16:32 +0000)
committerPierrick Charron <pierrick@php.net>
Wed, 7 Dec 2011 16:32:50 +0000 (16:32 +0000)
ext/curl/tests/bug27023.phpt [new file with mode: 0644]
ext/curl/tests/responder/get.php

diff --git a/ext/curl/tests/bug27023.phpt b/ext/curl/tests/bug27023.phpt
new file mode 100644 (file)
index 0000000..ca42c60
--- /dev/null
@@ -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"
index e77faa57d9a4d0e7d5b80f78897d8cb8d9e22e2b..daffdfca08f6b0f494bbc833d861c01248d95480 100644 (file)
     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!";