Skip to content

Commit

Permalink
[Tests] Aligned fragment renderer tests with the changes
Browse files Browse the repository at this point in the history
  • Loading branch information
alongosz committed Oct 17, 2024
1 parent e869246 commit 38c1ebc
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use Ibexa\Bundle\Core\Fragment\DecoratedFragmentRenderer;
use Ibexa\Bundle\Core\Fragment\FragmentListenerFactory;
use Ibexa\Bundle\Core\Fragment\InlineFragmentRenderer;
use Ibexa\Bundle\Core\Fragment\SiteAccessSerializerInterface;
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Definition;
Expand Down Expand Up @@ -65,7 +66,7 @@ public function testProcess()
$decoratedInlineDef = $this->container->getDefinition('fragment.renderer.inline');
$this->assertSame(['kernel.fragment_renderer' => [[]]], $decoratedInlineDef->getTags());
$this->assertEquals(
[new Reference('fragment.renderer.inline.inner')],
[new Reference('fragment.renderer.inline.inner'), new Reference(SiteAccessSerializerInterface::class)],
$decoratedInlineDef->getArguments()
);
$this->assertSame(InlineFragmentRenderer::class, $decoratedInlineDef->getClass());
Expand All @@ -74,15 +75,15 @@ public function testProcess()
$decoratedEsiDef = $this->container->getDefinition('fragment.renderer.esi');
$this->assertSame(['kernel.fragment_renderer' => [[]]], $decoratedEsiDef->getTags());
$this->assertEquals(
[new Reference('fragment.renderer.esi.inner')],
[new Reference('fragment.renderer.esi.inner'), new Reference(SiteAccessSerializerInterface::class)],
$decoratedEsiDef->getArguments()
);

$this->assertContainerBuilderHasServiceDefinitionWithParent('fragment.renderer.hinclude', DecoratedFragmentRenderer::class);
$decoratedHincludeDef = $this->container->getDefinition('fragment.renderer.hinclude');
$this->assertSame(['kernel.fragment_renderer' => [[]]], $decoratedHincludeDef->getTags());
$this->assertEquals(
[new Reference('fragment.renderer.hinclude.inner')],
[new Reference('fragment.renderer.hinclude.inner'), new Reference(SiteAccessSerializerInterface::class)],
$decoratedHincludeDef->getArguments()
);
}
Expand Down
30 changes: 21 additions & 9 deletions tests/bundle/Core/Fragment/DecoratedFragmentRendererTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,24 @@
namespace Ibexa\Tests\Bundle\Core\Fragment;

use Ibexa\Bundle\Core\Fragment\DecoratedFragmentRenderer;
use Ibexa\Bundle\Core\Fragment\SiteAccessSerializer;
use Ibexa\Core\MVC\Symfony\Component\Serializer\SerializerTrait;
use Ibexa\Core\MVC\Symfony\SiteAccess;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ControllerReference;
use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
use Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;

/**
* @covers \Ibexa\Bundle\Core\Fragment\DecoratedFragmentRenderer
*/
class DecoratedFragmentRendererTest extends FragmentRendererBaseTest
{
/** @var \PHPUnit\Framework\MockObject\MockObject */
protected $innerRenderer;
use SerializerTrait;

/** @var \Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface&\PHPUnit\Framework\MockObject\MockObject */
protected FragmentRendererInterface $innerRenderer;

protected function setUp(): void
{
Expand All @@ -33,9 +40,11 @@ public function testSetFragmentPathNotRoutableRenderer()
->expects($this->never())
->method('analyseLink');

$renderer = new DecoratedFragmentRenderer($this->innerRenderer);
$renderer = $this->getRenderer();
$renderer->setSiteAccess($siteAccess);
$renderer->setFragmentPath('foo');
if ($renderer instanceof RoutableFragmentRenderer) {
$renderer->setFragmentPath('foo');
}
}

public function testSetFragmentPath()
Expand All @@ -53,7 +62,7 @@ public function testSetFragmentPath()
->expects($this->once())
->method('setFragmentPath')
->with('/bar/foo');
$renderer = new DecoratedFragmentRenderer($innerRenderer);
$renderer = new DecoratedFragmentRenderer($innerRenderer, new SiteAccessSerializer($this->getSerializer()));
$renderer->setSiteAccess($siteAccess);
$renderer->setFragmentPath('/foo');
}
Expand All @@ -66,7 +75,7 @@ public function testGetName()
->method('getName')
->will($this->returnValue($name));

$renderer = new DecoratedFragmentRenderer($this->innerRenderer);
$renderer = $this->getRenderer();
$this->assertSame($name, $renderer->getName());
}

Expand All @@ -82,7 +91,7 @@ public function testRendererAbsoluteUrl()
->with($url, $request, $options)
->will($this->returnValue($expectedReturn));

$renderer = new DecoratedFragmentRenderer($this->innerRenderer);
$renderer = $this->getRenderer();
$this->assertSame($expectedReturn, $renderer->render($url, $request, $options));
}

Expand All @@ -105,7 +114,7 @@ public function testRendererControllerReference()
->with($reference, $request, $options)
->will($this->returnValue($expectedReturn));

$renderer = new DecoratedFragmentRenderer($this->innerRenderer);
$renderer = $this->getRenderer();
$this->assertSame($expectedReturn, $renderer->render($reference, $request, $options));
$this->assertTrue(isset($reference->attributes['serialized_siteaccess']));
$serializedSiteAccess = json_encode($siteAccess);
Expand All @@ -129,9 +138,12 @@ public function getRequest(SiteAccess $siteAccess): Request
return $request;
}

/**
* @return \Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface&\Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessAware
*/
public function getRenderer(): FragmentRendererInterface
{
return new DecoratedFragmentRenderer($this->innerRenderer);
return new DecoratedFragmentRenderer($this->innerRenderer, new SiteAccessSerializer($this->getSerializer()));
}
}

Expand Down
11 changes: 9 additions & 2 deletions tests/bundle/Core/Fragment/InlineFragmentRendererTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,21 @@
namespace Ibexa\Tests\Bundle\Core\Fragment;

use Ibexa\Bundle\Core\Fragment\InlineFragmentRenderer;
use Ibexa\Bundle\Core\Fragment\SiteAccessSerializer;
use Ibexa\Core\MVC\Symfony\Component\Serializer\SerializerTrait;
use Ibexa\Core\MVC\Symfony\SiteAccess;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\Controller\ControllerReference;
use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;

/**
* @covers \Ibexa\Bundle\Core\Fragment\InlineFragmentRenderer
*/
class InlineFragmentRendererTest extends DecoratedFragmentRendererTest
{
use SerializerTrait;

public function testRendererControllerReference()
{
$reference = new ControllerReference('FooBundle:bar:baz');
Expand All @@ -36,7 +43,7 @@ public function testRendererControllerReference()
->with($reference, $request, $options)
->will($this->returnValue($expectedReturn));

$renderer = new InlineFragmentRenderer($this->innerRenderer);
$renderer = $this->getRenderer();
$this->assertSame($expectedReturn, $renderer->render($reference, $request, $options));
$this->assertTrue(isset($reference->attributes['serialized_siteaccess']));
$serializedSiteAccess = json_encode($siteAccess);
Expand Down Expand Up @@ -80,7 +87,7 @@ public function getRequest(SiteAccess $siteAccess): Request

public function getRenderer(): FragmentRendererInterface
{
return new InlineFragmentRenderer($this->innerRenderer);
return new InlineFragmentRenderer($this->innerRenderer, new SiteAccessSerializer($this->getSerializer()));
}
}

Expand Down

0 comments on commit 38c1ebc

Please sign in to comment.