function TwigFilterTest::testLegacyTwigWithoutFunction

Test "twig_without" filter function.

@expectedDeprecation twig_without() is deprecated in Drupal 8.7.x and will be removed before Drupal 9.0.0. Use \Drupal\Core\Template\TwigExtension::withoutFilter(). See https://www.drupal.org/node/3011154. @group legacy

File

core/modules/system/tests/src/Kernel/Theme/TwigFilterTest.php, line 146

Class

TwigFilterTest
Tests Drupal's Twig filters.

Namespace

Drupal\Tests\system\Kernel\Theme

Code

public function testLegacyTwigWithoutFunction() {
    // Load the twig engine to ensure twig_without() exists.
    $twig_engine = new Extension($this->root, 'theme_engine', 'core/themes/engines/twig/twig.info.yml', 'twig.engine');
    $twig_engine->load();
    $filter_test = [
        'red' => '#F00',
        'green' => '#0F0',
        'blue' => '#00F',
    ];
    // Filter out red key.
    $result_without_red = twig_without($filter_test, 'red');
    $expected_without_red = $filter_test;
    unset($expected_without_red['red']);
    $this->assertSame($expected_without_red, $result_without_red);
    // Filter nothing and check the array is unaltered.
    $result_unaltered = twig_without($filter_test);
    $this->assertSame($filter_test, $result_unaltered);
    // Filter out blue and green.
    $result_without_blue_green = twig_without($filter_test, 'blue', 'green');
    $expected_without_blue_green = $filter_test;
    unset($expected_without_blue_green['blue']);
    unset($expected_without_blue_green['green']);
    $this->assertSame($expected_without_blue_green, $result_without_blue_green);
}

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