Merge pull request #787 from zachborboa/master

Fix existing header overwritten after using MultiCurl::addCurl()
This commit is contained in:
Zach Borboa
2023-06-09 06:15:29 -07:00
committed by GitHub
2 changed files with 24 additions and 1 deletions
+4 -1
View File
@@ -863,7 +863,10 @@ class MultiCurl extends BaseCurl
$curl->childOfMultiCurl = true;
$this->queuedCurls[$curl->id] = $curl;
$curl->setHeaders($this->headers);
// Avoid overwriting any existing header.
if ($curl->getOpt(CURLOPT_HTTPHEADER) === null) {
$curl->setHeaders($this->headers);
}
}
/**
@@ -3472,6 +3472,26 @@ class PHPMultiCurlClassTest extends \PHPUnit\Framework\TestCase
$this->assertTrue($complete_called);
}
public function testAddCurlHeaders()
{
$header_fields = [
'X-SOME-HEADER: some-value',
'X-ANOTHER-HEADER: another-value',
];
$curl = new Curl();
$curl->setUrl(Test::TEST_URL);
$curl->setOpt(CURLOPT_HTTPHEADER, $header_fields);
$curl->setUserAgent('agent');
$this->assertEquals($header_fields, $curl->getOpt(CURLOPT_HTTPHEADER));
$multi_curl = new MultiCurl();
$multi_curl->addCurl($curl);
$this->assertEquals($header_fields, $curl->getOpt(CURLOPT_HTTPHEADER));
}
public function testSequentialId()
{
$multi_curl = new MultiCurl();