eca-1.0.x-dev/modules/render/tests/src/Kernel/TextTest.php
modules/render/tests/src/Kernel/TextTest.php
<?php
namespace Drupal\Tests\eca_render\Kernel;
use Drupal\Core\Render\Element;
use Drupal\eca_test_render_basics\Event\BasicRenderEvent;
use Drupal\eca_test_render_basics\RenderBasicsEvents;
use PHPUnit\Framework\Attributes\Group;
/**
* Kernel tests regarding ECA render Text action.
*/
#[Group('eca')]
#[Group('eca_render')]
class TextTest extends RenderActionsTestBase {
/**
* Tests the action plugin "eca_render_text".
*/
public function testText(): void {
/** @var \Drupal\eca_render\Plugin\Action\Text $action */
$action = $this->actionManager->createInstance('eca_render_text:filter', [
'text' => '<h1>Hello from ECA</h1>',
'format' => 'plain_text',
'name' => '',
'token_name' => '',
'weight' => '100',
'mode' => 'append',
]);
$build = [];
$this->eventDispatcher->addListener(RenderBasicsEvents::BASIC, function (BasicRenderEvent $event) use (&$action, &$build) {
$action->setEvent($event);
$action->execute();
$build = $event->getRenderArray();
});
$this->dispatchBasicRenderEvent();
$build = array_intersect_key($build, array_flip(Element::children($build)));
$this->assertSame('processed_text', $build[0]['#type']);
$this->assertSame('plain_text', $build[0]['#format']);
$rendered = trim((string) \Drupal::service('renderer')->renderInIsolation($build));
$this->assertEquals('<p><h1>Hello from ECA</h1></p>', $rendered);
}
}
