protected function TestBase::assertErrorLogged in Drupal 8
Asserts that a specific error has been logged to the PHP error log.
Parameters
string $error_message: The expected error message.
Return value
bool TRUE if the assertion succeeded, FALSE otherwise.
See also
\Drupal\simpletest\TestBase::prepareEnvironment()
\Drupal\Core\DrupalKernel::bootConfiguration()
File
- core/
modules/ simpletest/ src/ TestBase.php, line 752
Class
- TestBase
- Base class for Drupal tests.
Namespace
Drupal\simpletestCode
protected function assertErrorLogged($error_message) {
$error_log_filename = DRUPAL_ROOT . '/' . $this->siteDirectory . '/error.log';
if (!file_exists($error_log_filename)) {
$this
->error('No error logged yet.');
}
$content = file_get_contents($error_log_filename);
$rows = explode(PHP_EOL, $content);
// We iterate over the rows in order to be able to remove the logged error
// afterwards.
$found = FALSE;
foreach ($rows as $row_index => $row) {
if (strpos($content, $error_message) !== FALSE) {
$found = TRUE;
unset($rows[$row_index]);
}
}
file_put_contents($error_log_filename, implode("\n", $rows));
return $this
->assertTrue($found, sprintf('The %s error message was logged.', $error_message));
}