public function BlockUiTest::testBrokenBlockVisibility in Drupal 9
Tests that users without permission are not able to view broken blocks.
File
- core/modules/ block/ tests/ src/ Functional/ BlockUiTest.php, line 390 
Class
- BlockUiTest
- Tests that the block configuration UI exists and stores data correctly.
Namespace
Drupal\Tests\block\FunctionalCode
public function testBrokenBlockVisibility() {
  $assert_session = $this
    ->assertSession();
  $block = $this
    ->drupalPlaceBlock('broken');
  // Ensure that broken block configuration can be accessed.
  $this
    ->drupalGet('admin/structure/block/manage/' . $block
    ->id());
  $assert_session
    ->statusCodeEquals(200);
  // Login as an admin user to the site.
  $this
    ->drupalLogin($this->adminUser);
  $this
    ->drupalGet('');
  $assert_session
    ->statusCodeEquals(200);
  // Check that this user can view the Broken Block message.
  $assert_session
    ->pageTextContains('This block is broken or missing. You may be missing content or you might need to enable the original module.');
  $this
    ->drupalLogout();
  // Visit the same page as anonymous.
  $this
    ->drupalGet('');
  $assert_session
    ->statusCodeEquals(200);
  // Check that this user cannot view the Broken Block message.
  $assert_session
    ->pageTextNotContains('This block is broken or missing. You may be missing content or you might need to enable the original module.');
  // Visit same page as an authorized user that does not have access to
  // administer blocks.
  $this
    ->drupalLogin($this
    ->drupalCreateUser([
    'access administration pages',
  ]));
  $this
    ->drupalGet('');
  $assert_session
    ->statusCodeEquals(200);
  // Check that this user cannot view the Broken Block message.
  $assert_session
    ->pageTextNotContains('This block is broken or missing. You may be missing content or you might need to enable the original module.');
}