function ErrorHandlerTest::testCustomErrorHandler
Same name in other branches
- 10 core/modules/system/tests/src/Functional/System/ErrorHandlerTest.php \Drupal\Tests\system\Functional\System\ErrorHandlerTest::testCustomErrorHandler()
Tests a custom error handler set in settings.php.
File
-
core/
modules/ system/ tests/ src/ Functional/ System/ ErrorHandlerTest.php, line 98
Class
- ErrorHandlerTest
- Performs tests on the Drupal error and exception handler.
Namespace
Drupal\Tests\system\Functional\SystemCode
public function testCustomErrorHandler() : void {
$settings_filename = $this->siteDirectory . '/settings.php';
chmod($settings_filename, 0777);
$settings_php = file_get_contents($settings_filename);
$settings_php .= "\n";
$settings_php .= "set_error_handler(function() {\n";
$settings_php .= " header('HTTP/1.1 418 I\\'m a teapot');\n";
$settings_php .= " print('Oh oh, flying teapots from a custom error handler');\n";
$settings_php .= " exit();\n";
$settings_php .= "});\n";
file_put_contents($settings_filename, $settings_php);
// For most types of errors, PHP throws an \Error object that Drupal
// catches, so the error handler is not invoked. To test the error handler,
// generate warnings, which are not thrown/caught.
$this->drupalGet('error-test/generate-warnings');
$this->assertSession()
->statusCodeEquals(418);
$this->assertSession()
->responseContains('Oh oh, flying teapots from a custom error handler');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.