Skip to content

Commit 7b5dd71

Browse files
committed
Implement MultiCurl::setCookies()
1 parent 296345b commit 7b5dd71

File tree

3 files changed

+60
-1
lines changed

3 files changed

+60
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,7 @@ MultiCurl::setCookie($key, $value)
270270
MultiCurl::setCookieFile($cookie_file)
271271
MultiCurl::setCookieJar($cookie_jar)
272272
MultiCurl::setCookieString($string)
273+
MultiCurl::setCookies($cookies)
273274
MultiCurl::setDigestAuthentication($username, $password = '')
274275
MultiCurl::setHeader($key, $value)
275276
MultiCurl::setHeaders($headers)

src/Curl/MultiCurl.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,19 @@ public function setCookie($key, $value)
413413
$this->cookies[$key] = $value;
414414
}
415415

416+
/**
417+
* Set Cookies
418+
*
419+
* @access public
420+
* @param $cookies
421+
*/
422+
public function setCookies($cookies)
423+
{
424+
foreach ($cookies as $key => $value) {
425+
$this->cookies[$key] = $value;
426+
}
427+
}
428+
416429
/**
417430
* Set Port
418431
*

tests/PHPCurlClass/PHPMultiCurlClassTest.php

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1999,7 +1999,7 @@ public function testDigestHttpAuthSuccess()
19991999
$multi_curl->start();
20002000
}
20012001

2002-
public function testCookies()
2002+
public function testSetCookie()
20032003
{
20042004
$multi_curl = new MultiCurl();
20052005
$multi_curl->setHeader('X-DEBUG-TEST', 'setcookie');
@@ -2034,6 +2034,51 @@ public function testCookies()
20342034
$this->assertEquals('yummy', $get_2->responseCookies['mycookie']);
20352035
}
20362036

2037+
public function testSetCookies()
2038+
{
2039+
$multi_curl = new MultiCurl();
2040+
$multi_curl->setHeader('X-DEBUG-TEST', 'setcookie');
2041+
$multi_curl->setCookies(array(
2042+
'mycookie' => 'yum',
2043+
'cookie-for-all-before' => 'a',
2044+
));
2045+
2046+
$get_1 = $multi_curl->addGet(Test::TEST_URL);
2047+
$get_1->setCookies(array(
2048+
'cookie-for-1st-request' => '1',
2049+
));
2050+
$get_1->complete(function ($instance) {
2051+
PHPUnit_Framework_Assert::assertEquals('yum', $instance->responseCookies['mycookie']);
2052+
PHPUnit_Framework_Assert::assertEquals('a', $instance->responseCookies['cookie-for-all-before']);
2053+
PHPUnit_Framework_Assert::assertEquals('b', $instance->responseCookies['cookie-for-all-after']);
2054+
PHPUnit_Framework_Assert::assertEquals('1', $instance->responseCookies['cookie-for-1st-request']);
2055+
});
2056+
2057+
$get_2 = $multi_curl->addGet(Test::TEST_URL);
2058+
$get_2->setCookies(array(
2059+
'cookie-for-2nd-request' => '2',
2060+
));
2061+
$get_2->beforeSend(function ($instance) {
2062+
$instance->setCookies(array(
2063+
'mycookie' => 'yummy',
2064+
));
2065+
});
2066+
$get_2->complete(function ($instance) {
2067+
PHPUnit_Framework_Assert::assertEquals('yummy', $instance->responseCookies['mycookie']);
2068+
PHPUnit_Framework_Assert::assertEquals('a', $instance->responseCookies['cookie-for-all-before']);
2069+
PHPUnit_Framework_Assert::assertEquals('b', $instance->responseCookies['cookie-for-all-after']);
2070+
PHPUnit_Framework_Assert::assertEquals('2', $instance->responseCookies['cookie-for-2nd-request']);
2071+
});
2072+
2073+
$multi_curl->setCookies(array(
2074+
'cookie-for-all-after' => 'b',
2075+
));
2076+
$multi_curl->start();
2077+
2078+
$this->assertEquals('yum', $get_1->responseCookies['mycookie']);
2079+
$this->assertEquals('yummy', $get_2->responseCookies['mycookie']);
2080+
}
2081+
20372082
public function testJSONDecoder()
20382083
{
20392084
$multi_curl = new MultiCurl();

0 commit comments

Comments
 (0)