You are here

public function TemplatePreprocessDefaultVariablesAlterEventTest::testTemplatePreprocessDefaultVariablesAlterEvent in Hook Event Dispatcher 3.x

Same name and namespace in other branches
  1. 8.2 modules/core_event_dispatcher/tests/src/Unit/Theme/TemplatePreprocessDefaultVariablesAlterEventTest.php \Drupal\Tests\core_event_dispatcher\Unit\Theme\TemplatePreprocessDefaultVariablesAlterEventTest::testTemplatePreprocessDefaultVariablesAlterEvent()

TemplatePreprocessDefaultVariablesAlterEvent test.

File

modules/core_event_dispatcher/tests/src/Unit/Theme/TemplatePreprocessDefaultVariablesAlterEventTest.php, line 41

Class

TemplatePreprocessDefaultVariablesAlterEventTest
Class TemplatePreprocessDefaultVariablesAlterEventTest.

Namespace

Drupal\Tests\core_event_dispatcher\Unit\Theme

Code

public function testTemplatePreprocessDefaultVariablesAlterEvent() : void {
  $newVariable = [
    'test_variable' => TRUE,
  ];
  $this->manager
    ->setEventCallbacks([
    HookEventDispatcherInterface::TEMPLATE_PREPROCESS_DEFAULT_VARIABLES_ALTER => static function (TemplatePreprocessDefaultVariablesAlterEvent $event) use ($newVariable) {
      $variables =& $event
        ->getVariables();
      $variables += $newVariable;
    },
  ]);
  $variables = [
    'attributes' => [],
    'title_attributes' => [],
    'content_attributes' => [],
    'title_prefix' => [],
    'title_suffix' => [],
    'db_is_active' => TRUE,
    'is_admin' => FALSE,
    'logged_in' => FALSE,
  ];
  $expectedVariables = $variables + $newVariable;
  core_event_dispatcher_template_preprocess_default_variables_alter($variables);

  /** @var \Drupal\core_event_dispatcher\Event\Theme\TemplatePreprocessDefaultVariablesAlterEvent $event */
  $event = $this->manager
    ->getRegisteredEvent(HookEventDispatcherInterface::TEMPLATE_PREPROCESS_DEFAULT_VARIABLES_ALTER);
  self::assertSame($expectedVariables, $variables);
  self::assertSame($expectedVariables, $event
    ->getVariables());
}