Mercurial > hg > isophonics-drupal-site
diff core/modules/dblog/tests/src/Functional/FakeLogEntries.php @ 17:129ea1e6d783
Update, including to Drupal core 8.6.10
author | Chris Cannam |
---|---|
date | Thu, 28 Feb 2019 13:21:36 +0000 |
parents | |
children | af1871eacc83 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/modules/dblog/tests/src/Functional/FakeLogEntries.php Thu Feb 28 13:21:36 2019 +0000 @@ -0,0 +1,66 @@ +<?php + +namespace Drupal\Tests\dblog\Functional; + +use Drupal\Core\Logger\RfcLogLevel; +use Drupal\Core\Session\AnonymousUserSession; + +/** + * Provides methods to generate log entries. + * + * This trait is meant to be used only by test classes. + */ +trait FakeLogEntries { + + /** + * Generates a number of random database log events. + * + * @param int $count + * Number of watchdog entries to generate. + * @param array $options + * These options are used to override the defaults for the test. + * An associative array containing any of the following keys: + * - 'channel': String identifying the log channel to be output to. + * If the channel is not set, the default of 'custom' will be used. + * - 'message': String containing a message to be output to the log. + * A simple default message is used if not provided. + * - 'variables': Array of variables that match the message string. + * - 'severity': Log severity level as defined in logging_severity_levels. + * - 'link': String linking to view the result of the event. + * - 'user': String identifying the username. + * - 'uid': Int identifying the user id for the user. + * - 'request_uri': String identifying the location of the request. + * - 'referer': String identifying the referring url. + * - 'ip': String The ip address of the client machine triggering the log + * entry. + * - 'timestamp': Int unix timestamp. + */ + private function generateLogEntries($count, $options = []) { + global $base_root; + + $user = !empty($this->adminUser) ? $this->adminUser : new AnonymousUserSession(); + + // Prepare the fields to be logged. + $log = $options + [ + 'channel' => 'custom', + 'message' => 'Dblog test log message', + 'variables' => [], + 'severity' => RfcLogLevel::NOTICE, + 'link' => NULL, + 'user' => $user, + 'uid' => $user->id(), + 'request_uri' => $base_root . \Drupal::request()->getRequestUri(), + 'referer' => \Drupal::request()->server->get('HTTP_REFERER'), + 'ip' => '127.0.0.1', + 'timestamp' => REQUEST_TIME, + ]; + + $logger = $this->container->get('logger.dblog'); + $message = $log['message'] . ' Entry #'; + for ($i = 0; $i < $count; $i++) { + $log['message'] = $message . $i; + $logger->log($log['severity'], $log['message'], $log); + } + } + +}