BlockHiddenRegionTest.php

Same filename and directory in other branches
  1. 11.x core/modules/block/tests/src/Functional/BlockHiddenRegionTest.php
  2. 10 core/modules/block/tests/src/Functional/BlockHiddenRegionTest.php
  3. 9 core/modules/block/tests/src/Functional/BlockHiddenRegionTest.php
  4. 8.9.x core/modules/block/tests/src/Functional/BlockHiddenRegionTest.php

Namespace

Drupal\Tests\block\Functional

File

core/modules/block/tests/src/Functional/BlockHiddenRegionTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\block\Functional;

use Drupal\Tests\BrowserTestBase;
use PHPUnit\Framework\Attributes\Group;
use PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses;

/**
 * Tests that blocks are not added to hidden regions on theme installation.
 */
class BlockHiddenRegionTest extends BrowserTestBase {
  
  /**
   * An administrative user to configure the test environment.
   *
   * @var \Drupal\user\Entity\User|false
   */
  protected $adminUser;
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'block',
    'block_test',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  protected function setUp() : void {
    parent::setUp();
    // Create administrative user.
    $this->adminUser = $this->drupalCreateUser([
      'administer blocks',
      'administer themes',
    ]);
    $this->drupalLogin($this->adminUser);
    $this->drupalPlaceBlock('test_form_in_block');
    $this->drupalPlaceBlock('local_tasks_block');
  }
  
  /**
   * Tests that hidden regions do not inherit blocks when a theme is installed.
   */
  public function testBlockNotInHiddenRegion() : void {
    // Ensure that the test_form_in_block form block is displayed.
    $this->drupalGet('');
    $this->assertSession()
      ->pageTextContains('Your .com email address.');
    // Install "block_test_theme" and set it as the default theme.
    $theme = 'block_test_theme';
    // We need to install a non-hidden theme so that there is more than one
    // local task.
    \Drupal::service('theme_installer')->install([
      $theme,
      'stark',
    ]);
    $this->config('system.theme')
      ->set('default', $theme)
      ->save();
    // Installing a theme will cause the kernel terminate event to rebuild the
    // router. Simulate that here.
    \Drupal::service('router.builder')->rebuildIfNeeded();
    // Ensure that "block_test_theme" is set as the default theme.
    $this->drupalGet('admin/structure/block');
    $this->assertSession()
      ->pageTextContains('Block test theme');
    // Ensure that the test_form_in_block form block is displayed.
    $this->drupalGet('');
    $this->assertSession()
      ->pageTextContains('Your .com email address.');
  }

}

Classes

Title Deprecated Summary
BlockHiddenRegionTest Tests that blocks are not added to hidden regions on theme installation.

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