Use data factories on tests
[MAILPOET-3637]
This commit is contained in:
@@ -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);
|
||||
|
@@ -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
|
||||
*/
|
||||
|
@@ -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,
|
||||
|
@@ -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();
|
||||
|
Reference in New Issue
Block a user