platform/api/symfony/Component/HttpKernel/Tests/Fragment/InlineFragmentRendererTest.yaml
2024-09-02 10:44:11 -07:00

192 lines
14 KiB
YAML

name: InlineFragmentRendererTest
class_comment: '# * @group time-sensitive'
dependencies:
- name: TestCase
type: class
source: PHPUnit\Framework\TestCase
- name: EventDispatcher
type: class
source: Symfony\Component\EventDispatcher\EventDispatcher
- name: Request
type: class
source: Symfony\Component\HttpFoundation\Request
- name: RequestStack
type: class
source: Symfony\Component\HttpFoundation\RequestStack
- name: Response
type: class
source: Symfony\Component\HttpFoundation\Response
- name: ArgumentResolverInterface
type: class
source: Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface
- name: ControllerReference
type: class
source: Symfony\Component\HttpKernel\Controller\ControllerReference
- name: ControllerResolverInterface
type: class
source: Symfony\Component\HttpKernel\Controller\ControllerResolverInterface
- name: ExceptionEvent
type: class
source: Symfony\Component\HttpKernel\Event\ExceptionEvent
- name: InlineFragmentRenderer
type: class
source: Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer
- name: HttpKernel
type: class
source: Symfony\Component\HttpKernel\HttpKernel
- name: HttpKernelInterface
type: class
source: Symfony\Component\HttpKernel\HttpKernelInterface
- name: KernelEvents
type: class
source: Symfony\Component\HttpKernel\KernelEvents
- name: EventDispatcherInterface
type: class
source: Symfony\Contracts\EventDispatcher\EventDispatcherInterface
properties: []
methods:
- name: getKernelExpectingRequest
visibility: private
parameters:
- name: expectedRequest
comment: "# * @group time-sensitive\n# */\n# class InlineFragmentRendererTest extends\
\ TestCase\n# {\n# public function testRender()\n# {\n# $strategy = new InlineFragmentRenderer($this->getKernel(new\
\ Response('foo')));\n# \n# $this->assertEquals('foo', $strategy->render('/',\
\ Request::create('/'))->getContent());\n# }\n# \n# public function testRenderWithControllerReference()\n\
# {\n# $strategy = new InlineFragmentRenderer($this->getKernel(new Response('foo')));\n\
# \n# $this->assertEquals('foo', $strategy->render(new ControllerReference('main_controller',\
\ [], []), Request::create('/'))->getContent());\n# }\n# \n# public function testRenderWithObjectsAsAttributes()\n\
# {\n# $object = new \\stdClass();\n# \n# $subRequest = Request::create('/_fragment?_path=_format%3Dhtml%26_locale%3Den%26_controller%3Dmain_controller');\n\
# $subRequest->attributes->replace(['object' => $object, '_format' => 'html',\
\ '_controller' => 'main_controller', '_locale' => 'en']);\n# $subRequest->headers->set('x-forwarded-for',\
\ ['127.0.0.1']);\n# $subRequest->headers->set('forwarded', ['for=\"127.0.0.1\"\
;host=\"localhost\";proto=http']);\n# $subRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# $subRequest->server->set('HTTP_FORWARDED', 'for=\"127.0.0.1\"\
;host=\"localhost\";proto=http');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($subRequest));\n\
# \n# $this->assertSame('foo', $strategy->render(new ControllerReference('main_controller',\
\ ['object' => $object], []), Request::create('/'))->getContent());\n# }\n# \n\
# public function testRenderWithTrustedHeaderDisabled()\n# {\n# Request::setTrustedProxies([],\
\ 0);\n# \n# $expectedSubRequest = Request::create('/');\n# $expectedSubRequest->headers->set('x-forwarded-for',\
\ ['127.0.0.1']);\n# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# $this->assertSame('foo', $strategy->render('/', Request::create('/'))->getContent());\n\
# \n# Request::setTrustedProxies([], -1);\n# }\n# \n# public function testRenderExceptionNoIgnoreErrors()\n\
# {\n# $this->expectException(\\RuntimeException::class);\n# $dispatcher = $this->createMock(EventDispatcherInterface::class);\n\
# $dispatcher->expects($this->never())->method('dispatch');\n# \n# $strategy =\
\ new InlineFragmentRenderer($this->getKernel(new \\RuntimeException('foo')),\
\ $dispatcher);\n# \n# $this->assertEquals('foo', $strategy->render('/', Request::create('/'))->getContent());\n\
# }\n# \n# public function testRenderExceptionIgnoreErrors()\n# {\n# $exception\
\ = new \\RuntimeException('foo');\n# $kernel = $this->getKernel($exception);\n\
# $request = Request::create('/');\n# $expectedEvent = new ExceptionEvent($kernel,\
\ $request, $kernel::SUB_REQUEST, $exception);\n# $dispatcher = $this->createMock(EventDispatcherInterface::class);\n\
# $dispatcher->expects($this->once())->method('dispatch')->with($expectedEvent,\
\ KernelEvents::EXCEPTION);\n# \n# $strategy = new InlineFragmentRenderer($kernel,\
\ $dispatcher);\n# \n# $this->assertEmpty($strategy->render('/', $request, ['ignore_errors'\
\ => true])->getContent());\n# }\n# \n# public function testRenderExceptionIgnoreErrorsWithAlt()\n\
# {\n# $strategy = new InlineFragmentRenderer($this->getKernel(function () {\n\
# static $firstCall = true;\n# \n# if ($firstCall) {\n# $firstCall = false;\n\
# \n# throw new \\RuntimeException('foo');\n# }\n# \n# return new Response('bar');\n\
# }));\n# \n# $this->assertEquals('bar', $strategy->render('/', Request::create('/'),\
\ ['ignore_errors' => true, 'alt' => '/foo'])->getContent());\n# }\n# \n# private\
\ function getKernel($returnValue)\n# {\n# $kernel = $this->createMock(HttpKernelInterface::class);\n\
# $mocker = $kernel\n# ->expects($this->any())\n# ->method('handle')\n# ;\n# \n\
# if ($returnValue instanceof \\Exception) {\n# $mocker->willThrowException($returnValue);\n\
# } elseif ($returnValue instanceof \\Closure) {\n# $mocker->willReturnCallback($returnValue);\n\
# } else {\n# $mocker->willReturn(...(\\is_array($returnValue) ? $returnValue\
\ : [$returnValue]));\n# }\n# \n# return $kernel;\n# }\n# \n# public function\
\ testExceptionInSubRequestsDoesNotMangleOutputBuffers()\n# {\n# $controllerResolver\
\ = $this->createMock(ControllerResolverInterface::class);\n# $controllerResolver\n\
# ->expects($this->once())\n# ->method('getController')\n# ->willReturn(function\
\ () {\n# ob_start();\n# echo 'bar';\n# throw new \\RuntimeException();\n# })\n\
# ;\n# \n# $argumentResolver = $this->createMock(ArgumentResolverInterface::class);\n\
# $argumentResolver\n# ->expects($this->once())\n# ->method('getArguments')\n\
# ->willReturn([])\n# ;\n# \n# $kernel = new HttpKernel(new EventDispatcher(),\
\ $controllerResolver, new RequestStack(), $argumentResolver);\n# $renderer =\
\ new InlineFragmentRenderer($kernel);\n# \n# // simulate a main request with\
\ output buffering\n# ob_start();\n# echo 'Foo';\n# \n# // simulate a sub-request\
\ with output buffering and an exception\n# $renderer->render('/', Request::create('/'),\
\ ['ignore_errors' => true]);\n# \n# $this->assertEquals('Foo', ob_get_clean());\n\
# }\n# \n# public function testLocaleAndFormatAreKeptInSubrequest()\n# {\n# $expectedSubRequest\
\ = Request::create('/');\n# $expectedSubRequest->attributes->set('_format', 'foo');\n\
# $expectedSubRequest->setLocale('fr');\n# if (Request::HEADER_X_FORWARDED_FOR\
\ & Request::getTrustedHeaderSet()) {\n# $expectedSubRequest->headers->set('x-forwarded-for',\
\ ['127.0.0.1']);\n# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# }\n# $expectedSubRequest->headers->set('forwarded', ['for=\"\
127.0.0.1\";host=\"localhost\";proto=http']);\n# $expectedSubRequest->server->set('HTTP_FORWARDED',\
\ 'for=\"127.0.0.1\";host=\"localhost\";proto=http');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# \n# $request = Request::create('/');\n# $request->attributes->set('_format',\
\ 'foo');\n# $request->setLocale('fr');\n# $strategy->render('/', $request);\n\
# }\n# \n# public function testESIHeaderIsKeptInSubrequest()\n# {\n# $expectedSubRequest\
\ = Request::create('/');\n# $expectedSubRequest->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# \n# if (Request::HEADER_X_FORWARDED_FOR & Request::getTrustedHeaderSet())\
\ {\n# $expectedSubRequest->headers->set('x-forwarded-for', ['127.0.0.1']);\n\
# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR', '127.0.0.1');\n# }\n\
# $expectedSubRequest->headers->set('forwarded', ['for=\"127.0.0.1\";host=\"localhost\"\
;proto=http']);\n# $expectedSubRequest->server->set('HTTP_FORWARDED', 'for=\"\
127.0.0.1\";host=\"localhost\";proto=http');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# \n# $request = Request::create('/');\n# $request->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# $strategy->render('/', $request);\n# }\n# \n# public\
\ function testESIHeaderIsKeptInSubrequestWithTrustedHeaderDisabled()\n# {\n#\
\ Request::setTrustedProxies([], Request::HEADER_FORWARDED);\n# \n# $this->testESIHeaderIsKeptInSubrequest();\n\
# \n# Request::setTrustedProxies([], -1);\n# }\n# \n# public function testHeadersPossiblyResultingIn304AreNotAssignedToSubrequest()\n\
# {\n# $expectedSubRequest = Request::create('/');\n# $expectedSubRequest->headers->set('x-forwarded-for',\
\ ['127.0.0.1']);\n# $expectedSubRequest->headers->set('forwarded', ['for=\"127.0.0.1\"\
;host=\"localhost\";proto=http']);\n# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# $expectedSubRequest->server->set('HTTP_FORWARDED', 'for=\"\
127.0.0.1\";host=\"localhost\";proto=http');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# $request = Request::create('/', 'GET', [], [], [], ['HTTP_IF_MODIFIED_SINCE'\
\ => 'Fri, 01 Jan 2016 00:00:00 GMT', 'HTTP_IF_NONE_MATCH' => '*']);\n# $strategy->render('/',\
\ $request);\n# }\n# \n# public function testFirstTrustedProxyIsSetAsRemote()\n\
# {\n# Request::setTrustedProxies(['1.1.1.1'], -1);\n# \n# $expectedSubRequest\
\ = Request::create('/');\n# $expectedSubRequest->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# $expectedSubRequest->server->set('REMOTE_ADDR', '127.0.0.1');\n\
# $expectedSubRequest->headers->set('x-forwarded-for', ['127.0.0.1']);\n# $expectedSubRequest->headers->set('forwarded',\
\ ['for=\"127.0.0.1\";host=\"localhost\";proto=http']);\n# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# $expectedSubRequest->server->set('HTTP_FORWARDED', 'for=\"\
127.0.0.1\";host=\"localhost\";proto=http');\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# \n# $request = Request::create('/');\n# $request->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# $strategy->render('/', $request);\n# \n# Request::setTrustedProxies([],\
\ -1);\n# }\n# \n# public function testIpAddressOfRangedTrustedProxyIsSetAsRemote()\n\
# {\n# $expectedSubRequest = Request::create('/');\n# $expectedSubRequest->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# $expectedSubRequest->server->set('REMOTE_ADDR', '127.0.0.1');\n\
# $expectedSubRequest->headers->set('x-forwarded-for', ['127.0.0.1']);\n# $expectedSubRequest->headers->set('forwarded',\
\ ['for=\"127.0.0.1\";host=\"localhost\";proto=http']);\n# $expectedSubRequest->server->set('HTTP_X_FORWARDED_FOR',\
\ '127.0.0.1');\n# $expectedSubRequest->server->set('HTTP_FORWARDED', 'for=\"\
127.0.0.1\";host=\"localhost\";proto=http');\n# \n# Request::setTrustedProxies(['1.1.1.1/24'],\
\ -1);\n# \n# $strategy = new InlineFragmentRenderer($this->getKernelExpectingRequest($expectedSubRequest));\n\
# \n# $request = Request::create('/');\n# $request->headers->set('Surrogate-Capability',\
\ 'abc=\"ESI/1.0\"');\n# $strategy->render('/', $request);\n# \n# Request::setTrustedProxies([],\
\ -1);\n# }\n# \n# public function testStatelessAttributeIsForwardedByDefault()\n\
# {\n# $request = Request::create('/');\n# $request->attributes->set('_stateless',\
\ true);\n# \n# $kernel = $this->createMock(HttpKernelInterface::class);\n# $kernel\n\
# ->expects($this->once())\n# ->method('handle')\n# ->with($this->callback(static\
\ fn (Request $subRequest) => $subRequest->attributes->get('_stateless')))\n#\
\ ;\n# $strategy = new InlineFragmentRenderer($kernel);\n# $strategy->render('/',\
\ $request);\n# }\n# \n# public function testStatelessAttributeCanBeDisabled()\n\
# {\n# $request = Request::create('/');\n# $request->attributes->set('_stateless',\
\ true);\n# \n# $kernel = $this->createMock(HttpKernelInterface::class);\n# $kernel\n\
# ->expects($this->once())\n# ->method('handle')\n# ->with($this->callback(static\
\ fn (Request $subRequest) => !$subRequest->attributes->get('_stateless')))\n\
# ;\n# $strategy = new InlineFragmentRenderer($kernel);\n# $strategy->render(new\
\ ControllerReference('main_controller', ['_stateless' => false]), $request);\n\
# }\n# \n# /**\n# * Creates a Kernel expecting a request equals to $request."
- name: getBar
visibility: public
parameters: []
comment: null
traits:
- PHPUnit\Framework\TestCase
- Symfony\Component\EventDispatcher\EventDispatcher
- Symfony\Component\HttpFoundation\Request
- Symfony\Component\HttpFoundation\RequestStack
- Symfony\Component\HttpFoundation\Response
- Symfony\Component\HttpKernel\Controller\ArgumentResolverInterface
- Symfony\Component\HttpKernel\Controller\ControllerReference
- Symfony\Component\HttpKernel\Controller\ControllerResolverInterface
- Symfony\Component\HttpKernel\Event\ExceptionEvent
- Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer
- Symfony\Component\HttpKernel\HttpKernel
- Symfony\Component\HttpKernel\HttpKernelInterface
- Symfony\Component\HttpKernel\KernelEvents
- Symfony\Contracts\EventDispatcher\EventDispatcherInterface
interfaces: []