diff --git a/src/Curl/MultiCurl.php b/src/Curl/MultiCurl.php index 640978a..8be3b30 100644 --- a/src/Curl/MultiCurl.php +++ b/src/Curl/MultiCurl.php @@ -73,9 +73,7 @@ class MultiCurl extends BaseCurl $curl = new Curl($this->baseUrl, $this->options); $this->queueHandle($curl); $this->setUrl($url, $query_parameters); - $curl->setUrl($url, $query_parameters); - $curl->setOpt(CURLOPT_CUSTOMREQUEST, 'DELETE'); - $curl->setOpt(CURLOPT_POSTFIELDS, $curl->buildPostData($data)); + $curl->setDelete($url, $query_parameters, $data); return $curl; } diff --git a/tests/PHPCurlClass/PHPMultiCurlClassTest.php b/tests/PHPCurlClass/PHPMultiCurlClassTest.php index ce2b2ad..b900fd2 100644 --- a/tests/PHPCurlClass/PHPMultiCurlClassTest.php +++ b/tests/PHPCurlClass/PHPMultiCurlClassTest.php @@ -4081,6 +4081,36 @@ class PHPMultiCurlClassTest extends \PHPUnit\Framework\TestCase $this->assertFalse($download_callback_called); } + public function testDeleteContentLengthSetWithBody() + { + $request_body = 'a=1&b=2&c=3'; + $multi_curl = new MultiCurl(); + $multi_curl->setHeader('X-DEBUG-TEST', 'request_method'); + $delete = $multi_curl->addDelete(Test::TEST_URL, [], $request_body); + $multi_curl->start(); + $this->assertEquals(strlen($request_body), $delete->requestHeaders['content-length']); + } + + public function testDeleteContentLengthUnsetWithoutBody() + { + $multi_curl = new MultiCurl(); + $multi_curl->setHeader('X-DEBUG-TEST', 'request_method'); + $delete = $multi_curl->addDelete(Test::TEST_URL, [], []); + $multi_curl->start(); + $this->assertFalse(isset($delete->requestHeaders['content-length'])); + } + + public function testDeleteZeroRequestBody() + { + $multi_curl = new MultiCurl(); + $multi_curl->setTimeout(2); + $multi_curl->setHeader('X-DEBUG-TEST', 'post_json'); + $delete = $multi_curl->addDelete(Test::TEST_URL, [], '0'); + $multi_curl->start(); + $this->assertFalse($delete->error); + $this->assertSame('0', $delete->rawResponse); + } + public function testSetUrlInConstructor() { $data = ['key' => 'value'];