Fix tests and default values
[MAILPOET-2286]
This commit is contained in:
committed by
Jack Kitterhing
parent
d61d7ce483
commit
2c0f16b0dd
@ -117,7 +117,7 @@ class NewsletterEntity {
|
|||||||
* @ORM\Column(type="string")
|
* @ORM\Column(type="string")
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
private $ga_campaign;
|
private $ga_campaign = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
|
* @ORM\ManyToOne(targetEntity="MailPoet\Entities\NewsletterEntity")
|
||||||
|
@ -32,7 +32,7 @@ class Renderer {
|
|||||||
$this->blocks_renderer = new Blocks\Renderer($this->newsletter);
|
$this->blocks_renderer = new Blocks\Renderer($this->newsletter);
|
||||||
$this->columns_renderer = new Columns\Renderer();
|
$this->columns_renderer = new Columns\Renderer();
|
||||||
$this->preprocessor = new Preprocessor($this->blocks_renderer, WPFunctions::get());
|
$this->preprocessor = new Preprocessor($this->blocks_renderer, WPFunctions::get());
|
||||||
$this->CSS_inliner = new \MailPoet\Util\CSS();
|
$this->CSS_inliner = new \MailPoetVendor\CSS();
|
||||||
$this->template = file_get_contents(dirname(__FILE__) . '/' . self::NEWSLETTER_TEMPLATE);
|
$this->template = file_get_contents(dirname(__FILE__) . '/' . self::NEWSLETTER_TEMPLATE);
|
||||||
$this->premium_activated = License::getLicense();
|
$this->premium_activated = License::getLicense();
|
||||||
$bridge = new Bridge();
|
$bridge = new Bridge();
|
||||||
|
@ -61,7 +61,7 @@ class TransactionalEmails {
|
|||||||
$saved_email_id = (bool)$this->settings->get(self::SETTING_EMAIL_ID, false);
|
$saved_email_id = (bool)$this->settings->get(self::SETTING_EMAIL_ID, false);
|
||||||
if (!$saved_email_id) {
|
if (!$saved_email_id) {
|
||||||
$email = $this->createNewsletter();
|
$email = $this->createNewsletter();
|
||||||
$this->settings->set(self::SETTING_EMAIL_ID, $email->id);
|
$this->settings->set(self::SETTING_EMAIL_ID, $email->getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,9 +103,10 @@ class TransactionalEmails {
|
|||||||
$newsletter = new NewsletterEntity;
|
$newsletter = new NewsletterEntity;
|
||||||
$newsletter->setType(NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL);
|
$newsletter->setType(NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL);
|
||||||
$newsletter->setSubject('WooCommerce Transactional Email');
|
$newsletter->setSubject('WooCommerce Transactional Email');
|
||||||
$newsletter->setBody(json_encode($this->template->create($wc_email_settings)));
|
$newsletter->setBody($this->template->create($wc_email_settings));
|
||||||
$this->newsletters_repository->persist($newsletter);
|
$this->newsletters_repository->persist($newsletter);
|
||||||
$this->newsletters_repository->flush();
|
$this->newsletters_repository->flush();
|
||||||
|
return $newsletter;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getNewsletter() {
|
private function getNewsletter() {
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\WooCommerce;
|
|||||||
|
|
||||||
use Codeception\Stub;
|
use Codeception\Stub;
|
||||||
use MailPoet\DI\ContainerWrapper;
|
use MailPoet\DI\ContainerWrapper;
|
||||||
|
use MailPoet\Entities\NewsletterEntity;
|
||||||
use MailPoet\Models\Newsletter;
|
use MailPoet\Models\Newsletter;
|
||||||
use MailPoet\Newsletter\Editor\LayoutHelper as L;
|
use MailPoet\Newsletter\Editor\LayoutHelper as L;
|
||||||
use MailPoet\Newsletter\NewslettersRepository;
|
use MailPoet\Newsletter\NewslettersRepository;
|
||||||
@ -26,32 +27,36 @@ class TransactionalEmailsTest extends \MailPoetTest {
|
|||||||
/** @var TransactionalEmails */
|
/** @var TransactionalEmails */
|
||||||
private $transactional_emails;
|
private $transactional_emails;
|
||||||
|
|
||||||
|
/** @var NewslettersRepository */
|
||||||
|
private $newsletters_repository;
|
||||||
|
|
||||||
function _before() {
|
function _before() {
|
||||||
$this->wp = new WPFunctions();
|
$this->wp = new WPFunctions();
|
||||||
$this->settings = SettingsController::getInstance();
|
$this->settings = SettingsController::getInstance();
|
||||||
$this->original_wc_settings = $this->settings->get('woocommerce');
|
$this->original_wc_settings = $this->settings->get('woocommerce');
|
||||||
|
$this->newsletters_repository = ContainerWrapper::getInstance()->get(NewslettersRepository::class);
|
||||||
$this->transactional_emails = new TransactionalEmails(
|
$this->transactional_emails = new TransactionalEmails(
|
||||||
$this->wp,
|
$this->wp,
|
||||||
$this->settings,
|
$this->settings,
|
||||||
ContainerWrapper::getInstance()->get(Template::class),
|
ContainerWrapper::getInstance()->get(Template::class),
|
||||||
ContainerWrapper::getInstance()->get(Renderer::class),
|
ContainerWrapper::getInstance()->get(Renderer::class),
|
||||||
ContainerWrapper::getInstance()->get(NewslettersRepository::class)
|
$this->newsletters_repository
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testInitCreatesTransactionalEmailAndSavesItsId() {
|
function testInitCreatesTransactionalEmailAndSavesItsId() {
|
||||||
$this->transactional_emails->init();
|
$this->transactional_emails->init();
|
||||||
$email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne();
|
$email = $this->newsletters_repository->findOneBy(['type' => Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL]);
|
||||||
$id = $this->settings->get(TransactionalEmails::SETTING_EMAIL_ID, null);
|
$id = $this->settings->get(TransactionalEmails::SETTING_EMAIL_ID, null);
|
||||||
expect($email)->notEmpty();
|
expect($email)->notEmpty();
|
||||||
expect($id)->notNull();
|
expect($id)->notNull();
|
||||||
expect($email->id)->equals($id);
|
expect($email->getId())->equals($id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testInitDoesntCreateTransactionalEmailIfSettingAlreadySet() {
|
function testInitDoesntCreateTransactionalEmailIfSettingAlreadySet() {
|
||||||
$this->settings->set(TransactionalEmails::SETTING_EMAIL_ID, 1);
|
$this->settings->set(TransactionalEmails::SETTING_EMAIL_ID, 1);
|
||||||
$this->transactional_emails->init();
|
$this->transactional_emails->init();
|
||||||
$email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne();
|
$email = $this->newsletters_repository->findOneBy(['type' => Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL]);
|
||||||
expect($email)->equals(null);
|
expect($email)->equals(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -66,32 +71,34 @@ class TransactionalEmailsTest extends \MailPoetTest {
|
|||||||
$this->settings,
|
$this->settings,
|
||||||
ContainerWrapper::getInstance()->get(Template::class),
|
ContainerWrapper::getInstance()->get(Template::class),
|
||||||
ContainerWrapper::getInstance()->get(Renderer::class),
|
ContainerWrapper::getInstance()->get(Renderer::class),
|
||||||
ContainerWrapper::getInstance()->get(NewslettersRepository::class)
|
$this->newsletters_repository
|
||||||
);
|
);
|
||||||
$transactional_emails->init();
|
$transactional_emails->init();
|
||||||
$email = Newsletter::where('type', Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL)->findOne();
|
$email = $this->newsletters_repository->findOneBy([
|
||||||
|
'type' => NewsletterEntity::TYPE_WC_TRANSACTIONAL_EMAIL,
|
||||||
|
]);
|
||||||
expect($email)->notEmpty();
|
expect($email)->notEmpty();
|
||||||
expect($email->body)->contains('my-awesome-image-url');
|
expect(json_encode($email->getBody()))->contains('my-awesome-image-url');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testUseTemplateForWCEmails() {
|
function testUseTemplateForWCEmails() {
|
||||||
$added_actions = [];
|
$added_actions = [];
|
||||||
$removed_actions = [];
|
$removed_actions = [];
|
||||||
$newsletter = Newsletter::createOrUpdate([
|
$newsletter = new NewsletterEntity;
|
||||||
'type' => Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL,
|
$newsletter->setType(Newsletter::TYPE_WC_TRANSACTIONAL_EMAIL);
|
||||||
'subject' => 'WooCommerce Transactional Email',
|
$newsletter->setSubject('WooCommerce Transactional Email');
|
||||||
'preheader' => '',
|
$newsletter->setBody([
|
||||||
'body' => json_encode([
|
'content' => L::col([
|
||||||
'content' => L::col([
|
L::row([L::col([['type' => 'text', 'text' => 'Some text before heading']])]),
|
||||||
L::row([L::col([['type' => 'text', 'text' => 'Some text before heading']])]),
|
['type' => 'woocommerceHeading'],
|
||||||
['type' => 'woocommerceHeading'],
|
L::row([L::col([['type' => 'text', 'text' => 'Some text between heading and content']])]),
|
||||||
L::row([L::col([['type' => 'text', 'text' => 'Some text between heading and content']])]),
|
['type' => 'woocommerceContent'],
|
||||||
['type' => 'woocommerceContent'],
|
L::row([L::col([['type' => 'text', 'text' => 'Some text after content']])]),
|
||||||
L::row([L::col([['type' => 'text', 'text' => 'Some text after content']])]),
|
|
||||||
]),
|
|
||||||
]),
|
]),
|
||||||
]);
|
]);
|
||||||
$this->settings->set(TransactionalEmails::SETTING_EMAIL_ID, $newsletter->id);
|
$this->newsletters_repository->persist($newsletter);
|
||||||
|
$this->newsletters_repository->flush();
|
||||||
|
$this->settings->set(TransactionalEmails::SETTING_EMAIL_ID, $newsletter->getId());
|
||||||
$wp = Stub::make(new WPFunctions, [
|
$wp = Stub::make(new WPFunctions, [
|
||||||
'getOption' => function($name) {
|
'getOption' => function($name) {
|
||||||
return '';
|
return '';
|
||||||
@ -105,7 +112,7 @@ class TransactionalEmailsTest extends \MailPoetTest {
|
|||||||
]);
|
]);
|
||||||
$renderer = Stub::make(Renderer::class, [
|
$renderer = Stub::make(Renderer::class, [
|
||||||
'render' => function($email) use(&$newsletter) {
|
'render' => function($email) use(&$newsletter) {
|
||||||
expect($email->id)->equals($newsletter->id);
|
expect($email->id)->equals($newsletter->getId());
|
||||||
},
|
},
|
||||||
'getHTMLBeforeContent' => function($heading_text) {
|
'getHTMLBeforeContent' => function($heading_text) {
|
||||||
return 'HTML before content with ' . $heading_text;
|
return 'HTML before content with ' . $heading_text;
|
||||||
@ -144,7 +151,12 @@ class TransactionalEmailsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _after() {
|
function _after() {
|
||||||
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
$this->entity_manager
|
||||||
|
->createQueryBuilder()
|
||||||
|
->delete()
|
||||||
|
->from(NewsletterEntity::class, 'n')
|
||||||
|
->getQuery()
|
||||||
|
->execute();
|
||||||
$this->settings->set('woocommerce', $this->original_wc_settings);
|
$this->settings->set('woocommerce', $this->original_wc_settings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user