namespace Symfony\Component\HttpKernel\Tests\Fragment;
use PHPUnit\Framework\TestCase;
+use Symfony\Component\HttpFoundation\RequestStack;
+use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
+use Symfony\Component\HttpKernel\Controller\ControllerResolverInterface;
use Symfony\Component\HttpKernel\Controller\ControllerReference;
use Symfony\Component\HttpKernel\HttpKernel;
use Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer;
$this->assertSame('foo', $strategy->render(new ControllerReference('main_controller', array('object' => $object), array()), Request::create('/'))->getContent());
}
- public function testRenderWithObjectsAsAttributesPassedAsObjectsInTheController()
+ /**
+ * @group legacy
+ */
+ public function testRenderWithObjectsAsAttributesPassedAsObjectsInTheControllerLegacy()
{
$resolver = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolver')->setMethods(array('getController'))->getMock();
$resolver
}))
;
- $kernel = new HttpKernel(new EventDispatcher(), $resolver);
+ $kernel = new HttpKernel(new EventDispatcher(), $resolver, new RequestStack());
+ $renderer = new InlineFragmentRenderer($kernel);
+
+ $response = $renderer->render(new ControllerReference('main_controller', array('object' => new \stdClass(), 'object1' => new Bar()), array()), Request::create('/'));
+ $this->assertEquals('bar', $response->getContent());
+ }
+
+ /**
+ * @group legacy
+ */
+ public function testRenderWithObjectsAsAttributesPassedAsObjectsInTheController()
+ {
+ $resolver = $this->getMockBuilder(ControllerResolverInterface::class)->getMock();
+ $resolver
+ ->expects($this->once())
+ ->method('getController')
+ ->will($this->returnValue(function (\stdClass $object, Bar $object1) {
+ return new Response($object1->getBar());
+ }))
+ ;
+
+ $kernel = new HttpKernel(new EventDispatcher(), $resolver, new RequestStack(), new ArgumentResolver());
$renderer = new InlineFragmentRenderer($kernel);
$response = $renderer->render(new ControllerReference('main_controller', array('object' => new \stdClass(), 'object1' => new Bar()), array()), Request::create('/'));
public function testExceptionInSubRequestsDoesNotMangleOutputBuffers()
{
- $resolver = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface')->getMock();
- $resolver
+ $controllerResolver = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Controller\\ControllerResolverInterface')->getMock();
+ $controllerResolver
->expects($this->once())
->method('getController')
->will($this->returnValue(function () {
throw new \RuntimeException();
}))
;
- $resolver
+
+ $argumentResolver = $this->getMockBuilder('Symfony\\Component\\HttpKernel\\Controller\\ArgumentResolverInterface')->getMock();
+ $argumentResolver
->expects($this->once())
->method('getArguments')
->will($this->returnValue(array()))
;
- $kernel = new HttpKernel(new EventDispatcher(), $resolver);
+ $kernel = new HttpKernel(new EventDispatcher(), $controllerResolver, new RequestStack(), $argumentResolver);
$renderer = new InlineFragmentRenderer($kernel);
// simulate a main request with output buffering