Skip to content

Commit e999cb4

Browse files
Theodoros-Franz Gerakitiszachborboa
Theodoros-Franz Gerakitis
authored andcommitted
Fix php-curl-class#686: Build url without using data parameter
Also for PATCH, PUT & SEARCH requests
1 parent 31a65e2 commit e999cb4

File tree

3 files changed

+188
-3
lines changed

3 files changed

+188
-3
lines changed

src/Curl/MultiCurl.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ public function addPatch($url, $data = [])
247247
}
248248

249249
$this->queueHandle($curl);
250-
$this->setUrl($url, $data);
250+
$this->setUrl($url);
251251
$curl->setUrl($url);
252252
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'PATCH');
253253
$curl->setOpt(CURLOPT_POSTFIELDS, $curl->buildPostData($data));
@@ -315,7 +315,7 @@ public function addPut($url, $data = [])
315315

316316
$curl = new Curl($this->baseUrl);
317317
$this->queueHandle($curl);
318-
$this->setUrl($url, $data);
318+
$this->setUrl($url);
319319
$curl->setUrl($url);
320320
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'PUT');
321321
$put_data = $curl->buildPostData($data);
@@ -344,7 +344,7 @@ public function addSearch($url, $data = [])
344344

345345
$curl = new Curl($this->baseUrl);
346346
$this->queueHandle($curl);
347-
$this->setUrl($url, $data);
347+
$this->setUrl($url);
348348
$curl->setUrl($url);
349349
$curl->setOpt(CURLOPT_CUSTOMREQUEST, 'SEARCH');
350350
$put_data = $curl->buildPostData($data);

