From ab407d6b25929530208821913247dfbe2e9fa987 Mon Sep 17 00:00:00 2001 From: Zach Borboa Date: Sat, 9 May 2020 09:19:35 -0700 Subject: [PATCH] Implement disableTimeout() Implement Curl::disableTimeout() and MultiCurl::disableTimeout() --- README.md | 2 ++ src/Curl/Curl.php | 10 ++++++++++ src/Curl/MultiCurl.php | 10 ++++++++++ tests/PHPCurlClass/PHPCurlClassTest.php | 8 ++++++++ tests/PHPCurlClass/PHPMultiCurlClassTest.php | 11 +++++++++++ 5 files changed, 41 insertions(+) diff --git a/README.md b/README.md index f65a8cc..1f37288 100644 --- a/README.md +++ b/README.md @@ -202,6 +202,7 @@ Curl::call() Curl::close() Curl::complete($callback) Curl::delete($url, $query_parameters = array(), $data = array()) +Curl::disableTimeout() Curl::download($url, $mixed_filename) Curl::error($callback) Curl::exec($ch = null) @@ -305,6 +306,7 @@ MultiCurl::addSearch($url, $data = array()) MultiCurl::beforeSend($callback) MultiCurl::close() MultiCurl::complete($callback) +MultiCurl::disableTimeout() MultiCurl::error($callback) MultiCurl::getOpt($option) MultiCurl::removeHeader($key) diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index a7e45b6..d45091e 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -1191,6 +1191,16 @@ class Curl $this->setOpt(CURLOPT_TIMEOUT, $seconds); } + /** + * Disable Timeout + * + * @access public + */ + public function disableTimeout() + { + $this->setTimeout(null); + } + /** * Set Url * diff --git a/src/Curl/MultiCurl.php b/src/Curl/MultiCurl.php index ef9fb03..973bbad 100644 --- a/src/Curl/MultiCurl.php +++ b/src/Curl/MultiCurl.php @@ -765,6 +765,16 @@ class MultiCurl $this->setOpt(CURLOPT_TIMEOUT, $seconds); } + /** + * Disable Timeout + * + * @access public + */ + public function disableTimeout() + { + $this->setTimeout(null); + } + /** * Set Url * diff --git a/tests/PHPCurlClass/PHPCurlClassTest.php b/tests/PHPCurlClass/PHPCurlClassTest.php index abfc4c3..f5f8c21 100644 --- a/tests/PHPCurlClass/PHPCurlClassTest.php +++ b/tests/PHPCurlClass/PHPCurlClassTest.php @@ -3902,4 +3902,12 @@ class CurlTest extends \PHPUnit\Framework\TestCase $curl->setRange($range); $this->assertEquals($range, $curl->getOpt(CURLOPT_RANGE)); } + + public function testDisableTimeout() + { + $curl = new Curl(); + $this->assertEquals(Curl::DEFAULT_TIMEOUT, $curl->getOpt(CURLOPT_TIMEOUT)); + $curl->disableTimeout(); + $this->assertNull($curl->getOpt(CURLOPT_TIMEOUT)); + } } diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index 5c379c8..639c67d 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -3410,4 +3410,15 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase $multi_curl->setRange($range); $this->assertEquals($range, $multi_curl->getOpt(CURLOPT_RANGE)); } + + public function testDisableTimeout() + { + $multi_curl = new MultiCurl(); + $multi_curl->disableTimeout(); + $get = $multi_curl->addGet(Test::TEST_URL); + $get->complete(function ($instance) { + \PHPUnit\Framework\Assert::assertNull($instance->getOpt(CURLOPT_TIMEOUT)); + }); + $multi_curl->start(); + } }