diff options
Diffstat (limited to 'ext/curl/tests/curl_string_file_upload.phpt')
-rw-r--r-- | ext/curl/tests/curl_string_file_upload.phpt | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/ext/curl/tests/curl_string_file_upload.phpt b/ext/curl/tests/curl_string_file_upload.phpt new file mode 100644 index 0000000000..65a041e146 --- /dev/null +++ b/ext/curl/tests/curl_string_file_upload.phpt @@ -0,0 +1,86 @@ +--TEST-- +CURL file uploading from string +--SKIPIF-- +<?php include 'skipif.inc'; ?> +--FILE-- +<?php + +function testcurl($ch, $postname, $data, $mime = null) +{ + if (is_null($mime)) { + // for default mime value + $file = new CURLStringFile($data, $postname); + } else { + $file = new CURLStringFile($data, $postname, $mime); + } + curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file)); + var_dump(curl_exec($ch)); +} + +include 'server.inc'; +$host = curl_cli_server_start(); +$ch = curl_init(); +curl_setopt($ch, CURLOPT_URL, "{$host}/get.php?test=string_file"); +curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); + +$data = "test\0test"; +var_dump(md5($data)); +testcurl($ch, 'foo.txt', $data); +testcurl($ch, 'foo.txt', $data, 'text/plain'); +testcurl($ch, '', $data); +testcurl($ch, 'foo.txt', ''); +testcurl($ch, "foo.txt\0broken_string", $data, "text/plain\0broken_string"); + +// properties +$file = new CURLStringFile($data, 'foo.txt'); +$file->mime = 'text/plain'; +var_dump($file->mime); +var_dump($file->postname); +var_dump(md5($file->data)); +curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file)); +var_dump(curl_exec($ch)); + +// serialization / deserialization +$old = new CURLStringFile($data, 'foo.txt', 'text/plain'); +$serialized = serialize($old); +$new = unserialize($serialized); +curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $new)); +var_dump(curl_exec($ch)); + +// destroy object before send request +$file = new CURLStringFile($data, 'foo.txt', 'text/plain'); +curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file)); +unset($file); +var_dump(curl_exec($ch)); + +// clone curl handler +$file = new CURLStringFile($data, 'foo.txt', 'text/plain'); +curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file)); +$ch2 = clone $ch; +var_dump(curl_exec($ch2)); + +// properties are references + +$file = new CURLStringFile($data, 'foo.txt', 'text/plain'); +$data =& $file->data; +$postname =& $file->postname; +$mime =& $file->mime; +curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => $file)); +var_dump(curl_exec($ch)); + +?> +--EXPECTF-- +string(%d) "62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|application/octet-stream|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "error:4" +string(%d) "foo.txt|application/octet-stream|d41d8cd98f00b204e9800998ecf8427e" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "text/plain" +string(%d) "foo.txt" +string(%d) "62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" +string(%d) "foo.txt|text/plain|62942c05ed0d1b501c4afe6dc1c4db1b" |