You are here

public function UncaughtExceptionTest::testErrorContainer in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php \Drupal\FunctionalTests\Bootstrap\UncaughtExceptionTest::testErrorContainer()

Tests a container which has an error.

File

core/tests/Drupal/FunctionalTests/Bootstrap/UncaughtExceptionTest.php, line 172

Class

UncaughtExceptionTest
Tests kernel panic when things are really messed up.

Namespace

Drupal\FunctionalTests\Bootstrap

Code

public function testErrorContainer() {
  $settings = [];
  $settings['settings']['container_base_class'] = (object) [
    'value' => '\\Drupal\\FunctionalTests\\Bootstrap\\ErrorContainer',
    'required' => TRUE,
  ];
  $this
    ->writeSettings($settings);
  \Drupal::service('kernel')
    ->invalidateContainer();
  $this->expectedExceptionMessage = PHP_VERSION_ID >= 80000 ? 'Drupal\\FunctionalTests\\Bootstrap\\ErrorContainer::Drupal\\FunctionalTests\\Bootstrap\\{closure}(): Argument #1 ($container) must be of type Drupal\\FunctionalTests\\Bootstrap\\ErrorContainer' : 'Argument 1 passed to Drupal\\FunctionalTests\\Bootstrap\\ErrorContainer::Drupal\\FunctionalTests\\Bootstrap\\{closur';
  $this
    ->drupalGet('');
  $this
    ->assertSession()
    ->statusCodeEquals(500);
  $this
    ->assertSession()
    ->pageTextContains($this->expectedExceptionMessage);
  $this
    ->assertErrorLogged($this->expectedExceptionMessage);
}