You are here

trait FakeLogEntries in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/dblog/tests/src/Functional/FakeLogEntries.php \Drupal\Tests\dblog\Functional\FakeLogEntries
  2. 9 core/modules/dblog/tests/src/Functional/FakeLogEntries.php \Drupal\Tests\dblog\Functional\FakeLogEntries

Provides methods to generate log entries.

This trait is meant to be used only by test classes.

Hierarchy

1 file declares its use of FakeLogEntries
DbLogTest.php in core/modules/dblog/tests/src/Kernel/DbLogTest.php

File

core/modules/dblog/tests/src/Functional/FakeLogEntries.php, line 13

Namespace

Drupal\Tests\dblog\Functional
View source
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.
   *   - '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,
      '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);
    }
  }

}

Members