You are here

function ThemeTest::testFrontPageThemeSuggestion in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 core/modules/system/src/Tests/Theme/ThemeTest.php \Drupal\system\Tests\Theme\ThemeTest::testFrontPageThemeSuggestion()

Ensure page-front template suggestion is added when on front page.

File

core/modules/system/src/Tests/Theme/ThemeTest.php, line 150
Contains \Drupal\system\Tests\Theme\ThemeTest.

Class

ThemeTest
Tests low-level theme functions.

Namespace

Drupal\system\Tests\Theme

Code

function testFrontPageThemeSuggestion() {

  // Set the current route to user.login because theme_get_suggestions() will
  // query it to see if we are on the front page.
  $request = Request::create('/user/login');
  $request->attributes
    ->set(RouteObjectInterface::ROUTE_NAME, 'user.login');
  $request->attributes
    ->set(RouteObjectInterface::ROUTE_OBJECT, new Route('/user/login'));
  \Drupal::requestStack()
    ->push($request);
  $this
    ->config('system.site')
    ->set('page.front', '/user/login')
    ->save();
  $suggestions = theme_get_suggestions(array(
    'user',
    'login',
  ), 'page');

  // Set it back to not annoy the batch runner.
  \Drupal::requestStack()
    ->pop();
  $this
    ->assertTrue(in_array('page__front', $suggestions), 'Front page template was suggested.');
}