public function TwigExtensionTest::testSafeJoin in Drupal 8
Same name and namespace in other branches
- 9 core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php \Drupal\Tests\Core\Template\TwigExtensionTest::testSafeJoin()
- 10 core/tests/Drupal/Tests/Core/Template/TwigExtensionTest.php \Drupal\Tests\Core\Template\TwigExtensionTest::testSafeJoin()
@covers ::safeJoin
File
- core/
tests/ Drupal/ Tests/ Core/ Template/ TwigExtensionTest.php, line 214
Class
- TwigExtensionTest
- Tests the twig extension.
Namespace
Drupal\Tests\Core\TemplateCode
public function testSafeJoin() {
$this->renderer
->expects($this
->any())
->method('render')
->with([
'#markup' => '<strong>will be rendered</strong>',
'#printed' => FALSE,
])
->willReturn('<strong>will be rendered</strong>');
$twig_environment = $this
->prophesize(TwigEnvironment::class)
->reveal();
// Simulate t().
$markup = $this
->prophesize(TranslatableMarkup::class);
$markup
->__toString()
->willReturn('<em>will be markup</em>');
$markup = $markup
->reveal();
$items = [
'<em>will be escaped</em>',
$markup,
[
'#markup' => '<strong>will be rendered</strong>',
],
];
$result = $this->systemUnderTest
->safeJoin($twig_environment, $items, '<br/>');
$this
->assertEquals('<em>will be escaped</em><br/><em>will be markup</em><br/><strong>will be rendered</strong>', $result);
// Ensure safe_join Twig filter supports Traversable variables.
$items = new \ArrayObject([
'<em>will be escaped</em>',
$markup,
[
'#markup' => '<strong>will be rendered</strong>',
],
]);
$result = $this->systemUnderTest
->safeJoin($twig_environment, $items, ', ');
$this
->assertEquals('<em>will be escaped</em>, <em>will be markup</em>, <strong>will be rendered</strong>', $result);
// Ensure safe_join Twig filter supports empty variables.
$items = NULL;
$result = $this->systemUnderTest
->safeJoin($twig_environment, $items, '<br>');
$this
->assertEmpty($result);
}