Mercurial > hg > isophonics-drupal-site
view core/modules/user/tests/src/Functional/UserMailNotifyTest.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children | 129ea1e6d783 |
line wrap: on
line source
<?php namespace Drupal\Tests\user\Functional; use Drupal\Core\Test\AssertMailTrait; use Drupal\KernelTests\Core\Entity\EntityKernelTestBase; /** * Tests _user_mail_notify() use of user.settings.notify.*. * * @group user */ class UserMailNotifyTest extends EntityKernelTestBase { use AssertMailTrait { getMails as drupalGetMails; } /** * Data provider for user mail testing. * * @return array */ public function userMailsProvider() { return [ ['cancel_confirm', ['cancel_confirm']], ['password_reset', ['password_reset']], ['status_activated', ['status_activated']], ['status_blocked', ['status_blocked']], ['status_canceled', ['status_canceled']], ['register_admin_created', ['register_admin_created']], ['register_no_approval_required', ['register_no_approval_required']], ['register_pending_approval', ['register_pending_approval', 'register_pending_approval_admin']] ]; } /** * Tests mails are sent when notify.$op is TRUE. * * @param string $op * The operation being performed on the account. * @param array $mail_keys * The mail keys to test for. * * @dataProvider userMailsProvider */ 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, '_user_mail_notify() returns TRUE.'); foreach ($mail_keys as $key) { $filter = ['key' => $key]; $this->assertNotEmpty($this->getMails($filter), "Mails with $key exists."); } $this->assertCount(count($mail_keys), $this->getMails(), 'The expected number of emails sent.'); } /** * Tests mails are not sent when notify.$op is FALSE. * * @param string $op * The operation being performed on the account. * @param array $mail_keys * The mail keys to test for. Ignored by this test because we assert that no * mails at all are sent. * * @dataProvider userMailsProvider */ public function testUserMailsNotSent($op, array $mail_keys) { $this->config('user.settings')->set('notify.' . $op, FALSE)->save(); $return = _user_mail_notify($op, $this->createUser()); $this->assertFalse($return, '_user_mail_notify() returns FALSE.'); $this->assertEmpty($this->getMails(), 'No emails sent by _user_mail_notify().'); } }