diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Posts.php b/lib/Cron/Workers/SendingQueue/Tasks/Posts.php index d38c25c923..87839508d6 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Posts.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Posts.php @@ -8,6 +8,9 @@ if(!defined('ABSPATH')) exit; class Posts { static function extractAndSave($rendered_newsletter, $newsletter) { + if($newsletter->type !== NewsletterModel::TYPE_NOTIFICATION_HISTORY) { + return false; + } preg_match_all( '/data-post-id="(\d+)"/ism', $rendered_newsletter['html'], @@ -16,9 +19,7 @@ class Posts { if(!count($matched_posts_ids)) { return false; } - $newsletter_id = ($newsletter->type === NewsletterModel::TYPE_NOTIFICATION_HISTORY) ? - $newsletter->parent_id : - $newsletter->id; + $newsletter_id = $newsletter->parent_id; // parent post notification foreach($matched_posts_ids as $post_id) { $newsletter_post = NewsletterPost::create(); $newsletter_post->newsletter_id = $newsletter_id; @@ -27,4 +28,4 @@ class Posts { } return true; } -} \ No newline at end of file +} diff --git a/lib/Newsletter/Renderer/Blocks/Renderer.php b/lib/Newsletter/Renderer/Blocks/Renderer.php index e977e81f5a..525197bcf2 100644 --- a/lib/Newsletter/Renderer/Blocks/Renderer.php +++ b/lib/Newsletter/Renderer/Blocks/Renderer.php @@ -23,11 +23,8 @@ class Renderer { $parent = Newsletter::findOne($newsletter_id); $newer_than_timestamp = $parent->created_at; } - } else if($preview) { - $newsletter_id = false; - $newer_than_timestamp = false; } else { - $newsletter_id = $newsletter['id']; + $newsletter_id = false; $newer_than_timestamp = false; } $this->ALC = new \MailPoet\Newsletter\AutomatedLatestContent( diff --git a/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php b/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php index b787116f44..add9704c87 100644 --- a/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php +++ b/tests/unit/Cron/Workers/SendingQueue/Tasks/PostsTest.php @@ -11,6 +11,7 @@ class PostsTest extends \MailPoetTest { function testItFailsWhenNoPostsArePresent() { $newsletter = (object)array( 'id' => 1, + 'type' => Newsletter::TYPE_NOTIFICATION_HISTORY ); $rendered_newsletter = array( 'html' => 'Sample newsletter' @@ -19,21 +20,6 @@ class PostsTest extends \MailPoetTest { } function testItCanExtractAndSavePosts() { - $post_id = 10; - $newsletter = (object)array( - 'id' => 1, - 'type' => Newsletter::TYPE_STANDARD - ); - $rendered_newsletter = array( - 'html' => 'sample post' - ); - expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(true); - $newsletter_post = NewsletterPost::where('newsletter_id', $newsletter->id) - ->findOne(); - expect($newsletter_post->post_id)->equals($post_id); - } - - function testItSetsNewsletterIdToParentIdWhenNewsletterIsANotificationHistory() { $post_id = 10; $newsletter = (object)array( 'id' => 2, @@ -49,7 +35,22 @@ class PostsTest extends \MailPoetTest { expect($newsletter_post->post_id)->equals($post_id); } + function testItDoesNotSavePostsWhenNewsletterIsNotANotificationHistory() { + $post_id = 10; + $newsletter = (object)array( + 'id' => 2, + 'parent_id' => 1, + 'type' => Newsletter::TYPE_WELCOME + ); + $rendered_newsletter = array( + 'html' => 'sample post' + ); + expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false); + $newsletter->type = Newsletter::TYPE_STANDARD; + expect(PostsTask::extractAndSave($rendered_newsletter, $newsletter))->equals(false); + } + function _after() { \ORM::raw_execute('TRUNCATE ' . NewsletterPost::$_table); } -} \ No newline at end of file +}