replaced mailer library, added email templates (#1462)
This commit is contained in:
33
tests/Configuration/MailConfigurationTest.php
Normal file
33
tests/Configuration/MailConfigurationTest.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Configuration;
|
||||
|
||||
use App\Configuration\MailConfiguration;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
|
||||
/**
|
||||
* @covers \App\Configuration\MailConfiguration
|
||||
*/
|
||||
class MailConfigurationTest extends TestCase
|
||||
{
|
||||
public function testGetFromAddress()
|
||||
{
|
||||
$previous = getenv('MAILER_FROM');
|
||||
putenv('MAILER_FROM=foo-bar123@example.com');
|
||||
|
||||
$sut = new MailConfiguration();
|
||||
self::assertEquals('foo-bar123@example.com', $sut->getFromAddress());
|
||||
|
||||
putenv('MAILER_FROM=');
|
||||
self::assertNull($sut->getFromAddress());
|
||||
|
||||
putenv('MAILER_FROM=' . $previous);
|
||||
}
|
||||
}
|
||||
@@ -50,6 +50,7 @@ class RegistrationSubscriberTest extends TestCase
|
||||
$form->method('getData')->willReturn($user);
|
||||
|
||||
$request = $this->createMock(Request::class);
|
||||
$request->expects($this->any())->method('getLocale')->willReturn('ru');
|
||||
|
||||
$event = new FormEvent($form, $request);
|
||||
|
||||
@@ -57,6 +58,7 @@ class RegistrationSubscriberTest extends TestCase
|
||||
$sut->onRegistrationSuccess($event);
|
||||
|
||||
$this->assertEquals($expectedRoles, $user->getRoles());
|
||||
$this->assertEquals('ru', $user->getLanguage());
|
||||
}
|
||||
|
||||
public function getTestData()
|
||||
|
||||
51
tests/Mail/KimaiMailerTest.php
Normal file
51
tests/Mail/KimaiMailerTest.php
Normal file
@@ -0,0 +1,51 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Mail;
|
||||
|
||||
use App\Configuration\MailConfiguration;
|
||||
use App\Entity\User;
|
||||
use App\Mail\KimaiMailer;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Mailer\MailerInterface;
|
||||
use Symfony\Component\Mime\Address;
|
||||
use Symfony\Component\Mime\Email;
|
||||
|
||||
/**
|
||||
* @covers \App\Mail\KimaiMailer
|
||||
*/
|
||||
class KimaiMailerTest extends TestCase
|
||||
{
|
||||
public function getSut(): KimaiMailer
|
||||
{
|
||||
$config = $this->createMock(MailConfiguration::class);
|
||||
$config->expects($this->any())->method('getFromAddress')->willReturn('zippel@example.com');
|
||||
|
||||
$mailer = $this->createMock(MailerInterface::class);
|
||||
|
||||
return new KimaiMailer($config, $mailer);
|
||||
}
|
||||
|
||||
public function testSendSetsFrom()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('Testing');
|
||||
$user->setEmail('foo@example.com');
|
||||
$user->setAlias('Super User');
|
||||
|
||||
$mailer = $this->getSut();
|
||||
$message = new Email();
|
||||
|
||||
self::assertEquals([], $message->getFrom());
|
||||
|
||||
$mailer->send($message);
|
||||
|
||||
self::assertEquals([new Address('zippel@example.com')], $message->getFrom());
|
||||
}
|
||||
}
|
||||
67
tests/Mail/UserMailsTest.php
Normal file
67
tests/Mail/UserMailsTest.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Kimai time-tracking app.
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace App\Tests\Mail;
|
||||
|
||||
use App\Configuration\MailConfiguration;
|
||||
use App\Entity\User;
|
||||
use App\Mail\KimaiMailer;
|
||||
use App\Mail\UserMails;
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use Symfony\Component\Mailer\MailerInterface;
|
||||
use Symfony\Component\Mime\Address;
|
||||
use Symfony\Component\Mime\Email;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Symfony\Contracts\Translation\TranslatorInterface;
|
||||
|
||||
/**
|
||||
* @covers \App\Mail\UserMails
|
||||
*/
|
||||
class UserMailsTest extends TestCase
|
||||
{
|
||||
public function getSut(): UserMails
|
||||
{
|
||||
$config = $this->createMock(MailConfiguration::class);
|
||||
$config->expects($this->any())->method('getFromAddress')->willReturn('zippel@example.com');
|
||||
$mailer = $this->createMock(MailerInterface::class);
|
||||
$mailer->expects($this->once())->method('send')->willReturnCallback(function (Email $message) {
|
||||
self::assertEquals([new Address('zippel@example.com')], $message->getFrom());
|
||||
self::assertEquals([new Address('foo@example.com')], $message->getTo());
|
||||
self::assertEquals('foo', $message->getSubject());
|
||||
});
|
||||
$kimaiMailer = new KimaiMailer($config, $mailer);
|
||||
$router = $this->createMock(UrlGeneratorInterface::class);
|
||||
$translator = $this->createMock(TranslatorInterface::class);
|
||||
$translator->expects($this->any())->method('trans')->willReturn('foo');
|
||||
|
||||
return new UserMails($kimaiMailer, $router, $translator);
|
||||
}
|
||||
|
||||
public function testSendConfirmationEmailMessage()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('Testing');
|
||||
$user->setEmail('foo@example.com');
|
||||
$user->setAlias('Super User');
|
||||
|
||||
$mailer = $this->getSut();
|
||||
$mailer->sendConfirmationEmailMessage($user);
|
||||
}
|
||||
|
||||
public function testSendResettingEmailMessage()
|
||||
{
|
||||
$user = new User();
|
||||
$user->setUsername('Testing');
|
||||
$user->setEmail('foo@example.com');
|
||||
$user->setAlias('Super User');
|
||||
|
||||
$mailer = $this->getSut();
|
||||
$mailer->sendResettingEmailMessage($user);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user