pierrick                                 Wed, 07 Dec 2011 16:32:50 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=320584

Log:
Add new test for CURLOPT_POSTFIELDS

Changed paths:
    A   php/php-src/branches/PHP_5_3/ext/curl/tests/bug27023.phpt
    U   php/php-src/branches/PHP_5_3/ext/curl/tests/responder/get.php
    A   php/php-src/branches/PHP_5_4/ext/curl/tests/bug27023.phpt
    U   php/php-src/branches/PHP_5_4/ext/curl/tests/responder/get.php
    A   php/php-src/trunk/ext/curl/tests/bug27023.phpt
    U   php/php-src/trunk/ext/curl/tests/responder/get.php

Added: php/php-src/branches/PHP_5_3/ext/curl/tests/bug27023.phpt
===================================================================
--- php/php-src/branches/PHP_5_3/ext/curl/tests/bug27023.phpt                   
        (rev 0)
+++ php/php-src/branches/PHP_5_3/ext/curl/tests/bug27023.phpt   2011-12-07 
16:32:50 UTC (rev 320584)
@@ -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"

Modified: php/php-src/branches/PHP_5_3/ext/curl/tests/responder/get.php
===================================================================
--- php/php-src/branches/PHP_5_3/ext/curl/tests/responder/get.php       
2011-12-07 16:27:28 UTC (rev 320583)
+++ php/php-src/branches/PHP_5_3/ext/curl/tests/responder/get.php       
2011-12-07 16:32:50 UTC (rev 320584)
@@ -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!";

Added: php/php-src/branches/PHP_5_4/ext/curl/tests/bug27023.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/ext/curl/tests/bug27023.phpt                   
        (rev 0)
+++ php/php-src/branches/PHP_5_4/ext/curl/tests/bug27023.phpt   2011-12-07 
16:32:50 UTC (rev 320584)
@@ -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"

Modified: php/php-src/branches/PHP_5_4/ext/curl/tests/responder/get.php
===================================================================
--- php/php-src/branches/PHP_5_4/ext/curl/tests/responder/get.php       
2011-12-07 16:27:28 UTC (rev 320583)
+++ php/php-src/branches/PHP_5_4/ext/curl/tests/responder/get.php       
2011-12-07 16:32:50 UTC (rev 320584)
@@ -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!";

Added: php/php-src/trunk/ext/curl/tests/bug27023.phpt
===================================================================
--- php/php-src/trunk/ext/curl/tests/bug27023.phpt                              
(rev 0)
+++ php/php-src/trunk/ext/curl/tests/bug27023.phpt      2011-12-07 16:32:50 UTC 
(rev 320584)
@@ -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"

Modified: php/php-src/trunk/ext/curl/tests/responder/get.php
===================================================================
--- php/php-src/trunk/ext/curl/tests/responder/get.php  2011-12-07 16:27:28 UTC 
(rev 320583)
+++ php/php-src/trunk/ext/curl/tests/responder/get.php  2011-12-07 16:32:50 UTC 
(rev 320584)
@@ -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!";

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to