function DisplayPageWebTest::testAdminTheme

Same name and namespace in other branches
  1. 11.x core/modules/views/tests/src/Functional/Plugin/DisplayPageWebTest.php \Drupal\Tests\views\Functional\Plugin\DisplayPageWebTest::testAdminTheme()

Tests the 'use_admin_theme' page display option.

File

core/modules/views/tests/src/Functional/Plugin/DisplayPageWebTest.php, line 153

Class

DisplayPageWebTest
Tests the views page display plugin.

Namespace

Drupal\Tests\views\Functional\Plugin

Code

public function testAdminTheme() : void {
  $account = $this->drupalCreateUser([
    'view the administration theme',
  ]);
  $this->drupalLogin($account);
  // Use distinct default and administrative themes for this test.
  /** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */
  $theme_handler = $this->container
    ->get('theme_handler');
  /** @var \Drupal\Core\Extension\ThemeInstallerInterface $theme_installer */
  $theme_installer = $this->container
    ->get('theme_installer');
  $theme_installer->install([
    'claro',
  ]);
  $this->container
    ->get('config.factory')
    ->getEditable('system.theme')
    ->set('admin', 'claro')
    ->set('default', 'stable')
    ->save();
  $theme_handler->refreshInfo();
  // Check that the page has been served with the default theme.
  $this->drupalGet('test_page_display_200');
  $this->assertSession()
    ->responseNotContains('core/themes/claro/css/base/elements.css');
  $view = $this->config('views.view.test_page_display');
  $view->set('display.page_3.display_options.use_admin_theme', TRUE)
    ->save();
  $this->container
    ->get('router.builder')
    ->rebuild();
  // Check that the page was served with the administrative theme.
  $this->drupalGet('test_page_display_200');
  $this->assertSession()
    ->responseContains('core/themes/claro/css/base/elements.css');
}

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