add unit tests for $ignoreAttributes

This commit is contained in:
Lukas Kahwe Smith 2013-04-20 22:35:33 +02:00
parent 0c7b65faf6
commit 190abc1842
1 changed files with 9 additions and 8 deletions

View File

@ -39,13 +39,12 @@ class RedirectControllerTest extends TestCase
/** /**
* @dataProvider provider * @dataProvider provider
*/ */
public function testRoute($permanent, $expectedCode) public function testRoute($permanent, $ignoreAttributes, $expectedCode, $expectedAttributes)
{ {
$request = new Request(); $request = new Request();
$route = 'new-route'; $route = 'new-route';
$url = '/redirect-url'; $url = '/redirect-url';
$params = array('additional-parameter' => 'value');
$attributes = array( $attributes = array(
'route' => $route, 'route' => $route,
'permanent' => $permanent, 'permanent' => $permanent,
@ -53,9 +52,9 @@ class RedirectControllerTest extends TestCase
'_route_params' => array( '_route_params' => array(
'route' => $route, 'route' => $route,
'permanent' => $permanent, 'permanent' => $permanent,
'additional-parameter' => 'value',
), ),
); );
$attributes['_route_params'] = $attributes['_route_params'] + $params;
$request->attributes = new ParameterBag($attributes); $request->attributes = new ParameterBag($attributes);
@ -63,7 +62,7 @@ class RedirectControllerTest extends TestCase
$router $router
->expects($this->once()) ->expects($this->once())
->method('generate') ->method('generate')
->with($this->equalTo($route), $this->equalTo($params)) ->with($this->equalTo($route), $this->equalTo($expectedAttributes))
->will($this->returnValue($url)); ->will($this->returnValue($url));
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface'); $container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
@ -77,7 +76,7 @@ class RedirectControllerTest extends TestCase
$controller = new RedirectController(); $controller = new RedirectController();
$controller->setContainer($container); $controller->setContainer($container);
$returnResponse = $controller->redirectAction($request, $route, $permanent); $returnResponse = $controller->redirectAction($request, $route, $permanent, $ignoreAttributes);
$this->assertRedirectUrl($returnResponse, $url); $this->assertRedirectUrl($returnResponse, $url);
$this->assertEquals($expectedCode, $returnResponse->getStatusCode()); $this->assertEquals($expectedCode, $returnResponse->getStatusCode());
@ -86,8 +85,10 @@ class RedirectControllerTest extends TestCase
public function provider() public function provider()
{ {
return array( return array(
array(true, 301), array(true, false, 301, array('additional-parameter' => 'value')),
array(false, 302), array(false, false, 302, array('additional-parameter' => 'value')),
array(false, true, 302, array()),
array(false, array('additional-parameter'), 302, array()),
); );
} }
@ -178,7 +179,7 @@ class RedirectControllerTest extends TestCase
$expectedUrl = "$scheme://$host$expectedPort$baseUrl$path"; $expectedUrl = "$scheme://$host$expectedPort$baseUrl$path";
$request = $this->createRequestObject($requestScheme, $host, $requestPort, $baseUrl); $request = $this->createRequestObject($requestScheme, $host, $requestPort, $baseUrl);
$controller = $this->createRedirectController($request); $controller = $this->createRedirectController();
$returnValue = $controller->urlRedirectAction($request, $path, false, $scheme, $httpPort, $httpsPort); $returnValue = $controller->urlRedirectAction($request, $path, false, $scheme, $httpPort, $httpsPort);
$this->assertRedirectUrl($returnValue, $expectedUrl); $this->assertRedirectUrl($returnValue, $expectedUrl);