Fix #686: Build url without using data parameter

This commit is contained in:
Zach Borboa
2021-11-20 23:43:44 -05:00
parent 2973f50df8
commit 92a8f3bbe2
3 changed files with 65 additions and 1 deletions
+1 -1
View File
@@ -276,7 +276,7 @@ class MultiCurl
$curl = new Curl($this->baseUrl);
$this->queueHandle($curl);
$this->setUrl($url, $data);
$this->setUrl($url);
if (is_array($data) && empty($data)) {
$curl->removeHeader('Content-Length');
+27
View File
@@ -4135,4 +4135,31 @@ class CurlTest extends \PHPUnit\Framework\TestCase
$this->assertFalse($test_3->curl->curlError);
$this->assertFalse($test_3->curl->httpError);
}
public function testPostDataArray()
{
$data = ['key' => 'value'];
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'post');
$curl->post(Test::TEST_URL, $data);
$this->assertEquals('POST / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
}
public function testPostDataString()
{
$data = str_repeat('-', 100);
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'post_json');
$curl->post(Test::TEST_URL, $data);
$this->assertEquals('POST / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
$this->assertEquals($data, $curl->response);
}
}
@@ -4716,4 +4716,41 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase
$multi_curl->setMaximumRedirects(3);
$this->assertEquals(3, $multi_curl->getOpt(CURLOPT_MAXREDIRS));
}
public function testPostDataArray()
{
$data = ['key' => 'value'];
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'post');
$multi_curl->addPost(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) {
\PHPUnit\Framework\Assert::assertEquals(
'POST / HTTP/1.1',
$instance->requestHeaders['Request-Line']
);
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
});
$multi_curl->start();
}
public function testPostDataString()
{
$data = str_repeat('-', 100);
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'post_json');
$multi_curl->addPost(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) use ($data) {
\PHPUnit\Framework\Assert::assertEquals(
'POST / HTTP/1.1',
$instance->requestHeaders['Request-Line']
);
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
\PHPUnit\Framework\Assert::assertEquals($data, $instance->response);
});
$multi_curl->start();
}
}