LinkGenerationTest.php in Zircon Profile 8.0
File
core/modules/system/src/Tests/Utility/LinkGenerationTest.php
View source
<?php
namespace Drupal\system\Tests\Utility;
use Drupal\Component\Utility\SafeMarkup;
use Drupal\Core\Render\RenderContext;
use Drupal\Core\Url;
use Drupal\simpletest\KernelTestBase;
class LinkGenerationTest extends KernelTestBase {
public static $modules = [
'link_generation_test',
];
function testHookLinkAlter() {
$url = Url::fromUri('http://example.com');
$renderer = \Drupal::service('renderer');
$link = $renderer
->executeInRenderContext(new RenderContext(), function () use ($url) {
return \Drupal::l([
'#markup' => '<em>link with markup</em>',
], $url);
});
$this
->setRawContent($link);
$this
->assertTrue(SafeMarkup::isSafe($link), 'The output of link generation is marked safe as it is a link.');
$this
->assertRaw('<em>link with markup</em>');
\Drupal::state()
->set('link_generation_test_link_alter', TRUE);
$link = $renderer
->executeInRenderContext(new RenderContext(), function () use ($url) {
return \Drupal::l([
'#markup' => '<em>link with markup</em>',
], $url);
});
$this
->setRawContent($link);
$this
->assertTrue(SafeMarkup::isSafe($link), 'The output of link generation is marked safe as it is a link.');
$this
->assertEscaped('<em>link with markup</em> <strong>Test!</strong>');
\Drupal::state()
->set('link_generation_test_link_alter_safe', TRUE);
$link = $renderer
->executeInRenderContext(new RenderContext(), function () use ($url) {
return \Drupal::l([
'#markup' => '<em>link with markup</em>',
], $url);
});
$this
->setRawContent($link);
$this
->assertTrue(SafeMarkup::isSafe($link), 'The output of link generation is marked safe as it is a link.');
$this
->assertRaw('<em>link with markup</em> <strong>Test!</strong>');
$link = $renderer
->executeInRenderContext(new RenderContext(), function () use ($url) {
return \Drupal::l('<em>link with markup</em>', $url);
});
$this
->setRawContent($link);
$this
->assertTrue(SafeMarkup::isSafe($link), 'The output of link generation is marked safe as it is a link.');
$this
->assertEscaped('<em>link with markup</em>');
$this
->assertRaw('<strong>Test!</strong>');
}
}