Mercurial > hg > isophonics-drupal-site
diff core/modules/system/src/Tests/Theme/TwigRawTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/system/src/Tests/Theme/TwigRawTest.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,51 @@ +<?php + +namespace Drupal\system\Tests\Theme; + +use Drupal\simpletest\WebTestBase; + +/** + * Tests Twig 'raw' filter. + * + * @group Theme + */ +class TwigRawTest extends WebTestBase { + + /** + * Modules to enable. + * + * @var array + */ + public static $modules = ['twig_theme_test']; + + /** + * Tests the raw filter inside an autoescape tag. + */ + public function testAutoescapeRaw() { + $test = [ + '#theme' => 'twig_raw_test', + '#script' => '<script>alert("This alert is real because I will put it through the raw filter!");</script>', + ]; + $rendered = \Drupal::service('renderer')->renderRoot($test); + $this->setRawContent($rendered); + $this->assertRaw('<script>alert("This alert is real because I will put it through the raw filter!");</script>'); + } + + /** + * Tests autoescaping of unsafe content. + * + * This is one of the most important tests in Drupal itself in terms of + * security. + */ + public function testAutoescape() { + $script = '<script>alert("This alert is unreal!");</script>'; + $build = [ + '#theme' => 'twig_autoescape_test', + '#script' => $script, + ]; + $rendered = \Drupal::service('renderer')->renderRoot($build); + $this->setRawContent($rendered); + $this->assertEscaped($script); + } + +}