[HttpFoundation] Split the tests into two methods / data providers.

This commit is contained in:
Dorian Villet 2013-04-09 14:58:53 +02:00
parent 80030fb28e
commit f0c4ab663a
1 changed files with 50 additions and 25 deletions

View File

@ -739,40 +739,20 @@ class RequestTest extends \PHPUnit_Framework_TestCase
}
/**
* @dataProvider testGetClientIpsProvider
* @dataProvider testGetClientIpProvider
*/
public function testGetClientIps($expected, $proxy, $remoteAddr, $httpForwardedFor, $trustedProxies, $multiple = false)
public function testGetClientIp($expected, $proxy, $remoteAddr, $httpForwardedFor, $trustedProxies)
{
$request = new Request();
$request = $this->getRequestInstanceForClientIpTests($proxy, $remoteAddr, $httpForwardedFor, $trustedProxies);
$server = array('REMOTE_ADDR' => $remoteAddr);
if (null !== $httpForwardedFor) {
$server['HTTP_X_FORWARDED_FOR'] = $httpForwardedFor;
}
if ($proxy || $trustedProxies) {
Request::setTrustedProxies(null === $trustedProxies ? array($remoteAddr) : $trustedProxies);
}
$request->initialize(array(), array(), array(), array(), array(), $server);
$result = $multiple ? $request->getClientIps() : $request->getClientIp();
$this->assertEquals($expected, $result);
$this->assertEquals($expected, $request->getClientIp());
Request::setTrustedProxies(array());
}
public function testGetClientIpsProvider()
public function testGetClientIpProvider()
{
return array(
array(array('88.88.88.88'), false, '88.88.88.88', null, null, true),
array(array('127.0.0.1'), false, '127.0.0.1', null, null, true),
array(array('::1'), false, '::1', null, null, true),
array(array('127.0.0.1'), false, '127.0.0.1', '88.88.88.88', null, true),
array(array('88.88.88.88'), true, '127.0.0.1', '88.88.88.88', null, true),
array(array('2620:0:1cfe:face:b00c::3'), true, '::1', '2620:0:1cfe:face:b00c::3', null, true),
array(array('127.0.0.1', '87.65.43.21', '88.88.88.88'), true, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', null, true),
array(array('127.0.0.1', '87.65.43.21'), true, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '88.88.88.88'), true),
array(array('127.0.0.1', '87.65.43.21'), false, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '88.88.88.88'), true),
array('88.88.88.88', false, '88.88.88.88', null, null),
array('127.0.0.1', false, '127.0.0.1', null, null),
array('::1', false, '::1', null, null),
@ -785,6 +765,33 @@ class RequestTest extends \PHPUnit_Framework_TestCase
);
}
/**
* @dataProvider testGetClientIpsProvider
*/
public function testGetClientIps($expected, $proxy, $remoteAddr, $httpForwardedFor, $trustedProxies)
{
$request = $this->getRequestInstanceForClientIpTests($proxy, $remoteAddr, $httpForwardedFor, $trustedProxies);
$this->assertEquals($expected, $request->getClientIps());
Request::setTrustedProxies(array());
}
public function testGetClientIpsProvider()
{
return array(
array(array('88.88.88.88'), false, '88.88.88.88', null, null),
array(array('127.0.0.1'), false, '127.0.0.1', null, null),
array(array('::1'), false, '::1', null, null),
array(array('127.0.0.1'), false, '127.0.0.1', '88.88.88.88', null),
array(array('88.88.88.88'), true, '127.0.0.1', '88.88.88.88', null),
array(array('2620:0:1cfe:face:b00c::3'), true, '::1', '2620:0:1cfe:face:b00c::3', null),
array(array('127.0.0.1', '87.65.43.21', '88.88.88.88'), true, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', null),
array(array('127.0.0.1', '87.65.43.21'), true, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '88.88.88.88')),
array(array('127.0.0.1', '87.65.43.21'), false, '123.45.67.89', '127.0.0.1, 87.65.43.21, 88.88.88.88', array('123.45.67.89', '88.88.88.88')),
);
}
public function testGetContentWorksTwiceInDefaultMode()
{
$req = new Request;
@ -1283,6 +1290,24 @@ class RequestTest extends \PHPUnit_Framework_TestCase
$property->setValue(false);
}
private function getRequestInstanceForClientIpTests($proxy, $remoteAddr, $httpForwardedFor, $trustedProxies)
{
$request = new Request();
$server = array('REMOTE_ADDR' => $remoteAddr);
if (null !== $httpForwardedFor) {
$server['HTTP_X_FORWARDED_FOR'] = $httpForwardedFor;
}
if ($proxy || $trustedProxies) {
Request::setTrustedProxies(null === $trustedProxies ? array($remoteAddr) : $trustedProxies);
}
$request->initialize(array(), array(), array(), array(), array(), $server);
return $request;
}
public function testTrustedProxies()
{
$request = Request::create('http://example.com/');