function FrontMatterTest::testFrontMatter
Same name in other branches
- 9 core/tests/Drupal/KernelTests/Core/Theme/FrontMatterTest.php \Drupal\KernelTests\Core\Theme\FrontMatterTest::testFrontMatter()
- 11.x core/tests/Drupal/KernelTests/Core/Theme/FrontMatterTest.php \Drupal\KernelTests\Core\Theme\FrontMatterTest::testFrontMatter()
Test Twig template front matter.
@covers \Drupal\Core\Template\TwigEnvironment::compileSource @covers \Drupal\Core\Template\TwigEnvironment::getTemplateMetadata
@dataProvider \Drupal\Tests\Component\FrontMatter\FrontMatterTest::providerFrontMatterData
Parameters
array|null $yaml: The YAML used for metadata in a Twig template.
int $line: The expected line number where the source code starts.
string $content: The content to use for testing purposes.
File
-
core/
tests/ Drupal/ KernelTests/ Core/ Theme/ FrontMatterTest.php, line 98
Class
- FrontMatterTest
- Tests Twig front matter support.
Namespace
Drupal\KernelTests\Core\ThemeCode
public function testFrontMatter($yaml, $line, $content = ComponentFrontMatterTest::SOURCE) : void {
// Create a temporary Twig template.
$source = ComponentFrontMatterTest::createFrontMatterSource($yaml, $content);
$file = $this->createTwigTemplate($source);
$name = basename($file);
// Ensure the proper metadata is returned.
$metadata = $this->twig
->getTemplateMetadata($name);
$this->assertEquals($yaml ?? [], $metadata);
// Ensure the metadata is never rendered.
$output = $this->twig
->load($name)
->render();
$this->assertEquals($content, $output);
// Create a temporary Twig template.
$source = ComponentFrontMatterTest::createFrontMatterSource($yaml, static::BROKEN_SOURCE);
$file = $this->createTwigTemplate($source);
$name = basename($file);
try {
$this->twig
->load($name);
} catch (Error $error) {
$this->assertEquals($line, $error->getTemplateLine());
}
// Ensure string based templates work too.
try {
$this->twig
->createTemplate($source)
->render();
} catch (Error $error) {
$this->assertEquals($line, $error->getTemplateLine());
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.