1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 22:10:45 +02:00

[ticket/17490] Add extra method to support unit testing mailer

Also increased unit test coverage of email method to 100%.

PHPBB-17490
This commit is contained in:
Marc Alexander
2025-04-06 21:25:16 +02:00
parent 91c325174f
commit 8dbe499e3d
2 changed files with 449 additions and 37 deletions

View File

@@ -13,6 +13,8 @@
namespace phpbb\messenger\method;
use Symfony\Component\Mailer\Exception\TransportExceptionInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mailer\Transport\AbstractTransport;
@@ -275,7 +277,6 @@ class email extends base
*/
protected function build_headers(): void
{
$board_contact = trim($this->config['board_contact']);
$contact_name = html_entity_decode($this->config['board_contact_name'], ENT_COMPAT);
@@ -317,7 +318,6 @@ class email extends base
{
$this->header($header, $value);
}
}
/**
@@ -408,7 +408,7 @@ class email extends base
$package_size = $queue_data[$queue_object_name]['package_size'] ?? 0;
$num_items = (!$package_size || $messages_count < $package_size) ? $messages_count : $package_size;
$mailer = new Mailer($this->transport);
$mailer = $this->get_mailer();
for ($i = 0; $i < $num_items; $i++)
{
@@ -437,7 +437,7 @@ class email extends base
{
$mailer->send($email);
}
catch (\Symfony\Component\Mailer\Exception\TransportExceptionInterface $e)
catch (TransportExceptionInterface $e)
{
$this->error($e->getDebug());
continue;
@@ -452,6 +452,16 @@ class email extends base
}
}
/**
* Get mailer object
*
* @return MailerInterface Symfony Mailer object
*/
protected function get_mailer(): MailerInterface
{
return new Mailer($this->transport);
}
/**
* Get mailer transport object
*
@@ -506,7 +516,7 @@ class email extends base
// Send message ...
if (!$this->use_queue)
{
$mailer = new Mailer($this->transport);
$mailer = $this->get_mailer();
$subject = $this->subject;
$msg = $this->msg;
@@ -540,7 +550,7 @@ class email extends base
{
$mailer->send($this->email);
}
catch (\Symfony\Component\Mailer\Exception\TransportExceptionInterface $e)
catch (TransportExceptionInterface $e)
{
$this->error($e->getDebug());
return false;