ComponentNodeVisitorTest.php
Same filename in this branch
Same filename and directory in other branches
Namespace
Drupal\KernelTests\ComponentsFile
-
core/
tests/ Drupal/ KernelTests/ Components/ ComponentNodeVisitorTest.php
View source
<?php
declare (strict_types=1);
namespace Drupal\KernelTests\Components;
/**
* Tests the node visitor.
*
* @coversDefaultClass \Drupal\Core\Template\ComponentNodeVisitor
* @group sdc
*/
class ComponentNodeVisitorTest extends ComponentKernelTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'system',
'sdc_other_node_visitor',
];
/**
* {@inheritdoc}
*/
protected static $themes = [
'sdc_theme_test',
];
const DEBUG_COMPONENT_ID_PATTERN = '/<!-- ([\\n\\s\\S]*) Component start: ([\\SA-Za-z+-:]+) -->/';
const DEBUG_VARIANT_ID_PATTERN = '/<!-- [\\n\\s\\S]* with variant: "([\\SA-Za-z+-]+)" -->/';
/**
* Test that other visitors can modify Twig nodes.
*/
public function testOtherVisitorsCanModifyTwigNodes() : void {
$build = [
'#type' => 'inline_template',
'#template' => "{% embed('sdc_theme_test_base:my-card-no-schema') %}{% block card_body %}Foo bar{% endblock %}{% endembed %}",
];
$this->renderComponentRenderArray($build);
// If this is reached, the test passed.
$this->assertTrue(TRUE);
}
/**
* Test debug output for sdc components with component id and variant.
*/
public function testDebugRendersComponentStartWithVariant() : void {
// Enable twig theme debug to ensure that any
// changes to theme debugging format force checking
// that the auto paragraph filter continues to be applied
// correctly.
$twig = \Drupal::service('twig');
$twig->enableDebug();
$build = [
'#type' => 'component',
'#component' => 'sdc_theme_test:my-card',
'#variant' => 'vertical',
'#props' => [
'header' => 'My header',
],
'#slots' => [
'card_body' => 'Foo bar',
],
];
$crawler = $this->renderComponentRenderArray($build);
$content = $crawler->html();
$matches = [];
\preg_match_all(self::DEBUG_COMPONENT_ID_PATTERN, $content, $matches);
$this->assertSame($matches[2][0], 'sdc_theme_test:my-card');
\preg_match_all(self::DEBUG_VARIANT_ID_PATTERN, $content, $matches);
$this->assertSame($matches[1][0], 'vertical');
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
ComponentNodeVisitorTest | Tests the node visitor. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.