From bafbdedef4529eaf0834cb63a1b168499e686717 Mon Sep 17 00:00:00 2001 From: unexge Date: Thu, 15 Sep 2016 10:30:03 +0300 Subject: [PATCH 1/3] [SecurityBundle] Support autowiring for AccessDecisionManagerInterface --- .../Resources/config/security.xml | 2 ++ .../Tests/Functional/AutowiringTypesTest.php | 31 +++++++++++++++++++ .../AutowiringTypes/AutowiredServices.php | 29 +++++++++++++++++ .../Bundle/TestBundle/TestBundle.php | 18 +++++++++++ .../app/AutowiringTypes/bundles.php | 16 ++++++++++ .../Functional/app/AutowiringTypes/config.yml | 18 +++++++++++ 6 files changed, 114 insertions(+) create mode 100644 src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php create mode 100644 src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/AutowiringTypes/AutowiredServices.php create mode 100644 src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php create mode 100644 src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/bundles.php create mode 100644 src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml diff --git a/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml b/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml index bbcae99853aa2..c7295538e90f3 100644 --- a/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml +++ b/src/Symfony/Bundle/SecurityBundle/Resources/config/security.xml @@ -107,6 +107,8 @@ + + Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php new file mode 100644 index 0000000000000..3d02717f009c9 --- /dev/null +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php @@ -0,0 +1,31 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\SecurityBundle\Tests\Functional; + +use Symfony\Component\Security\Core\Authorization\AccessDecisionManager; + +class AutowiringTypesTest extends WebTestCase +{ + public function testAccessDecisionManagerAutowiring() + { + static::bootKernel(array('debug' => false)); + $container = static::$kernel->getContainer(); + + $accessDecisionManager = $container->get('test.autowiring_types.autowired_services')->getAccessDecisionManager(); + $this->assertInstanceOf(AccessDecisionManager::class, $accessDecisionManager); + } + + protected static function createKernel(array $options = array()) + { + return parent::createKernel(array('test_case' => 'AutowiringTypes') + $options); + } +} diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/AutowiringTypes/AutowiredServices.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/AutowiringTypes/AutowiredServices.php new file mode 100644 index 0000000000000..eabae2332ab96 --- /dev/null +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/AutowiringTypes/AutowiredServices.php @@ -0,0 +1,29 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes; + +use Symfony\Component\Security\Core\Authorization\AccessDecisionManagerInterface; + +class AutowiredServices +{ + private $accessDecisionManager; + + public function __construct(AccessDecisionManagerInterface $accessDecisionManager) + { + $this->accessDecisionManager = $accessDecisionManager; + } + + public function getAccessDecisionManager() + { + return $this->accessDecisionManager; + } +} diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php new file mode 100644 index 0000000000000..d2af1a40ff215 --- /dev/null +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/Bundle/TestBundle/TestBundle.php @@ -0,0 +1,18 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\TestBundle; + +use Symfony\Component\HttpKernel\Bundle\Bundle; + +class TestBundle extends Bundle +{ +} diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/bundles.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/bundles.php new file mode 100644 index 0000000000000..b254425b54352 --- /dev/null +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/bundles.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +return array( + new Symfony\Bundle\FrameworkBundle\FrameworkBundle(), + new Symfony\Bundle\SecurityBundle\SecurityBundle(), + new Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\TestBundle\TestBundle(), +); diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml new file mode 100644 index 0000000000000..3f54991ef2bab --- /dev/null +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/app/AutowiringTypes/config.yml @@ -0,0 +1,18 @@ +imports: + - { resource: ../config/framework.yml } + + +security: + providers: + in_memory: + memory: ~ + + firewalls: + test: + pattern: ^/ + security: false + +services: + test.autowiring_types.autowired_services: + class: Symfony\Bundle\SecurityBundle\Tests\Functional\Bundle\TestBundle\AutowiringTypes\AutowiredServices + autowire: true From 32c7774cd2df4cea67eb7c7b3dce2ebff4754e89 Mon Sep 17 00:00:00 2001 From: unexge Date: Thu, 15 Sep 2016 10:47:30 +0300 Subject: [PATCH 2/3] don't use ::class constant for php 5.3 support. --- .../SecurityBundle/Tests/Functional/AutowiringTypesTest.php | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php index 3d02717f009c9..fb6ad0b351660 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php @@ -11,8 +11,6 @@ namespace Symfony\Bundle\SecurityBundle\Tests\Functional; -use Symfony\Component\Security\Core\Authorization\AccessDecisionManager; - class AutowiringTypesTest extends WebTestCase { public function testAccessDecisionManagerAutowiring() @@ -21,7 +19,7 @@ public function testAccessDecisionManagerAutowiring() $container = static::$kernel->getContainer(); $accessDecisionManager = $container->get('test.autowiring_types.autowired_services')->getAccessDecisionManager(); - $this->assertInstanceOf(AccessDecisionManager::class, $accessDecisionManager); + $this->assertInstanceOf('Symfony\Component\Security\Core\Authorization\AccessDecisionManager', $accessDecisionManager); } protected static function createKernel(array $options = array()) From 2f6a92be208db934aa61da4dc9819109b602fb8c Mon Sep 17 00:00:00 2001 From: unexge Date: Thu, 15 Sep 2016 11:14:24 +0300 Subject: [PATCH 3/3] add test-case for debug/dev env. --- .../Tests/Functional/AutowiringTypesTest.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php index fb6ad0b351660..07941a3ff857e 100644 --- a/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php +++ b/src/Symfony/Bundle/SecurityBundle/Tests/Functional/AutowiringTypesTest.php @@ -22,6 +22,15 @@ public function testAccessDecisionManagerAutowiring() $this->assertInstanceOf('Symfony\Component\Security\Core\Authorization\AccessDecisionManager', $accessDecisionManager); } + public function testDebugAccessDecisionManagerAutowiring() + { + static::bootKernel(array('debug' => true)); + $container = static::$kernel->getContainer(); + + $accessDecisionManager = $container->get('test.autowiring_types.autowired_services')->getAccessDecisionManager(); + $this->assertInstanceOf('Symfony\Component\Security\Core\Authorization\AccessDecisionManager', $accessDecisionManager); + } + protected static function createKernel(array $options = array()) { return parent::createKernel(array('test_case' => 'AutowiringTypes') + $options);