You are here

public function DevelTwigExtensionTest::testDumpFunctionsRegistered in Devel 8.3

Same name and namespace in other branches
  1. 8 tests/src/Kernel/DevelTwigExtensionTest.php \Drupal\Tests\devel\Kernel\DevelTwigExtensionTest::testDumpFunctionsRegistered()
  2. 8.2 tests/src/Kernel/DevelTwigExtensionTest.php \Drupal\Tests\devel\Kernel\DevelTwigExtensionTest::testDumpFunctionsRegistered()
  3. 4.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 81

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');
    }
  }
}