Add meta to test emails
[MAILPOET-2333]
This commit is contained in:
committed by
Jack Kitterhing
parent
5a3994ab5d
commit
8594645e0d
@ -6,6 +6,7 @@ use MailPoet\API\JSON\Endpoint as APIEndpoint;
|
|||||||
use MailPoet\API\JSON\Error as APIError;
|
use MailPoet\API\JSON\Error as APIError;
|
||||||
use MailPoet\Config\AccessControl;
|
use MailPoet\Config\AccessControl;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Services\AuthorizedEmailsController;
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@ -22,14 +23,18 @@ class Mailer extends APIEndpoint {
|
|||||||
/** @var SettingsController */
|
/** @var SettingsController */
|
||||||
private $settings;
|
private $settings;
|
||||||
|
|
||||||
|
/** @var MetaInfo */
|
||||||
|
private $mailerMetaInfo;
|
||||||
|
|
||||||
public $permissions = [
|
public $permissions = [
|
||||||
'global' => AccessControl::PERMISSION_MANAGE_EMAILS,
|
'global' => AccessControl::PERMISSION_MANAGE_EMAILS,
|
||||||
];
|
];
|
||||||
|
|
||||||
function __construct(AuthorizedEmailsController $authorized_emails_controller, SettingsController $settings, Bridge $bridge) {
|
function __construct(AuthorizedEmailsController $authorized_emails_controller, SettingsController $settings, Bridge $bridge, MetaInfo $mailerMetaInfo) {
|
||||||
$this->authorized_emails_controller = $authorized_emails_controller;
|
$this->authorized_emails_controller = $authorized_emails_controller;
|
||||||
$this->settings = $settings;
|
$this->settings = $settings;
|
||||||
$this->bridge = $bridge;
|
$this->bridge = $bridge;
|
||||||
|
$this->mailerMetaInfo = $mailerMetaInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
function send($data = []) {
|
function send($data = []) {
|
||||||
@ -40,7 +45,10 @@ class Mailer extends APIEndpoint {
|
|||||||
(isset($data['sender'])) ? $data['sender'] : false,
|
(isset($data['sender'])) ? $data['sender'] : false,
|
||||||
(isset($data['reply_to'])) ? $data['reply_to'] : false
|
(isset($data['reply_to'])) ? $data['reply_to'] : false
|
||||||
);
|
);
|
||||||
$result = $mailer->send($data['newsletter'], $data['subscriber']);
|
$extra_params = [
|
||||||
|
'meta' => $this->mailerMetaInfo->getSendingTestMetaInfo(),
|
||||||
|
];
|
||||||
|
$result = $mailer->send($data['newsletter'], $data['subscriber'], $extra_params);
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
return $this->errorResponse([
|
return $this->errorResponse([
|
||||||
$e->getCode() => $e->getMessage(),
|
$e->getCode() => $e->getMessage(),
|
||||||
|
@ -2,5 +2,15 @@
|
|||||||
namespace MailPoet\Mailer;
|
namespace MailPoet\Mailer;
|
||||||
|
|
||||||
class MetaInfo {
|
class MetaInfo {
|
||||||
|
function getSendingTestMetaInfo() {
|
||||||
|
return $this->makeMetaInfo('sending_test', 'unknown', 'administrator');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function makeMetaInfo($email_type, $subscriber_status, $subscriber_source) {
|
||||||
|
return [
|
||||||
|
'email_type' => $email_type,
|
||||||
|
'subscriber_status' => $subscriber_status,
|
||||||
|
'subscriber_source' => $subscriber_source,
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@ use Codeception\Stub\Expected;
|
|||||||
use MailPoet\API\JSON\v1\Mailer;
|
use MailPoet\API\JSON\v1\Mailer;
|
||||||
use MailPoet\API\JSON\Response as APIResponse;
|
use MailPoet\API\JSON\Response as APIResponse;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
|
use MailPoet\Mailer\MetaInfo;
|
||||||
use MailPoet\Services\AuthorizedEmailsController;
|
use MailPoet\Services\AuthorizedEmailsController;
|
||||||
use MailPoet\Services\Bridge;
|
use MailPoet\Services\Bridge;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
@ -20,7 +21,7 @@ class MailerTest extends \MailPoetTest {
|
|||||||
$authorized_emails_controller = $this->makeEmpty(AuthorizedEmailsController::class, ['checkAuthorizedEmailAddresses' => Expected::never()]);
|
$authorized_emails_controller = $this->makeEmpty(AuthorizedEmailsController::class, ['checkAuthorizedEmailAddresses' => Expected::never()]);
|
||||||
// resumeSending() method should clear the mailer log's status
|
// resumeSending() method should clear the mailer log's status
|
||||||
$bridge = new Bridge($settings);
|
$bridge = new Bridge($settings);
|
||||||
$mailer_endpoint = new Mailer($authorized_emails_controller, $settings, $bridge);
|
$mailer_endpoint = new Mailer($authorized_emails_controller, $settings, $bridge, new MetaInfo);
|
||||||
$response = $mailer_endpoint->resumeSending();
|
$response = $mailer_endpoint->resumeSending();
|
||||||
expect($response->status)->equals(APIResponse::STATUS_OK);
|
expect($response->status)->equals(APIResponse::STATUS_OK);
|
||||||
$mailer_log = MailerLog::getMailerLog();
|
$mailer_log = MailerLog::getMailerLog();
|
||||||
@ -32,7 +33,7 @@ class MailerTest extends \MailPoetTest {
|
|||||||
$settings->set(AuthorizedEmailsController::AUTHORIZED_EMAIL_ADDRESSES_ERROR_SETTING, ['invalid_sender_address' => 'a@b.c']);
|
$settings->set(AuthorizedEmailsController::AUTHORIZED_EMAIL_ADDRESSES_ERROR_SETTING, ['invalid_sender_address' => 'a@b.c']);
|
||||||
$authorized_emails_controller = $this->makeEmpty(AuthorizedEmailsController::class, ['checkAuthorizedEmailAddresses' => Expected::once()]);
|
$authorized_emails_controller = $this->makeEmpty(AuthorizedEmailsController::class, ['checkAuthorizedEmailAddresses' => Expected::once()]);
|
||||||
$bridge = new Bridge($settings);
|
$bridge = new Bridge($settings);
|
||||||
$mailer_endpoint = new Mailer($authorized_emails_controller, $settings, $bridge);
|
$mailer_endpoint = new Mailer($authorized_emails_controller, $settings, $bridge, new MetaInfo);
|
||||||
$mailer_endpoint->resumeSending();
|
$mailer_endpoint->resumeSending();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
22
tests/unit/Mailer/MetaInfoTest.php
Normal file
22
tests/unit/Mailer/MetaInfoTest.php
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?php
|
||||||
|
namespace MailPoet\Test\Mailer;
|
||||||
|
|
||||||
|
use Codeception\Stub;
|
||||||
|
use MailPoet\Mailer\MetaInfo;
|
||||||
|
|
||||||
|
class MetaInfoTest extends \MailPoetUnitTest {
|
||||||
|
/** @var MetaInfo */
|
||||||
|
private $meta;
|
||||||
|
|
||||||
|
function _before() {
|
||||||
|
$this->meta = new MetaInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
function testItGetsMetaInfoForSendingTest() {
|
||||||
|
expect($this->meta->getSendingTestMetaInfo())->equals([
|
||||||
|
'email_type' => 'sending_test',
|
||||||
|
'subscriber_status' => 'unknown',
|
||||||
|
'subscriber_source' => 'administrator',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user