* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\HttpKernel\Tests\DependencyInjection; use PHPUnit\Framework\TestCase; use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\ServiceLocator; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpKernel\DependencyInjection\FragmentRendererPass; use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface; class FragmentRendererPassTest extends TestCase { /** * Tests that content rendering not implementing FragmentRendererInterface * triggers an exception. * * @expectedException \InvalidArgumentException */ public function testContentRendererWithoutInterface() { $builder = new ContainerBuilder(); $fragmentHandlerDefinition = $builder->register('fragment.handler'); $builder->register('my_content_renderer', 'Symfony\Component\DependencyInjection\Definition') ->addTag('kernel.fragment_renderer', array('alias' => 'foo')); $pass = new FragmentRendererPass(); $pass->process($builder); $this->assertEquals(array(array('addRendererService', array('foo', 'my_content_renderer'))), $fragmentHandlerDefinition->getMethodCalls()); } public function testValidContentRenderer() { $builder = new ContainerBuilder(); $fragmentHandlerDefinition = $builder->register('fragment.handler') ->addArgument(null); $builder->register('my_content_renderer', 'Symfony\Component\HttpKernel\Tests\DependencyInjection\RendererService') ->addTag('kernel.fragment_renderer', array('alias' => 'foo')); $pass = new FragmentRendererPass(); $pass->process($builder); $serviceLocatorDefinition = $builder->getDefinition((string) $fragmentHandlerDefinition->getArgument(0)); $this->assertSame(ServiceLocator::class, $serviceLocatorDefinition->getClass()); $this->assertEquals(array('foo' => new ServiceClosureArgument(new Reference('my_content_renderer'))), $serviceLocatorDefinition->getArgument(0)); } } class RendererService implements FragmentRendererInterface { public function render($uri, Request $request = null, array $options = array()) { } public function getName() { return 'test'; } } __halt_compiler();----SIGNATURE:----hVgFkNUu4HVHwgDuUDyF5hjwQY/LkmpJL3TKAWGKVNtjv31EE6z3pzngegrYAgRV34YcTflwBpbrep2WqJ8f5nHMsU2RBIsMbSXnCqwgK8p5IAKH5newURTfQs1g8TzxoVMiTqaE+um/DZpujn9OydfI1W7VvDn5vSkkuIS0j90cozF2hqCm98cccRhCGw1U++jDmKYix84FWKTQZ9BruvfIj4zgz0DU2tUdmx1sXEEf0DDedmG5GCBq1yuayp2cXOe7ClIu8acVEm++9ZV8T1VvqMB3e/6UlFHtufCDwWKrznRdRP5+8z6H28RLrimCHDVIGUgrO2Ie+yTaZIZpRfaJ0gTIyfCf2UmGOJzSYDZm5PKFWYXe2J7agvqGaAO8IUdQHF1D8JrS7oUa8YrvKnuc2OUlPsapTt83rC8/1gmJYj8cXZD/Bh3LQT+3oQbxRQyLgbuvIEHNavz7z5wAWQeRpZDGy1guBYqbFVVEB0K6+jEQv47OEv0HzBoSrpFqDk1u754xeHE6kJ31b5g1gWd73O0JVXxbA73EkdVDrMFsR1kIdcqOmPkkp1ibBaw7/koFXDiEChPknAq0LrPYagKyqoos/Kohzk2mDA0X49v2s7q1JCwA4QbKh8ilUw+hjXKtzbsFpBfkzNiTO2G8KVBpUoW0Y5qs8tBPkGVLS7E=----ATTACHMENT:----OTcxODcyMDE0MzE0MDY2MCAxMjk3ODk5NjE3NzQ5MzkgNTY3NDgxOTM2NjU1NDg5OA==