Merge pull request #373 from zachborboa/master

Use explicit argument separator when building url
This commit is contained in:
Zach Borboa
2016-08-12 02:17:58 -07:00
committed by GitHub
3 changed files with 28 additions and 1 deletions
+2
View File
@@ -173,6 +173,8 @@ $multi_curl->addGet('https://www.bing.com/search', array(
$multi_curl->start(); // Blocks until all items in the queue have been processed.
```
More examples are available under [/examples](https://github.com/php-curl-class/php-curl-class/tree/master/examples).
### Available Methods
```php
Curl::__construct($base_url = null)
+1 -1
View File
@@ -1094,7 +1094,7 @@ class Curl
*/
private function buildURL($url, $data = array())
{
return $url . (empty($data) ? '' : '?' . http_build_query($data));
return $url . (empty($data) ? '' : '?' . http_build_query($data, '', '&'));
}
/**
+25
View File
@@ -2807,4 +2807,29 @@ class CurlTest extends PHPUnit_Framework_TestCase
$this->assertFalse(isset($options[CURLOPT_COOKIE]));
}
public function testBuildUrlArgSeparator()
{
$base_url = 'https://www.example.com/path';
$data = array(
'arg' => 'value',
'another' => 'one',
);
$expected_url = $base_url . '?arg=value&another=one';
foreach (array(false, '&', '&') as $arg_separator) {
if ($arg_separator) {
ini_set('arg_separator.output', $arg_separator);
}
$curl = new Curl();
$reflector = new ReflectionObject($curl);
$method = $reflector->getMethod('buildURL');
$method->setAccessible(true);
$actual_url = $method->invoke($curl, $base_url, $data);
$this->assertEquals($expected_url, $actual_url);
}
}
}