You are here

public function FilterCaptionTwigDebugTest::testCaptionFilter in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php \Drupal\Tests\filter\Kernel\FilterCaptionTwigDebugTest::testCaptionFilter()

Test the caption filter with Twig debugging on.

File

core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php, line 36

Class

FilterCaptionTwigDebugTest
Tests the caption filter with Twig debugging on.

Namespace

Drupal\Tests\filter\Kernel

Code

public function testCaptionFilter() {
  $manager = $this->container
    ->get('plugin.manager.filter');
  $bag = new FilterPluginCollection($manager, []);
  $filter = $bag
    ->get('filter_caption');
  $renderer = $this->container
    ->get('renderer');
  $test = function ($input) use ($filter, $renderer) {
    return $renderer
      ->executeInRenderContext(new RenderContext(), function () use ($input, $filter) {
      return $filter
        ->process($input, 'und');
    });
  };

  // No data-caption attribute.
  $input = '<img src="llama.jpg" />';
  $expected = $input;
  $this
    ->assertEquals($expected, $test($input)
    ->getProcessedText());

  // Data-caption attribute.
  $input = '<img src="llama.jpg" data-caption="Loquacious llama!" />';
  $expected = '<img src="llama.jpg" /><figcaption>Loquacious llama!</figcaption>';
  $output = $test($input)
    ->getProcessedText();
  $this
    ->assertStringContainsString($expected, $output);
  $this
    ->assertStringContainsString("<!-- THEME HOOK: 'filter_caption' -->", $output);
}