function ThemeRenderAndAutoescapeTest::providerTestThemeRenderAndAutoescape

Same name and namespace in other branches
  1. 9 core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::providerTestThemeRenderAndAutoescape()
  2. 10 core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::providerTestThemeRenderAndAutoescape()
  3. 11.x core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php \Drupal\KernelTests\Core\Theme\ThemeRenderAndAutoescapeTest::providerTestThemeRenderAndAutoescape()

Provide test examples.

File

core/tests/Drupal/KernelTests/Core/Theme/ThemeRenderAndAutoescapeTest.php, line 62

Class

ThemeRenderAndAutoescapeTest
Tests the <a href="/api/drupal/core%21includes%21theme.inc/function/theme_render_and_autoescape/8.9.x" title="Escapes and renders variables for theme functions." class="local">theme_render_and_autoescape</a>() function.

Namespace

Drupal\KernelTests\Core\Theme

Code

public function providerTestThemeRenderAndAutoescape() {
    return [
        'empty string unchanged' => [
            '',
            '',
        ],
        'simple string unchanged' => [
            'ab',
            'ab',
        ],
        'int (scalar) cast to string' => [
            111,
            '111',
        ],
        'float (scalar) cast to string' => [
            2.1,
            '2.1',
        ],
        '> is escaped' => [
            '>',
            '&gt;',
        ],
        'Markup EM tag is unchanged' => [
            Markup::create('<em>hi</em>'),
            '<em>hi</em>',
        ],
        'Markup SCRIPT tag is unchanged' => [
            Markup::create('<script>alert("hi");</script>'),
            '<script>alert("hi");</script>',
        ],
        'EM tag in string is escaped' => [
            '<em>hi</em>',
            Html::escape('<em>hi</em>'),
        ],
        'type link render array is rendered' => [
            [
                '#type' => 'link',
                '#title' => 'Text',
                '#url' => '<none>',
            ],
            '<a href="">Text</a>',
        ],
        'type markup with EM tags is rendered' => [
            [
                '#markup' => '<em>hi</em>',
            ],
            '<em>hi</em>',
        ],
        'SCRIPT tag in string is escaped' => [
            '<script>alert(123)</script>',
            Html::escape('<script>alert(123)</script>'),
        ],
        'type plain_text render array EM tag is escaped' => [
            [
                '#plain_text' => '<em>hi</em>',
            ],
            Html::escape('<em>hi</em>'),
        ],
        'type hidden render array is rendered' => [
            [
                '#type' => 'hidden',
                '#name' => 'foo',
                '#value' => 'bar',
            ],
            "<input type=\"hidden\" name=\"foo\" value=\"bar\" />\n",
        ],
    ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.