minor #18206 [FrameworkBundle][2.8] Add tests for the Controller class (dunglas)
This PR was squashed before being merged into the 2.8 branch (closes #18206).
Discussion
----------
[FrameworkBundle][2.8] Add tests for the Controller class
| Q | A
| ------------- | ---
| Branch? | 2.8
| Bug fix? | no
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | n/a
| License | MIT
| Doc PR | n/a
Backport tests of #18193 to the `abstract` Controller.
Commits
-------
5ee9f93
[FrameworkBundle][2.8] Add tests for the Controller class
This commit is contained in:
commit
dd7e05dd14
@ -124,6 +124,86 @@ class ControllerTest extends TestCase
|
|||||||
|
|
||||||
return $container;
|
return $container;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testIsGranted()
|
||||||
|
{
|
||||||
|
$authorizationChecker = $this->getMock('Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface');
|
||||||
|
$authorizationChecker->expects($this->once())->method('isGranted')->willReturn(true);
|
||||||
|
|
||||||
|
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||||
|
$container->expects($this->at(0))->method('has')->will($this->returnValue(true));
|
||||||
|
$container->expects($this->at(1))->method('get')->will($this->returnValue($authorizationChecker));
|
||||||
|
|
||||||
|
$controller = new TestController();
|
||||||
|
$controller->setContainer($container);
|
||||||
|
|
||||||
|
$this->assertTrue($controller->isGranted('foo'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \Symfony\Component\Security\Core\Exception\AccessDeniedException
|
||||||
|
*/
|
||||||
|
public function testdenyAccessUnlessGranted()
|
||||||
|
{
|
||||||
|
$authorizationChecker = $this->getMock('Symfony\Component\Security\Core\Authorization\AuthorizationCheckerInterface');
|
||||||
|
$authorizationChecker->expects($this->once())->method('isGranted')->willReturn(false);
|
||||||
|
|
||||||
|
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||||
|
$container->expects($this->at(0))->method('has')->will($this->returnValue(true));
|
||||||
|
$container->expects($this->at(1))->method('get')->will($this->returnValue($authorizationChecker));
|
||||||
|
|
||||||
|
$controller = new TestController();
|
||||||
|
$controller->setContainer($container);
|
||||||
|
|
||||||
|
$controller->denyAccessUnlessGranted('foo');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderViewTwig()
|
||||||
|
{
|
||||||
|
$twig = $this->getMockBuilder('\Twig_Environment')->disableOriginalConstructor()->getMock();
|
||||||
|
$twig->expects($this->once())->method('render')->willReturn('bar');
|
||||||
|
|
||||||
|
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||||
|
$container->expects($this->at(0))->method('has')->will($this->returnValue(false));
|
||||||
|
$container->expects($this->at(1))->method('has')->will($this->returnValue(true));
|
||||||
|
$container->expects($this->at(2))->method('get')->will($this->returnValue($twig));
|
||||||
|
|
||||||
|
$controller = new TestController();
|
||||||
|
$controller->setContainer($container);
|
||||||
|
|
||||||
|
$this->assertEquals('bar', $controller->renderView('foo'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testRenderTwig()
|
||||||
|
{
|
||||||
|
$twig = $this->getMockBuilder('\Twig_Environment')->disableOriginalConstructor()->getMock();
|
||||||
|
$twig->expects($this->once())->method('render')->willReturn('bar');
|
||||||
|
|
||||||
|
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||||
|
$container->expects($this->at(0))->method('has')->will($this->returnValue(false));
|
||||||
|
$container->expects($this->at(1))->method('has')->will($this->returnValue(true));
|
||||||
|
$container->expects($this->at(2))->method('get')->will($this->returnValue($twig));
|
||||||
|
|
||||||
|
$controller = new TestController();
|
||||||
|
$controller->setContainer($container);
|
||||||
|
|
||||||
|
$this->assertEquals('bar', $controller->render('foo')->getContent());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testStreamTwig()
|
||||||
|
{
|
||||||
|
$twig = $this->getMockBuilder('\Twig_Environment')->disableOriginalConstructor()->getMock();
|
||||||
|
|
||||||
|
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerInterface');
|
||||||
|
$container->expects($this->at(0))->method('has')->will($this->returnValue(false));
|
||||||
|
$container->expects($this->at(1))->method('has')->will($this->returnValue(true));
|
||||||
|
$container->expects($this->at(2))->method('get')->will($this->returnValue($twig));
|
||||||
|
|
||||||
|
$controller = new TestController();
|
||||||
|
$controller->setContainer($container);
|
||||||
|
|
||||||
|
$this->assertInstanceOf('Symfony\Component\HttpFoundation\StreamedResponse', $controller->stream('foo'));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class TestController extends Controller
|
class TestController extends Controller
|
||||||
@ -137,4 +217,14 @@ class TestController extends Controller
|
|||||||
{
|
{
|
||||||
return parent::getUser();
|
return parent::getUser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isGranted($attributes, $object = null)
|
||||||
|
{
|
||||||
|
return parent::isGranted($attributes, $object);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function denyAccessUnlessGranted($attributes, $object = null, $message = 'Access Denied.')
|
||||||
|
{
|
||||||
|
parent::denyAccessUnlessGranted($attributes, $object, $message);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,8 @@
|
|||||||
"symfony/validator": "~2.5|~3.0.0",
|
"symfony/validator": "~2.5|~3.0.0",
|
||||||
"symfony/yaml": "~2.0,>=2.0.5|~3.0.0",
|
"symfony/yaml": "~2.0,>=2.0.5|~3.0.0",
|
||||||
"symfony/property-info": "~2.8|~3.0.0",
|
"symfony/property-info": "~2.8|~3.0.0",
|
||||||
"phpdocumentor/reflection": "^1.0.7"
|
"phpdocumentor/reflection": "^1.0.7",
|
||||||
|
"twig/twig": "~1.23|~2.0"
|
||||||
},
|
},
|
||||||
"suggest": {
|
"suggest": {
|
||||||
"symfony/console": "For using the console commands",
|
"symfony/console": "For using the console commands",
|
||||||
|
Reference in New Issue
Block a user