Skip to content

Commit a96cfa4

Browse files
KurtThiemannfabpot
authored andcommitted
[HttpClient] Test POST to GET redirects
1 parent 8804980 commit a96cfa4

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

src/Symfony/Component/HttpClient/Tests/HttpClientTestCase.php

+22
Original file line numberDiff line numberDiff line change
@@ -673,4 +673,26 @@ public function testHeadRequestWithClosureBody()
673673
$this->assertIsArray($vars);
674674
$this->assertSame('HEAD', $vars['REQUEST_METHOD']);
675675
}
676+
677+
/**
678+
* @testWith [301]
679+
* [302]
680+
* [303]
681+
*/
682+
public function testPostToGetRedirect(int $status)
683+
{
684+
$p = TestHttpServer::start(8067);
685+
686+
try {
687+
$client = $this->getHttpClient(__FUNCTION__);
688+
689+
$response = $client->request('POST', 'http://localhost:8057/custom?status=' . $status . '&headers[]=Location%3A%20%2F');
690+
$body = $response->toArray();
691+
} finally {
692+
$p->stop();
693+
}
694+
695+
$this->assertSame('GET', $body['REQUEST_METHOD']);
696+
$this->assertSame('/', $body['REQUEST_URI']);
697+
}
676698
}

src/Symfony/Contracts/HttpClient/Test/Fixtures/web/index.php

+10
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,16 @@
199199
]);
200200

201201
exit;
202+
203+
case '/custom':
204+
if (isset($_GET['status'])) {
205+
http_response_code((int) $_GET['status']);
206+
}
207+
if (isset($_GET['headers']) && is_array($_GET['headers'])) {
208+
foreach ($_GET['headers'] as $header) {
209+
header($header);
210+
}
211+
}
202212
}
203213

204214
header('Content-Type: application/json', true);

0 commit comments

Comments
 (0)