* * 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:----IncUSScTuf/kGzio0tTCnreP6LegK2bzjZJmAp5cAUYWPA5A+n9DEMiwbWuOiA9GQo7ZCV7Y+qKcFSOZ6vn5AEZZKkqknI7v6ee/9jVTGgbAu0l2vDf0e3YkrQU+8HJ91XnL/N4ZsNhKmGbPmbatmNCcEOQgyLHg3puB3+xIknNqmixE6WF264j46on5aQLrlnJXF0km6kVCXZjJr3ie9fz0dEnFtqjPZL6rAn+lnb14NusN8PhrYaZRHQGrlr2eDbE5TZ+Y8sBhMoNiuJz+deNRTib28K2x3XMeUuozV5kid8UrP3OA4vxlpjW12ziqHuQTs80vv5zd3HRfygOAqCkb3Dov6MlTnZ/1gJZXcrOUhjhUOzDJVmIj9GQoCq5DasClTacM6YmtU9TXEwjw5AK+vTaXrHSSfBartefUJn0KNG32o5QYHG4fwwvJnTk8Ygvg4GHH5sguarDkusTif7SqRVWlvQYzu2o9yoFvDADbHbpMffbNJoTTKprGJxM61SWcPDbA2Z5x9J1E++jiz5yr1JGlHTl4SglHUr4Gs+s5L5kQBTc+vjRm1bqfmuQHpvDzP4BURJoeE5PKs5yQVoy+zlVSEST04VPxwVjpEOMEQ252wNaRl9zwx2eJjjLzaMNowVtPEWFZWiiW/HalnweeQYxtgTg5G6FCXLZ/VCc=----ATTACHMENT:----NDg3OTI3NzQ5NDQxMDg2MCA1NzE1MDg2Nzk0MjE0MTMxIDY0MjQ0NzA4MjU5MDQ3MzE=