From 77ec6bc24cd79feda5f015b00223fc734b9449a9 Mon Sep 17 00:00:00 2001 From: Kevin Bond Date: Wed, 10 Jul 2013 14:40:06 -0400 Subject: [PATCH] [HttpKernel] add parent request to subrequest --- .../HttpKernel/Fragment/InlineFragmentRenderer.php | 3 +++ .../Tests/Fragment/InlineFragmentRendererTest.php | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php b/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php index 9725a5cd6498e..966fd94334ab7 100644 --- a/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php +++ b/src/Symfony/Component/HttpKernel/Fragment/InlineFragmentRenderer.php @@ -130,6 +130,9 @@ protected function createSubRequest($uri, Request $request) $subRequest->setSession($session); } + // add this request to subRequest + $subRequest->attributes->set('_parent', $request); + return $subRequest; } diff --git a/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php b/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php index a6cfba211a3ff..53b5be8af4a83 100644 --- a/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php +++ b/src/Symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.php @@ -49,9 +49,10 @@ public function testRenderWithControllerReference() public function testRenderWithObjectsAsAttributes() { $object = new \stdClass(); + $request = Request::create('/'); $subRequest = Request::create('/_fragment?_path=_format%3Dhtml%26_controller%3Dmain_controller'); - $subRequest->attributes->replace(array('object' => $object)); + $subRequest->attributes->replace(array('object' => $object, '_parent' => $request)); $subRequest->headers->set('x-forwarded-for', array('127.0.0.1')); $subRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1'); @@ -64,7 +65,7 @@ public function testRenderWithObjectsAsAttributes() $strategy = new InlineFragmentRenderer($kernel); - $strategy->render(new ControllerReference('main_controller', array('object' => $object), array()), Request::create('/')); + $strategy->render(new ControllerReference('main_controller', array('object' => $object), array()), $request); } /** @@ -145,7 +146,10 @@ public function testExceptionInSubRequestsDoesNotMangleOutputBuffers() public function testESIHeaderIsKeptInSubrequest() { + $request = Request::create('/'); + $expectedSubRequest = Request::create('/'); + $expectedSubRequest->attributes->set('_parent', $request); $expectedSubRequest->headers->set('Surrogate-Capability', 'abc="ESI/1.0"'); $expectedSubRequest->headers->set('x-forwarded-for', array('127.0.0.1')); $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1'); @@ -159,7 +163,6 @@ public function testESIHeaderIsKeptInSubrequest() $strategy = new InlineFragmentRenderer($kernel); - $request = Request::create('/'); $request->headers->set('Surrogate-Capability', 'abc="ESI/1.0"'); $strategy->render('/', $request); }