mirror of
https://github.com/php-curl-class/php-curl-class.git
synced 2026-09-06 15:58:10 +00:00
Fix MultiCurl::setCookieString()
This commit is contained in:
+8
-5
@@ -1936,11 +1936,14 @@ class Curl
|
||||
*/
|
||||
private function buildCookies()
|
||||
{
|
||||
// Avoid using http_build_query() as unnecessary encoding is performed.
|
||||
// http_build_query($this->cookies, '', '; ');
|
||||
$this->setOpt(CURLOPT_COOKIE, implode('; ', array_map(function ($k, $v) {
|
||||
return $k . '=' . $v;
|
||||
}, array_keys($this->cookies), array_values($this->cookies))));
|
||||
// Avoid changing CURLOPT_COOKIE if there are no cookies set.
|
||||
if (count($this->cookies)) {
|
||||
// Avoid using http_build_query() as unnecessary encoding is performed.
|
||||
// http_build_query($this->cookies, '', '; ');
|
||||
$this->setOpt(CURLOPT_COOKIE, implode('; ', array_map(function ($k, $v) {
|
||||
return $k . '=' . $v;
|
||||
}, array_keys($this->cookies), array_values($this->cookies))));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2310,6 +2310,73 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase
|
||||
$this->assertEquals('yummy', $get_2->responseCookies['mycookie']);
|
||||
}
|
||||
|
||||
public function testSetCookieStringMultiCurl()
|
||||
{
|
||||
$cookie_string = 'fruit=apple; color=red';
|
||||
|
||||
$multi_curl = new MultiCurl();
|
||||
$multi_curl->setHeader('X-DEBUG-TEST', 'cookie');
|
||||
$multi_curl->setCookieString($cookie_string);
|
||||
|
||||
$get_1 = $multi_curl->addGet(Test::TEST_URL);
|
||||
$get_1->complete(function ($instance) use ($cookie_string) {
|
||||
\PHPUnit\Framework\Assert::assertEquals('fruit=apple&color=red', $instance->response);
|
||||
\PHPUnit\Framework\Assert::assertEquals($cookie_string, $instance->getOpt(CURLOPT_COOKIE));
|
||||
});
|
||||
|
||||
$multi_curl->start();
|
||||
}
|
||||
|
||||
public function testSetCookieStringCurl()
|
||||
{
|
||||
$cookie_string = 'fruit=apple; color=red';
|
||||
|
||||
$multi_curl = new MultiCurl();
|
||||
$multi_curl->setHeader('X-DEBUG-TEST', 'cookie');
|
||||
|
||||
$get_1 = $multi_curl->addGet(Test::TEST_URL);
|
||||
$get_1->setCookieString($cookie_string);
|
||||
$get_1->complete(function ($instance) use ($cookie_string) {
|
||||
\PHPUnit\Framework\Assert::assertEquals('fruit=apple&color=red', $instance->response);
|
||||
\PHPUnit\Framework\Assert::assertEquals($cookie_string, $instance->getOpt(CURLOPT_COOKIE));
|
||||
});
|
||||
|
||||
$multi_curl->start();
|
||||
}
|
||||
|
||||
public function testSetCookieString()
|
||||
{
|
||||
$cookie_string_1 = 'fruit=apple; color=red';
|
||||
$cookie_string_2 = 'fruit=banana; color=yellow';
|
||||
$cookie_string_3 = 'fruit=orange; color=orange';
|
||||
|
||||
$multi_curl = new MultiCurl();
|
||||
$multi_curl->setHeader('X-DEBUG-TEST', 'cookie');
|
||||
$multi_curl->setCookieString($cookie_string_1);
|
||||
|
||||
$get_1 = $multi_curl->addGet(Test::TEST_URL);
|
||||
$get_1->complete(function ($instance) use ($cookie_string_1) {
|
||||
\PHPUnit\Framework\Assert::assertEquals('fruit=apple&color=red', $instance->response);
|
||||
\PHPUnit\Framework\Assert::assertEquals($cookie_string_1, $instance->getOpt(CURLOPT_COOKIE));
|
||||
});
|
||||
|
||||
$get_2 = $multi_curl->addGet(Test::TEST_URL);
|
||||
$get_2->setCookieString($cookie_string_2);
|
||||
$get_2->complete(function ($instance) use ($cookie_string_2) {
|
||||
\PHPUnit\Framework\Assert::assertEquals('fruit=banana&color=yellow', $instance->response);
|
||||
\PHPUnit\Framework\Assert::assertEquals($cookie_string_2, $instance->getOpt(CURLOPT_COOKIE));
|
||||
});
|
||||
|
||||
$get_3 = $multi_curl->addGet(Test::TEST_URL);
|
||||
$get_3->setCookieString($cookie_string_3);
|
||||
$get_3->complete(function ($instance) use ($cookie_string_3) {
|
||||
\PHPUnit\Framework\Assert::assertEquals('fruit=orange&color=orange', $instance->response);
|
||||
\PHPUnit\Framework\Assert::assertEquals($cookie_string_3, $instance->getOpt(CURLOPT_COOKIE));
|
||||
});
|
||||
|
||||
$multi_curl->start();
|
||||
}
|
||||
|
||||
public function testJsonRequest()
|
||||
{
|
||||
foreach ([
|
||||
|
||||
Reference in New Issue
Block a user