mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-09-16 21:36:33 +00:00
Fix #20: Ensure required options are set
This commit is contained in:
@@ -52,7 +52,6 @@ var_dump($curl->response_headers);
|
||||
|
||||
```php
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLOPT_RETURNTRANSFER, TRUE);
|
||||
$curl->setOpt(CURLOPT_SSL_VERIFYPEER, FALSE);
|
||||
$curl->get('https://encrypted.example.com/');
|
||||
```
|
||||
|
||||
@@ -140,6 +140,17 @@ class Curl {
|
||||
|
||||
public function setOpt($option, $value, $_ch=null) {
|
||||
$ch = is_null($_ch) ? $this->curl : $_ch;
|
||||
|
||||
$required_options = array(
|
||||
CURLINFO_HEADER_OUT => 'CURLINFO_HEADER_OUT',
|
||||
CURLOPT_HEADER => 'CURLOPT_HEADER',
|
||||
CURLOPT_RETURNTRANSFER => 'CURLOPT_RETURNTRANSFER',
|
||||
);
|
||||
|
||||
if (in_array($option, array_keys($required_options), true) && !($value === true)) {
|
||||
trigger_error($required_options[$option] . ' is a required option', E_USER_WARNING);
|
||||
}
|
||||
|
||||
$this->_options[$option] = $value;
|
||||
return curl_setopt($ch, $option, $value);
|
||||
}
|
||||
|
||||
@@ -467,4 +467,28 @@ class CurlTest extends PHPUnit_Framework_TestCase {
|
||||
$curl->close();
|
||||
$this->assertFalse(is_resource($curl->curl));
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error_Warning
|
||||
*/
|
||||
public function testRequiredOptionCurlInfoHeaderOutEmitsWarning() {
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLINFO_HEADER_OUT, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error_Warning
|
||||
*/
|
||||
public function testRequiredOptionCurlOptHeaderEmitsWarning() {
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLOPT_HEADER, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* @expectedException PHPUnit_Framework_Error_Warning
|
||||
*/
|
||||
public function testRequiredOptionCurlOptReturnTransferEmitsWarning() {
|
||||
$curl = new Curl();
|
||||
$curl->setOpt(CURLOPT_RETURNTRANSFER, false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user