public function ThemeRenderAndAutoescapeTest::testBubblingMetadata in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::testBubblingMetadata()
Ensure cache metadata is bubbled when using theme_render_and_autoescape().
File
- core/
tests/ Drupal/ KernelTests/ Core/ Theme/ ThemeRenderAndAutoescapeTest.php, line 85 - Contains \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest.
Class
- ThemeRenderAndAutoescapeTest
- Tests the theme_render_and_autoescape() function.
Namespace
Drupal\KernelTests\Core\ThemeCode
public function testBubblingMetadata() {
$link = new GeneratedLink();
$link
->setGeneratedLink('<a href="http://example.com"></a>');
$link
->addCacheTags([
'foo',
]);
$link
->addAttachments([
'library' => [
'system/base',
],
]);
$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="http://example.com"></a>', $output);
/** @var \Drupal\Core\Render\BubbleableMetadata $metadata */
$metadata = $context
->pop();
$this
->assertEquals([
'foo',
], $metadata
->getCacheTags());
$this
->assertEquals([
'library' => [
'system/base',
],
], $metadata
->getAttachments());
}