You are here

public function HtmlEscapedTextTest::providerToString in Drupal 10

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Component/Render/HtmlEscapedTextTest.php \Drupal\Tests\Component\Render\HtmlEscapedTextTest::providerToString()
  2. 9 core/tests/Drupal/Tests/Component/Render/HtmlEscapedTextTest.php \Drupal\Tests\Component\Render\HtmlEscapedTextTest::providerToString()

Data provider for testToString().

See also

testToString()

File

core/tests/Drupal/Tests/Component/Render/HtmlEscapedTextTest.php, line 34

Class

HtmlEscapedTextTest
Tests the HtmlEscapedText class.

Namespace

Drupal\Tests\Component\Render

Code

public function providerToString() {

  // Checks that invalid multi-byte sequences are escaped.
  $tests[] = [
    "",
    'Foo�bar',
    'Escapes invalid sequence "Foo\\xC0bar"',
  ];
  $tests[] = [
    "",
    '�"',
    'Escapes invalid sequence "\\xc2\\""',
  ];
  $tests[] = [
    "Foo ÿñ",
    "Foo ÿñ",
    'Does not escape valid sequence "Foo ÿñ"',
  ];

  // Checks that special characters are escaped.
  $script_tag = $this
    ->prophesize(MarkupInterface::class);
  $script_tag
    ->__toString()
    ->willReturn('<script>');
  $script_tag = $script_tag
    ->reveal();
  $tests[] = [
    $script_tag,
    '&lt;script&gt;',
    'Escapes &lt;script&gt; even inside an object that implements MarkupInterface.',
  ];
  $tests[] = [
    "<script>",
    '&lt;script&gt;',
    'Escapes &lt;script&gt;',
  ];
  $tests[] = [
    '<>&"\'',
    '&lt;&gt;&amp;&quot;&#039;',
    'Escapes reserved HTML characters.',
  ];
  $specialchars = $this
    ->prophesize(MarkupInterface::class);
  $specialchars
    ->__toString()
    ->willReturn('<>&"\'');
  $specialchars = $specialchars
    ->reveal();
  $tests[] = [
    $specialchars,
    '&lt;&gt;&amp;&quot;&#039;',
    'Escapes reserved HTML characters even inside an object that implements MarkupInterface.',
  ];
  return $tests;
}