FilterCaptionTwigDebugTest.php

Same filename and directory in other branches
  1. 8.9.x core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php
  2. 10 core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php
  3. 11.x core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php

Namespace

Drupal\Tests\filter\Kernel

File

core/modules/filter/tests/src/Kernel/FilterCaptionTwigDebugTest.php

View source
<?php

namespace Drupal\Tests\filter\Kernel;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Render\RenderContext;
use Drupal\filter\FilterPluginCollection;
use Drupal\KernelTests\KernelTestBase;

/**
 * Tests the caption filter with Twig debugging on.
 *
 * @group filter
 */
class FilterCaptionTwigDebugTest extends KernelTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected static $modules = [
        'filter',
    ];
    
    /**
     * {@inheritdoc}
     */
    public function register(ContainerBuilder $container) {
        parent::register($container);
        // Enable Twig debugging.
        $parameters = $container->getParameter('twig.config');
        $parameters['debug'] = TRUE;
        $container->setParameter('twig.config', $parameters);
    }
    
    /**
     * Tests the caption filter with Twig debugging on.
     */
    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);
    }

}

Classes

Title Deprecated Summary
FilterCaptionTwigDebugTest Tests the caption filter with Twig debugging on.

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