function ThemeRenderAndAutoescapeTest::testBubblingMetadata
Same name in other branches
- 8.9.x core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::testBubblingMetadata()
- 10 core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::testBubblingMetadata()
- 11.x 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
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());
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.