function ThemeTest::testFrontPageThemeSuggestion

Same name in other branches
  1. 9 core/modules/system/tests/src/Functional/Theme/ThemeTest.php \Drupal\Tests\system\Functional\Theme\ThemeTest::testFrontPageThemeSuggestion()
  2. 8.9.x core/modules/system/tests/src/Functional/Theme/ThemeTest.php \Drupal\Tests\system\Functional\Theme\ThemeTest::testFrontPageThemeSuggestion()
  3. 11.x core/modules/system/tests/src/Functional/Theme/ThemeTest.php \Drupal\Tests\system\Functional\Theme\ThemeTest::testFrontPageThemeSuggestion()

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

File

core/modules/system/tests/src/Functional/Theme/ThemeTest.php, line 77

Class

ThemeTest
Tests low-level theme functions.

Namespace

Drupal\Tests\system\Functional\Theme

Code

public function testFrontPageThemeSuggestion() : void {
    // 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([
        'user',
        'login',
    ], 'page');
    // Set it back to not annoy the batch runner.
    \Drupal::requestStack()->pop();
    $this->assertContains('page__front', $suggestions, 'Front page template was suggested.');
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.