View source
<?php
namespace Drupal\Tests\user\Kernel;
use Drupal\Core\Test\AssertMailTrait;
use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
class UserMailNotifyTest extends EntityKernelTestBase {
use AssertMailTrait {
getMails as drupalGetMails;
}
public function userMailsProvider() {
return [
'cancel confirm notification' => [
'cancel_confirm',
[
'cancel_confirm',
],
],
'password reset notification' => [
'password_reset',
[
'password_reset',
],
],
'status activated notification' => [
'status_activated',
[
'status_activated',
],
],
'status blocked notification' => [
'status_blocked',
[
'status_blocked',
],
],
'status canceled notification' => [
'status_canceled',
[
'status_canceled',
],
],
'register admin created notification' => [
'register_admin_created',
[
'register_admin_created',
],
],
'register no approval required notification' => [
'register_no_approval_required',
[
'register_no_approval_required',
],
],
'register pending approval notification' => [
'register_pending_approval',
[
'register_pending_approval',
'register_pending_approval_admin',
],
],
];
}
public function testUserMailsSent($op, array $mail_keys) {
$this
->config('user.settings')
->set('notify.' . $op, TRUE)
->save();
$return = _user_mail_notify($op, $this
->createUser());
$this
->assertTrue($return);
foreach ($mail_keys as $key) {
$filter = [
'key' => $key,
];
$this
->assertNotEmpty($this
->getMails($filter));
}
$this
->assertCount(count($mail_keys), $this
->getMails());
}
public function testUserMailsNotSent($op) {
$this
->config('user.settings')
->set('notify.' . $op, FALSE)
->save();
$return = _user_mail_notify($op, $this
->createUser());
$this
->assertNull($return);
$this
->assertEmpty($this
->getMails());
}
}