@covers Symfony\Component\HttpFoundation\Request::getHost
public function testGetHost() {
$request = new Request();
$request
->initialize(array(
'foo' => 'bar',
));
$this
->assertEquals('', $request
->getHost(), '->getHost() return empty string if not initialized');
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_HOST' => 'www.exemple.com',
));
$this
->assertEquals('www.exemple.com', $request
->getHost(), '->getHost() from Host Header');
// Host header with port number.
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_HOST' => 'www.exemple.com:8080',
));
$this
->assertEquals('www.exemple.com', $request
->getHost(), '->getHost() from Host Header with port number');
// Server values.
$request
->initialize(array(), array(), array(), array(), array(), array(
'SERVER_NAME' => 'www.exemple.com',
));
$this
->assertEquals('www.exemple.com', $request
->getHost(), '->getHost() from server name');
$this
->startTrustingProxyData();
// X_FORWARDED_HOST.
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_X_FORWARDED_HOST' => 'www.exemple.com',
));
$this
->assertEquals('www.exemple.com', $request
->getHost(), '->getHost() from X_FORWARDED_HOST');
// X_FORWARDED_HOST
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_X_FORWARDED_HOST' => 'www.exemple.com, www.second.com',
));
$this
->assertEquals('www.second.com', $request
->getHost(), '->getHost() value from X_FORWARDED_HOST use last value');
// X_FORWARDED_HOST with port number
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_X_FORWARDED_HOST' => 'www.exemple.com, www.second.com:8080',
));
$this
->assertEquals('www.second.com', $request
->getHost(), '->getHost() value from X_FORWARDED_HOST with port number');
$request
->initialize(array(), array(), array(), array(), array(), array(
'HTTP_HOST' => 'www.exemple.com',
'HTTP_X_FORWARDED_HOST' => 'www.forward.com',
));
$this
->assertEquals('www.forward.com', $request
->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over Host');
$request
->initialize(array(), array(), array(), array(), array(), array(
'SERVER_NAME' => 'www.exemple.com',
'HTTP_X_FORWARDED_HOST' => 'www.forward.com',
));
$this
->assertEquals('www.forward.com', $request
->getHost(), '->getHost() value from X_FORWARDED_HOST has priority over SERVER_NAME ');
$request
->initialize(array(), array(), array(), array(), array(), array(
'SERVER_NAME' => 'www.exemple.com',
'HTTP_HOST' => 'www.host.com',
));
$this
->assertEquals('www.host.com', $request
->getHost(), '->getHost() value from Host header has priority over SERVER_NAME ');
$this
->stopTrustingProxyData();
}