Use data factories on tests

[MAILPOET-3637]
This commit is contained in:
Brezo Cordero
2021-09-01 14:43:17 -05:00
committed by Veljko V
parent 69d9da9f17
commit 1de3aef76f
4 changed files with 24 additions and 77 deletions

View File

@@ -93,7 +93,6 @@ class ViewInBrowserRenderer {
return $renderedNewsletter;
}
/** this is here to prepare entities for the shortcodes library, when this whole file uses doctrine, this can be deleted */
private function prepareShortcodes($newsletter, $subscriber, $queue, $wpUserPreview) {
if ($queue instanceof SendingQueueEntity) {
$this->shortcodes->setQueue($queue);

View File

@@ -57,6 +57,15 @@ class Newsletter {
return $this;
}
/**
* @param $body
* @return Newsletter
*/
public function withBody($body): Newsletter {
$this->data['body'] = $body;
return $this;
}
/**
* @return Newsletter
*/

View File

@@ -13,6 +13,7 @@ use MailPoet\Newsletter\Url;
use MailPoet\Subscribers\LinkTokens;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\Test\DataFactories\Newsletter;
use MailPoet\Util\Security;
class ViewInBrowserControllerTest extends \MailPoetTest {
@@ -56,62 +57,9 @@ class ViewInBrowserControllerTest extends \MailPoetTest {
$this->newsletterUrl = $this->diContainer->get(Url::class);
// create newsletter
$newsletterData = [
'body' => json_decode(
'{
"content": {
"type": "container",
"orientation": "vertical",
"styles": {
"block": {
"backgroundColor": "transparent"
}
},
"blocks": [
{
"type": "container",
"orientation": "horizontal",
"styles": {
"block": {
"backgroundColor": "transparent"
}
},
"blocks": [
{
"type": "container",
"orientation": "vertical",
"styles": {
"block": {
"backgroundColor": "transparent"
}
},
"blocks": [
{
"type": "text",
"text": "<p>Rendered newsletter. Hello, [subscriber:firstname | default:reader]. <a href=\"[link:newsletter_view_in_browser_url]\">Unsubscribe</a> or visit <a href=\"http://google.com\">Google</a></p>"
}
]
}
]
}
]
}
}', true),
'subject' => 'Some subject',
'preheader' => 'Some preheader',
'type' => 'standard',
'status' => 'active',
];
// create newsletter
$newsletter = new NewsletterEntity();
$newsletter->setSubject($newsletterData['subject']);
$newsletter->setPreheader($newsletterData['preheader']);
$newsletter->setType($newsletterData['type']);
$newsletter->setStatus($newsletterData['status']);
$newsletter->setBody($newsletterData['body']);
$newsletterFactory = new Newsletter();
$newsletter = $newsletterFactory->create();
$newsletter->setHash(Security::generateHash());
$this->newslettersRepository->persist($newsletter);
$this->newslettersRepository->flush();
$this->newsletter = $newsletter;
// create subscriber
@@ -129,7 +77,7 @@ class ViewInBrowserControllerTest extends \MailPoetTest {
$sendingTask->setSubscribers([$subscriber->getId()]);
$sendingTask->updateProcessedSubscribers([$subscriber->getId()]);
$this->sendingTask = $sendingTask->save();
$this->newslettersRepository->refresh($newsletter);
// build browser preview data
$this->browserPreviewData = [
'queue_id' => $sendingTask->queue()->id,

View File

@@ -17,6 +17,8 @@ use MailPoet\Router\Router;
use MailPoet\Settings\SettingsController;
use MailPoet\Subscribers\SubscribersRepository;
use MailPoet\Tasks\Sending as SendingTask;
use MailPoet\Test\DataFactories\Newsletter;
use MailPoet\Test\DataFactories\NewsletterLink;
use MailPoet\WP\Emoji;
class ViewInBrowserRendererTest extends \MailPoetTest {
@@ -54,8 +56,8 @@ class ViewInBrowserRendererTest extends \MailPoetTest {
$this->sendingQueueRepository = $this->diContainer->get(SendingQueuesRepository::class);
$this->subscribersRepository = $this->diContainer->get(SubscribersRepository::class);
$this->newsletterRepository = $this->diContainer->get(NewslettersRepository::class);
$newsletterData = [
'body' => json_decode(
$newsletterBody =
json_decode(
'{
"content": {
"type": "container",
@@ -94,12 +96,7 @@ class ViewInBrowserRendererTest extends \MailPoetTest {
}
]
}
}', true),
'subject' => 'Some subject',
'preheader' => 'Some preheader',
'type' => 'standard',
'status' => 'active',
];
}', true);
$this->queueRenderedNewsletterWithoutTracking = [
'html' => '<p>Newsletter from queue. Hello, [subscriber:firstname | default:reader]. <a href="[link:newsletter_view_in_browser_url]">Unsubscribe</a> or visit <a href="http://google.com">Google</a></p>',
'text' => 'test',
@@ -110,14 +107,9 @@ class ViewInBrowserRendererTest extends \MailPoetTest {
];
// create newsletter
$newsletter = new NewsletterEntity();
$newsletter->setSubject($newsletterData['subject']);
$newsletter->setPreheader($newsletterData['preheader']);
$newsletter->setType($newsletterData['type']);
$newsletter->setStatus($newsletterData['status']);
$newsletter->setBody($newsletterData['body']);
$this->newsletterRepository->persist($newsletter);
$this->newsletterRepository->flush();
$newsletter = (new Newsletter())
->withBody($newsletterBody)
->create();
$this->newsletter = $newsletter;
// create subscriber
@@ -139,13 +131,12 @@ class ViewInBrowserRendererTest extends \MailPoetTest {
$this->newsletter = $newsletter;
// create newsletter link associations
$newsletterLink1 = (new \MailPoet\Test\DataFactories\NewsletterLink($newsletter))
$newsletterLinkFactory = new NewsletterLink($newsletter);
$newsletterLinkFactory
->withUrl('[link:newsletter_view_in_browser_url]')
->withHash('90e56')
->create();
$newsletterLink2 = (new \MailPoet\Test\DataFactories\NewsletterLink($newsletter))
$newsletterLinkFactory
->withUrl('http://google.com')
->withHash('i1893')
->create();