Implement MultiCurl::setCookies()

This commit is contained in:
Zach Borboa
2016-12-23 00:20:51 -08:00
parent 296345b0a2
commit 7b5dd71bd5
3 changed files with 60 additions and 1 deletions
+1
View File
@@ -270,6 +270,7 @@ MultiCurl::setCookie($key, $value)
MultiCurl::setCookieFile($cookie_file)
MultiCurl::setCookieJar($cookie_jar)
MultiCurl::setCookieString($string)
MultiCurl::setCookies($cookies)
MultiCurl::setDigestAuthentication($username, $password = '')
MultiCurl::setHeader($key, $value)
MultiCurl::setHeaders($headers)
+13
View File
@@ -413,6 +413,19 @@ class MultiCurl
$this->cookies[$key] = $value;
}
/**
* Set Cookies
*
* @access public
* @param $cookies
*/
public function setCookies($cookies)
{
foreach ($cookies as $key => $value) {
$this->cookies[$key] = $value;
}
}
/**
* Set Port
*
+46 -1
View File
@@ -1999,7 +1999,7 @@ class MultiCurlTest extends PHPUnit_Framework_TestCase
$multi_curl->start();
}
public function testCookies()
public function testSetCookie()
{
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'setcookie');
@@ -2034,6 +2034,51 @@ class MultiCurlTest extends PHPUnit_Framework_TestCase
$this->assertEquals('yummy', $get_2->responseCookies['mycookie']);
}
public function testSetCookies()
{
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'setcookie');
$multi_curl->setCookies(array(
'mycookie' => 'yum',
'cookie-for-all-before' => 'a',
));
$get_1 = $multi_curl->addGet(Test::TEST_URL);
$get_1->setCookies(array(
'cookie-for-1st-request' => '1',
));
$get_1->complete(function ($instance) {
PHPUnit_Framework_Assert::assertEquals('yum', $instance->responseCookies['mycookie']);
PHPUnit_Framework_Assert::assertEquals('a', $instance->responseCookies['cookie-for-all-before']);
PHPUnit_Framework_Assert::assertEquals('b', $instance->responseCookies['cookie-for-all-after']);
PHPUnit_Framework_Assert::assertEquals('1', $instance->responseCookies['cookie-for-1st-request']);
});
$get_2 = $multi_curl->addGet(Test::TEST_URL);
$get_2->setCookies(array(
'cookie-for-2nd-request' => '2',
));
$get_2->beforeSend(function ($instance) {
$instance->setCookies(array(
'mycookie' => 'yummy',
));
});
$get_2->complete(function ($instance) {
PHPUnit_Framework_Assert::assertEquals('yummy', $instance->responseCookies['mycookie']);
PHPUnit_Framework_Assert::assertEquals('a', $instance->responseCookies['cookie-for-all-before']);
PHPUnit_Framework_Assert::assertEquals('b', $instance->responseCookies['cookie-for-all-after']);
PHPUnit_Framework_Assert::assertEquals('2', $instance->responseCookies['cookie-for-2nd-request']);
});
$multi_curl->setCookies(array(
'cookie-for-all-after' => 'b',
));
$multi_curl->start();
$this->assertEquals('yum', $get_1->responseCookies['mycookie']);
$this->assertEquals('yummy', $get_2->responseCookies['mycookie']);
}
public function testJSONDecoder()
{
$multi_curl = new MultiCurl();