public function ThemeRenderAndAutoescapeTest::testBubblingMetadataWithRenderable in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::testBubblingMetadataWithRenderable()
Ensure cache metadata is bubbled when using theme_render_and_autoescape().
File
- core/
tests/ Drupal/ KernelTests/ Core/ Theme/ ThemeRenderAndAutoescapeTest.php, line 109 - Contains \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest.
Class
- ThemeRenderAndAutoescapeTest
- Tests the theme_render_and_autoescape() function.
Namespace
Drupal\KernelTests\Core\ThemeCode
public function testBubblingMetadataWithRenderable() {
$link = new Link('', Url::fromRoute('<current>'));
$context = new RenderContext();
// Use a closure here since we need to render with a render context.
$theme_render_and_autoescape = function () use ($link) {
return theme_render_and_autoescape($link);
};
/** @var \Drupal\Core\Render\RendererInterface $renderer */
$renderer = \Drupal::service('renderer');
$output = $renderer
->executeInRenderContext($context, $theme_render_and_autoescape);
$this
->assertEquals('<a href="/' . urlencode('<none>') . '"></a>', $output);
/** @var \Drupal\Core\Render\BubbleableMetadata $metadata */
$metadata = $context
->pop();
$this
->assertEquals([
'route',
], $metadata
->getCacheContexts());
}