Fixed server HTTP_HOST port uri conversion
This commit is contained in:
parent
4dbe0e1c34
commit
f401ab9032
@ -304,7 +304,11 @@ abstract class Client
|
|||||||
$uri = $this->getAbsoluteUri($uri);
|
$uri = $this->getAbsoluteUri($uri);
|
||||||
|
|
||||||
if (isset($server['HTTP_HOST'])) {
|
if (isset($server['HTTP_HOST'])) {
|
||||||
$uri = preg_replace('{^(https?\://)'.parse_url($uri, PHP_URL_HOST).'}', '${1}'.$server['HTTP_HOST'], $uri);
|
if ($port = parse_url($uri, PHP_URL_PORT)) {
|
||||||
|
$port = ':'.$port;
|
||||||
|
}
|
||||||
|
|
||||||
|
$uri = preg_replace('{^(https?\://)'.parse_url($uri, PHP_URL_HOST).$port.'}', '${1}'.$server['HTTP_HOST'], $uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isset($server['HTTPS'])) {
|
if (isset($server['HTTPS'])) {
|
||||||
|
@ -210,6 +210,24 @@ class ClientTest extends \PHPUnit_Framework_TestCase
|
|||||||
$this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
|
$this->assertEquals('http://www.example.com/foo/bar', $client->getRequest()->getUri(), '->request() uses the previous request for relative URLs');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testRequestURIConversionByServerHost()
|
||||||
|
{
|
||||||
|
$client = new TestClient();
|
||||||
|
|
||||||
|
$server = array('HTTP_HOST' => 'www.example.com:8000');
|
||||||
|
$parameters = array();
|
||||||
|
$files = array();
|
||||||
|
|
||||||
|
$client->request('GET', 'http://example.com', $parameters, $files, $server);
|
||||||
|
$this->assertEquals('http://www.example.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST to add port');
|
||||||
|
|
||||||
|
$client->request('GET', 'http://example.com:8888', $parameters, $files, $server);
|
||||||
|
$this->assertEquals('http://www.example.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST to modify existing port');
|
||||||
|
|
||||||
|
$client->request('GET', 'http://example.com:8000', $parameters, $files, $server);
|
||||||
|
$this->assertEquals('http://www.example.com:8000', $client->getRequest()->getUri(), '->request() uses HTTP_HOST respects correct set port');
|
||||||
|
}
|
||||||
|
|
||||||
public function testRequestReferer()
|
public function testRequestReferer()
|
||||||
{
|
{
|
||||||
$client = new TestClient();
|
$client = new TestClient();
|
||||||
|
Reference in New Issue
Block a user