function MailHandlerTest::testSendMailMessages

Same name and namespace in other branches
  1. 9 core/modules/contact/tests/src/Unit/MailHandlerTest.php \Drupal\Tests\contact\Unit\MailHandlerTest::testSendMailMessages()
  2. 8.9.x core/modules/contact/tests/src/Unit/MailHandlerTest.php \Drupal\Tests\contact\Unit\MailHandlerTest::testSendMailMessages()
  3. 11.x core/modules/contact/tests/src/Unit/MailHandlerTest.php \Drupal\Tests\contact\Unit\MailHandlerTest::testSendMailMessages()

Tests the sendMailMessages method.

@dataProvider getSendMailMessages

@covers ::sendMailMessages

File

core/modules/contact/tests/src/Unit/MailHandlerTest.php, line 136

Class

MailHandlerTest
@coversDefaultClass \Drupal\contact\MailHandler[[api-linebreak]] @group contact

Namespace

Drupal\Tests\contact\Unit

Code

public function testSendMailMessages(bool $anonymous, ?bool $auto_reply, bool $copy_sender, array $results) : void {
  if ($anonymous) {
    $message = $this->getAnonymousMockMessage(explode(', ', $results[0]['to']), $auto_reply, $copy_sender);
    $sender = $this->getMockSender();
  }
  else {
    $message = $this->getAuthenticatedMockMessage($copy_sender);
    $sender = $this->getMockSender(FALSE, 'user@drupal.org');
  }
  $expected_params['contact_message'] = $message;
  $expected_params['sender'] = $sender;
  if ($anonymous) {
    $expected_params['contact_form'] = $message->getContactForm();
  }
  else {
    $expected_params['recipient'] = $message->getPersonalRecipient();
  }
  $this->logger
    ->expects($this->once())
    ->method('info');
  $this->mailManager
    ->expects($this->any())
    ->method('mail')
    ->willReturnCallback(function ($module, $key, $to, $langcode, $params, $from) use (&$results, $expected_params) {
    $result = array_shift($results);
    $this->assertEquals($module, $result['module']);
    $this->assertEquals($key, $result['key']);
    $this->assertEquals($to, $result['to']);
    $this->assertEquals($langcode, $result['langcode']);
    $this->assertEquals($params, $expected_params);
    $this->assertEquals($from, $result['from']);
  });
  $this->userStorage
    ->expects($this->any())
    ->method('load')
    ->willReturn(clone $sender);
  $this->contactMailHandler
    ->sendMailMessages($message, $sender);
}

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