function DevelTwigExtensionTest::testDumpFunctionsRegistered

Same name in other branches
  1. 5.x tests/src/Kernel/DevelTwigExtensionTest.php \Drupal\Tests\devel\Kernel\DevelTwigExtensionTest::testDumpFunctionsRegistered()

Tests that the Twig dump functions are registered properly.

File

tests/src/Kernel/DevelTwigExtensionTest.php, line 82

Class

DevelTwigExtensionTest
Tests Twig extensions.

Namespace

Drupal\Tests\devel\Kernel

Code

public function testDumpFunctionsRegistered() {
    
    /** @var \Twig_SimpleFunction[] $functions */
    $functions = \Drupal::service('twig')->getFunctions();
    $dump_functions = [
        'devel_dump',
        'kpr',
    ];
    $message_functions = [
        'devel_message',
        'dpm',
        'dsm',
    ];
    $registered_functions = $dump_functions + $message_functions;
    foreach ($registered_functions as $name) {
        $function = $functions[$name];
        $this->assertTrue($function instanceof \Twig_SimpleFunction);
        $this->assertEquals($function->getName(), $name);
        $this->assertTrue($function->needsContext());
        $this->assertTrue($function->needsEnvironment());
        $this->assertTrue($function->isVariadic());
        is_callable($function->getCallable(), TRUE, $callable);
        if (in_array($name, $dump_functions)) {
            $this->assertEquals($callable, 'Drupal\\devel\\Twig\\Extension\\Debug::dump');
        }
        else {
            $this->assertEquals($callable, 'Drupal\\devel\\Twig\\Extension\\Debug::message');
        }
    }
}