annotate core/modules/user/tests/src/Kernel/UserMailNotifyTest.php @ 5:12f9dff5fda9 tip

Update to Drupal core 8.7.1
author Chris Cannam
date Thu, 09 May 2019 15:34:47 +0100
parents
children
rev   line source
Chris@5 1 <?php
Chris@5 2
Chris@5 3 namespace Drupal\Tests\user\Kernel;
Chris@5 4
Chris@5 5 use Drupal\Core\Test\AssertMailTrait;
Chris@5 6 use Drupal\KernelTests\Core\Entity\EntityKernelTestBase;
Chris@5 7
Chris@5 8 /**
Chris@5 9 * Tests _user_mail_notify() use of user.settings.notify.*.
Chris@5 10 *
Chris@5 11 * @group user
Chris@5 12 */
Chris@5 13 class UserMailNotifyTest extends EntityKernelTestBase {
Chris@5 14
Chris@5 15 use AssertMailTrait {
Chris@5 16 getMails as drupalGetMails;
Chris@5 17 }
Chris@5 18
Chris@5 19 /**
Chris@5 20 * Data provider for user mail testing.
Chris@5 21 *
Chris@5 22 * @return array
Chris@5 23 */
Chris@5 24 public function userMailsProvider() {
Chris@5 25 return [
Chris@5 26 'cancel confirm notification' => [
Chris@5 27 'cancel_confirm',
Chris@5 28 ['cancel_confirm'],
Chris@5 29 ],
Chris@5 30 'password reset notification' => [
Chris@5 31 'password_reset',
Chris@5 32 ['password_reset'],
Chris@5 33 ],
Chris@5 34 'status activated notification' => [
Chris@5 35 'status_activated',
Chris@5 36 ['status_activated'],
Chris@5 37 ],
Chris@5 38 'status blocked notification' => [
Chris@5 39 'status_blocked',
Chris@5 40 ['status_blocked'],
Chris@5 41 ],
Chris@5 42 'status canceled notification' => [
Chris@5 43 'status_canceled',
Chris@5 44 ['status_canceled'],
Chris@5 45 ],
Chris@5 46 'register admin created notification' => [
Chris@5 47 'register_admin_created',
Chris@5 48 ['register_admin_created'],
Chris@5 49 ],
Chris@5 50 'register no approval required notification' => [
Chris@5 51 'register_no_approval_required',
Chris@5 52 ['register_no_approval_required'],
Chris@5 53 ],
Chris@5 54 'register pending approval notification' => [
Chris@5 55 'register_pending_approval',
Chris@5 56 ['register_pending_approval', 'register_pending_approval_admin'],
Chris@5 57 ],
Chris@5 58 ];
Chris@5 59 }
Chris@5 60
Chris@5 61 /**
Chris@5 62 * Tests mails are sent when notify.$op is TRUE.
Chris@5 63 *
Chris@5 64 * @param string $op
Chris@5 65 * The operation being performed on the account.
Chris@5 66 * @param array $mail_keys
Chris@5 67 * The mail keys to test for.
Chris@5 68 *
Chris@5 69 * @dataProvider userMailsProvider
Chris@5 70 */
Chris@5 71 public function testUserMailsSent($op, array $mail_keys) {
Chris@5 72 $this->config('user.settings')->set('notify.' . $op, TRUE)->save();
Chris@5 73 $return = _user_mail_notify($op, $this->createUser());
Chris@5 74 $this->assertTrue($return);
Chris@5 75 foreach ($mail_keys as $key) {
Chris@5 76 $filter = ['key' => $key];
Chris@5 77 $this->assertNotEmpty($this->getMails($filter));
Chris@5 78 }
Chris@5 79 $this->assertCount(count($mail_keys), $this->getMails());
Chris@5 80 }
Chris@5 81
Chris@5 82 /**
Chris@5 83 * Tests mails are not sent when notify.$op is FALSE.
Chris@5 84 *
Chris@5 85 * @param string $op
Chris@5 86 * The operation being performed on the account.
Chris@5 87 *
Chris@5 88 * @dataProvider userMailsProvider
Chris@5 89 */
Chris@5 90 public function testUserMailsNotSent($op) {
Chris@5 91 $this->config('user.settings')->set('notify.' . $op, FALSE)->save();
Chris@5 92 $return = _user_mail_notify($op, $this->createUser());
Chris@5 93 $this->assertFalse($return);
Chris@5 94 $this->assertEmpty($this->getMails());
Chris@5 95 }
Chris@5 96
Chris@5 97 }