You are here

function session_exists_cache_context_test_page_top in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/system/tests/modules/session_exists_cache_context_test/session_exists_cache_context_test.module \session_exists_cache_context_test_page_top()

Implements hook_page_top().

File

core/modules/system/tests/modules/session_exists_cache_context_test/session_exists_cache_context_test.module, line 11
Test module.

Code

function session_exists_cache_context_test_page_top(array &$page_top) {

  // Ensure this hook is invoked on every page load.
  $page_top['#cache']['max-age'] = 0;
  $request = \Drupal::request();
  $session_exists = \Drupal::service('session_configuration')
    ->hasSession($request);
  $page_top['session_exists_cache_context_test'] = [
    'label' => [
      '#markup' => '<p>' . ($session_exists ? 'Session exists!' : 'Session does not exist!') . '</p>',
    ],
    'cache_context_value' => [
      '#markup' => '<code>[session.exists]=' . \Drupal::service('cache_context.session.exists')
        ->getContext() . '</code>',
    ],
  ];
  if (\Drupal::request()->query
    ->get('trigger_session')) {
    $_SESSION['session_exists_cache_context_test'] = TRUE;
  }
}