Fix #686: Build url without using data parameter

Also for PATCH, PUT & SEARCH requests
This commit is contained in:
Theodoros-Franz Gerakitis
2021-11-23 09:14:47 +01:00
committed by Zach Borboa
parent 31a65e2dfb
commit e999cb4e25
3 changed files with 188 additions and 3 deletions
+3 -3
View File
@@ -247,7 +247,7 @@ class MultiCurl
}
$this->queueHandle($curl);
$this->setUrl($url, $data);
$this->setUrl($url);
$curl->setUrl($url);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'PATCH');
$curl->setOpt(CURLOPT_POSTFIELDS, $curl->buildPostData($data));
@@ -315,7 +315,7 @@ class MultiCurl
$curl = new Curl($this->baseUrl);
$this->queueHandle($curl);
$this->setUrl($url, $data);
$this->setUrl($url);
$curl->setUrl($url);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'PUT');
$put_data = $curl->buildPostData($data);
@@ -344,7 +344,7 @@ class MultiCurl
$curl = new Curl($this->baseUrl);
$this->queueHandle($curl);
$this->setUrl($url, $data);
$this->setUrl($url);
$curl->setUrl($url);
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'SEARCH');
$put_data = $curl->buildPostData($data);
+77
View File
@@ -4193,4 +4193,81 @@ class CurlTest extends \PHPUnit\Framework\TestCase
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
$this->assertEquals($data, $curl->response);
}
public function testPatchDataArray()
{
$data = ['key' => 'value'];
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'patch');
$curl->patch(Test::TEST_URL, $data);
$this->assertEquals('PATCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
}
public function testPatchDataString()
{
$data = str_repeat('-', 100);
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'patch_json');
$curl->patch(Test::TEST_URL, $data);
$this->assertEquals('PATCH / 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);
}
public function testPutDataArray()
{
$data = ['key' => 'value'];
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'put');
$curl->put(Test::TEST_URL, $data);
$this->assertEquals('PUT / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
}
public function testPutDataString()
{
$data = str_repeat('-', 100);
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'put_json');
$curl->put(Test::TEST_URL, $data);
$this->assertEquals('PUT / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
}
public function testSearchDataArray()
{
$data = ['key' => 'value'];
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'search');
$curl->search(Test::TEST_URL, $data);
$this->assertEquals('SEARCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
}
public function testSearchDataString()
{
$data = str_repeat('-', 100);
$curl = new Curl();
$curl->setHeader('X-DEBUG-TEST', 'search_json');
$curl->search(Test::TEST_URL, $data);
$this->assertEquals('SEARCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
$this->assertEquals(Test::TEST_URL, $curl->url);
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
}
}
@@ -4832,4 +4832,112 @@ class MultiCurlTest extends \PHPUnit\Framework\TestCase
});
$multi_curl->start();
}
public function testPatchDataArray()
{
$data = ['key' => 'value'];
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'patch');
$multi_curl->addPatch(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) {
\PHPUnit\Framework\Assert::assertEquals(
'PATCH / 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 testPatchDataString()
{
$data = str_repeat('-', 100);
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'patch_json');
$multi_curl->addPatch(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) use ($data) {
\PHPUnit\Framework\Assert::assertEquals(
'PATCH / 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 testPutDataArray()
{
$data = ['key' => 'value'];
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'put');
$multi_curl->addPut(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) {
\PHPUnit\Framework\Assert::assertEquals(
'PUT / 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 testPutDataString()
{
$data = str_repeat('-', 100);
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'put_json');
$multi_curl->addPut(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) use ($data) {
\PHPUnit\Framework\Assert::assertEquals(
'PUT / 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 testSearchDataArray()
{
$data = ['key' => 'value'];
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'search');
$multi_curl->addSearch(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) {
\PHPUnit\Framework\Assert::assertEquals(
'SEARCH / 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 testSearchDataString()
{
$data = str_repeat('-', 100);
$multi_curl = new MultiCurl();
$multi_curl->setHeader('X-DEBUG-TEST', 'search_json');
$multi_curl->addSearch(Test::TEST_URL, $data);
$multi_curl->complete(function ($instance) use ($data) {
\PHPUnit\Framework\Assert::assertEquals(
'SEARCH / 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();
}
}