tests/PHPCurlClass/PHPCurlClassTest.php

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4193,4 +4193,81 @@ public function testPostDataString()
41934193
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
41944194
$this->assertEquals($data, $curl->response);
41954195
}
4196+
4197+
public function testPatchDataArray()
4198+
{
4199+
$data = ['key' => 'value'];
4200+
4201+
$curl = new Curl();
4202+
$curl->setHeader('X-DEBUG-TEST', 'patch');
4203+
$curl->patch(Test::TEST_URL, $data);
4204+
4205+
$this->assertEquals('PATCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4206+
$this->assertEquals(Test::TEST_URL, $curl->url);
4207+
}
4208+
4209+
public function testPatchDataString()
4210+
{
4211+
$data = str_repeat('-', 100);
4212+
4213+
$curl = new Curl();
4214+
$curl->setHeader('X-DEBUG-TEST', 'patch_json');
4215+
$curl->patch(Test::TEST_URL, $data);
4216+
4217+
$this->assertEquals('PATCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4218+
$this->assertEquals(Test::TEST_URL, $curl->url);
4219+
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
4220+
$this->assertEquals($data, $curl->response);
4221+
}
4222+
4223+
public function testPutDataArray()
4224+
{
4225+
$data = ['key' => 'value'];
4226+
4227+
$curl = new Curl();
4228+
$curl->setHeader('X-DEBUG-TEST', 'put');
4229+
$curl->put(Test::TEST_URL, $data);
4230+
4231+
$this->assertEquals('PUT / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4232+
$this->assertEquals(Test::TEST_URL, $curl->url);
4233+
}
4234+
4235+
public function testPutDataString()
4236+
{
4237+
$data = str_repeat('-', 100);
4238+
4239+
$curl = new Curl();
4240+
$curl->setHeader('X-DEBUG-TEST', 'put_json');
4241+
$curl->put(Test::TEST_URL, $data);
4242+
4243+
$this->assertEquals('PUT / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4244+
$this->assertEquals(Test::TEST_URL, $curl->url);
4245+
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
4246+
}
4247+
4248+
public function testSearchDataArray()
4249+
{
4250+
$data = ['key' => 'value'];
4251+
4252+
$curl = new Curl();
4253+
$curl->setHeader('X-DEBUG-TEST', 'search');
4254+
$curl->search(Test::TEST_URL, $data);
4255+
4256+
$this->assertEquals('SEARCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4257+
$this->assertEquals(Test::TEST_URL, $curl->url);
4258+
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
4259+
}
4260+
4261+
public function testSearchDataString()
4262+
{
4263+
$data = str_repeat('-', 100);
4264+
4265+
$curl = new Curl();
4266+
$curl->setHeader('X-DEBUG-TEST', 'search_json');
4267+
$curl->search(Test::TEST_URL, $data);
4268+
4269+
$this->assertEquals('SEARCH / HTTP/1.1', $curl->requestHeaders['Request-Line']);
4270+
$this->assertEquals(Test::TEST_URL, $curl->url);
4271+
$this->assertEquals(Test::TEST_URL, $curl->effectiveUrl);
4272+
}
41964273
}

tests/PHPCurlClass/PHPMultiCurlClassTest.php

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4832,4 +4832,112 @@ public function testPostDataString()
48324832
});
48334833
$multi_curl->start();
48344834
}
4835+
4836+
public function testPatchDataArray()
4837+
{
4838+
$data = ['key' => 'value'];
4839+
4840+
$multi_curl = new MultiCurl();
4841+
$multi_curl->setHeader('X-DEBUG-TEST', 'patch');
4842+
$multi_curl->addPatch(Test::TEST_URL, $data);
4843+
$multi_curl->complete(function ($instance) {
4844+
\PHPUnit\Framework\Assert::assertEquals(
4845+
'PATCH / HTTP/1.1',
4846+
$instance->requestHeaders['Request-Line']
4847+
);
4848+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4849+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4850+
});
4851+
$multi_curl->start();
4852+
}
4853+
4854+
public function testPatchDataString()
4855+
{
4856+
$data = str_repeat('-', 100);
4857+
4858+
$multi_curl = new MultiCurl();
4859+
$multi_curl->setHeader('X-DEBUG-TEST', 'patch_json');
4860+
$multi_curl->addPatch(Test::TEST_URL, $data);
4861+
$multi_curl->complete(function ($instance) use ($data) {
4862+
\PHPUnit\Framework\Assert::assertEquals(
4863+
'PATCH / HTTP/1.1',
4864+
$instance->requestHeaders['Request-Line']
4865+
);
4866+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4867+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4868+
});
4869+
$multi_curl->start();
4870+
}
4871+
4872+
public function testPutDataArray()
4873+
{
4874+
$data = ['key' => 'value'];
4875+
4876+
$multi_curl = new MultiCurl();
4877+
$multi_curl->setHeader('X-DEBUG-TEST', 'put');
4878+
$multi_curl->addPut(Test::TEST_URL, $data);
4879+
$multi_curl->complete(function ($instance) {
4880+
\PHPUnit\Framework\Assert::assertEquals(
4881+
'PUT / HTTP/1.1',
4882+
$instance->requestHeaders['Request-Line']
4883+
);
4884+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4885+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4886+
});
4887+
$multi_curl->start();
4888+
}
4889+
4890+
public function testPutDataString()
4891+
{
4892+
$data = str_repeat('-', 100);
4893+
4894+
$multi_curl = new MultiCurl();
4895+
$multi_curl->setHeader('X-DEBUG-TEST', 'put_json');
4896+
$multi_curl->addPut(Test::TEST_URL, $data);
4897+
$multi_curl->complete(function ($instance) use ($data) {
4898+
\PHPUnit\Framework\Assert::assertEquals(
4899+
'PUT / HTTP/1.1',
4900+
$instance->requestHeaders['Request-Line']
4901+
);
4902+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4903+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4904+
});
4905+
$multi_curl->start();
4906+
}
4907+
4908+
public function testSearchDataArray()
4909+
{
4910+
$data = ['key' => 'value'];
4911+
4912+
$multi_curl = new MultiCurl();
4913+
$multi_curl->setHeader('X-DEBUG-TEST', 'search');
4914+
$multi_curl->addSearch(Test::TEST_URL, $data);
4915+
$multi_curl->complete(function ($instance) {
4916+
\PHPUnit\Framework\Assert::assertEquals(
4917+
'SEARCH / HTTP/1.1',
4918+
$instance->requestHeaders['Request-Line']
4919+
);
4920+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4921+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4922+
});
4923+
$multi_curl->start();
4924+
}
4925+
4926+
public function testSearchDataString()
4927+
{
4928+
$data = str_repeat('-', 100);
4929+
4930+
$multi_curl = new MultiCurl();
4931+
$multi_curl->setHeader('X-DEBUG-TEST', 'search_json');
4932+
$multi_curl->addSearch(Test::TEST_URL, $data);
4933+
$multi_curl->complete(function ($instance) use ($data) {
4934+
\PHPUnit\Framework\Assert::assertEquals(
4935+
'SEARCH / HTTP/1.1',
4936+
$instance->requestHeaders['Request-Line']
4937+
);
4938+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->url);
4939+
\PHPUnit\Framework\Assert::assertEquals(Test::TEST_URL, $instance->effectiveUrl);
4940+
});
4941+
$multi_curl->start();
4942+
}
48354943
}

0 commit comments

Comments
 (0)