trait MailerCaptureTrait

Provides methods for testing emails sent during test runs.

Hierarchy

See also

\Drupal\mailer_capture\Transport\CaptureTransport

1 file declares its use of MailerCaptureTrait
MailerCaptureTest.php in core/modules/mailer/tests/src/Functional/MailerCaptureTest.php

File

core/lib/Drupal/Core/Test/MailerCaptureTrait.php, line 16

Namespace

Drupal\Core\Test
View source
trait MailerCaptureTrait {
  
  /**
   * Gets an array containing all emails sent during this test case.
   *
   * @return \Symfony\Component\Mime\Email[]
   *   An array containing email messages captured during the current test.
   */
  protected function getEmails() : array {
    $messages = array_map(fn(SentMessage $m) => $m->getOriginalMessage(), $this->getCapturedMessages());
    return array_filter($messages, fn(RawMessage $m) => $m instanceof Email);
  }
  
  /**
   * Gets an array containing all messages sent during this test case.
   *
   * @return \Symfony\Component\Mailer\SentMessage[]
   *   An array containing messages captured during the current test.
   */
  protected function getCapturedMessages() : array {
    return \Drupal::keyValue('mailer_capture')->get('messages', []);
  }
  
  /**
   * Clears all messages sent during this test case.
   */
  protected function clearCapturedMessages() : void {
    \Drupal::keyValue('mailer_capture')->delete('messages');
  }

}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.