Fixes failing spec around CurlFile in 5.5 php and also adds additional spec
This commit is contained in:
@@ -133,7 +133,7 @@ class Unirest
|
|||||||
* This function is useful for serializing multidimensional arrays, and avoid getting
|
* This function is useful for serializing multidimensional arrays, and avoid getting
|
||||||
* the "Array to string conversion" notice
|
* the "Array to string conversion" notice
|
||||||
*/
|
*/
|
||||||
private static function http_build_query_for_curl($arrays, &$new = array(), $prefix = null)
|
public static function http_build_query_for_curl($arrays, &$new = array(), $prefix = null)
|
||||||
{
|
{
|
||||||
if (is_object($arrays)) {
|
if (is_object($arrays)) {
|
||||||
$arrays = get_object_vars($arrays);
|
$arrays = get_object_vars($arrays);
|
||||||
@@ -141,7 +141,7 @@ class Unirest
|
|||||||
|
|
||||||
foreach ($arrays AS $key => $value) {
|
foreach ($arrays AS $key => $value) {
|
||||||
$k = isset($prefix) ? $prefix . '[' . $key . ']' : $key;
|
$k = isset($prefix) ? $prefix . '[' . $key . ']' : $key;
|
||||||
if (is_array($value) OR is_object($value)) {
|
if (!$value instanceof CURLFile AND (is_array($value) OR is_object($value))) {
|
||||||
Unirest::http_build_query_for_curl($value, $new, $k);
|
Unirest::http_build_query_for_curl($value, $new, $k);
|
||||||
} else {
|
} else {
|
||||||
$new[$k] = $value;
|
$new[$k] = $value;
|
||||||
|
|||||||
@@ -204,6 +204,23 @@ class UnirestTest extends UnitTestCase
|
|||||||
$this->assertEqual("Mark", $form->name);
|
$this->assertEqual("Mark", $form->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testUploadIfFilePartOfData()
|
||||||
|
{
|
||||||
|
$response = Unirest::post("http://httpbin.org/post", array(
|
||||||
|
"Accept" => "application/json"
|
||||||
|
), array(
|
||||||
|
"name" => "Mark",
|
||||||
|
"files[owl.gif]" => Unirest::file(dirname(__FILE__) . "/test_upload.txt")
|
||||||
|
));
|
||||||
|
$this->assertEqual(200, $response->code);
|
||||||
|
|
||||||
|
//$files = $response->body->files;
|
||||||
|
//$this->assertEqual("This is a test", $files->file);
|
||||||
|
|
||||||
|
$form = $response->body->form;
|
||||||
|
$this->assertEqual("Mark", $form->name);
|
||||||
|
}
|
||||||
|
|
||||||
public function testPostMultidimensionalArray()
|
public function testPostMultidimensionalArray()
|
||||||
{
|
{
|
||||||
$response = Unirest::post("http://httpbin.org/post", array(
|
$response = Unirest::post("http://httpbin.org/post", array(
|
||||||
@@ -343,4 +360,15 @@ class UnirestTest extends UnitTestCase
|
|||||||
$this->assertEqual("ciao", $headers->{'User-Agent'});
|
$this->assertEqual("ciao", $headers->{'User-Agent'});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testHttpBuildQueryWhenCurlFile()
|
||||||
|
{
|
||||||
|
$file = Unirest::file(dirname(__FILE__) . "/test_upload.txt");
|
||||||
|
$body = array(
|
||||||
|
"to" => "mail@mailinator.com",
|
||||||
|
"from" => "mail@mailinator.com",
|
||||||
|
"file" => $file
|
||||||
|
);
|
||||||
|
Unirest::http_build_query_for_curl($body, $postBody);
|
||||||
|
$this->assertEqual($postBody['file'], $file);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user