From 1d0f6cfc84479727e7dba09390ea6cf59f070b8b Mon Sep 17 00:00:00 2001 From: Zach Borboa Date: Tue, 14 Jan 2020 20:36:19 -0800 Subject: [PATCH] Fix #609: Implement Curl::setFile() and MultiCurl::setFile() --- src/Curl/Curl.php | 11 +++++++++++ src/Curl/MultiCurl.php | 11 +++++++++++ tests/PHPCurlClass/PHPCurlClassTest.php | 9 +++++++++ tests/PHPCurlClass/PHPMultiCurlClassTest.php | 10 ++++++++++ 4 files changed, 41 insertions(+) diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index c1f61dd..07eb77d 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -925,6 +925,17 @@ class Curl $this->setUserAgent($user_agent); } + /** + * Set File + * + * @access public + * @param $file + */ + public function setFile($file) + { + $this->setOpt(CURLOPT_FILE, $file); + } + /** * Set Header * diff --git a/src/Curl/MultiCurl.php b/src/Curl/MultiCurl.php index 175f50b..980dfa6 100644 --- a/src/Curl/MultiCurl.php +++ b/src/Curl/MultiCurl.php @@ -517,6 +517,17 @@ class MultiCurl $this->setOpt(CURLOPT_COOKIEJAR, $cookie_jar); } + /** + * Set File + * + * @access public + * @param $file + */ + public function setFile($file) + { + $this->setOpt(CURLOPT_FILE, $file); + } + /** * Set Header * diff --git a/tests/PHPCurlClass/PHPCurlClassTest.php b/tests/PHPCurlClass/PHPCurlClassTest.php index 50ce07f..2620d0a 100644 --- a/tests/PHPCurlClass/PHPCurlClassTest.php +++ b/tests/PHPCurlClass/PHPCurlClassTest.php @@ -3880,4 +3880,13 @@ class CurlTest extends \PHPUnit\Framework\TestCase $test->curl->setHeader('Content-Type', 'application/json'); $this->assertEquals($expected_response, $test->server('post_json', 'POST', $user)); } + + public function testSetFile() + { + $file = STDOUT; + + $curl = new Curl(); + $curl->setFile(STDOUT); + $this->assertEquals($file, $curl->getOpt(CURLOPT_FILE)); + } } diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index 1cb06b8..bf66767 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -3390,4 +3390,14 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase // Ensure request with specific proxy is not set to one of the random proxies. $this->assertNotContains($get_2->getOpt(CURLOPT_PROXY), $proxies); } + + public function testSetFile() + { + $file = STDOUT; + + $multi_curl = new MultiCurl(); + $this->assertNull($multi_curl->getOpt(CURLOPT_FILE)); + $multi_curl->setFile(STDOUT); + $this->assertEquals($file, $multi_curl->getOpt(CURLOPT_FILE)); + } }