Skip to content

Commit cc23a1b

Browse files
committed
Fix Curl::unsetHeader()
1 parent 126491d commit cc23a1b

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

src/Curl/Curl.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1068,6 +1068,11 @@ public function success($callback)
10681068
public function unsetHeader($key)
10691069
{
10701070
unset($this->headers[$key]);
1071+
$headers = array();
1072+
foreach ($this->headers as $key => $value) {
1073+
$headers[] = $key . ': ' . $value;
1074+
}
1075+
$this->setOpt(CURLOPT_HTTPHEADER, $headers);
10711076
}
10721077

10731078
/**

tests/PHPCurlClass/PHPCurlClassTest.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2979,4 +2979,25 @@ public function testBuildUrlArgSeparator()
29792979
$this->assertEquals($expected_url, $actual_url);
29802980
}
29812981
}
2982+
2983+
public function testUnsetHeader()
2984+
{
2985+
$request_key = 'X-Request-Id';
2986+
$request_value = '1';
2987+
$data = array(
2988+
'test' => 'server',
2989+
'key' => 'HTTP_X_REQUEST_ID',
2990+
);
2991+
2992+
$curl = new Curl();
2993+
$curl->setHeader($request_key, $request_value);
2994+
$curl->get(Test::TEST_URL, $data);
2995+
$this->assertEquals($request_value, $curl->response);
2996+
2997+
$curl = new Curl();
2998+
$curl->setHeader($request_key, $request_value);
2999+
$curl->unsetHeader($request_key);
3000+
$curl->get(Test::TEST_URL, $data);
3001+
$this->assertEquals('', $curl->response);
3002+
}
29823003
}

tests/PHPCurlClass/PHPMultiCurlClassTest.php

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2383,4 +2383,29 @@ public function testAlternativeStandardErrorOutput()
23832383

23842384
$this->assertNotEmpty($stderr);
23852385
}
2386+
2387+
public function testUnsetHeader()
2388+
{
2389+
$request_key = 'X-Request-Id';
2390+
$request_value = '1';
2391+
$data = array(
2392+
'test' => 'server',
2393+
'key' => 'HTTP_X_REQUEST_ID',
2394+
);
2395+
2396+
$multi_curl = new MultiCurl();
2397+
$multi_curl->setHeader($request_key, $request_value);
2398+
$multi_curl->addGet(Test::TEST_URL, $data)->complete(function ($instance) use ($request_value) {
2399+
PHPUnit_Framework_Assert::assertEquals($request_value, $instance->response);
2400+
});
2401+
$multi_curl->start();
2402+
2403+
$multi_curl = new MultiCurl();
2404+
$multi_curl->setHeader($request_key, $request_value);
2405+
$multi_curl->unsetHeader($request_key);
2406+
$multi_curl->addGet(Test::TEST_URL, $data)->complete(function ($instance) {
2407+
PHPUnit_Framework_Assert::assertEquals('', $instance->response);
2408+
});
2409+
$multi_curl->start();
2410+
}
23862411
}

0 commit comments

Comments
 (0)