diff --git a/tests/integration/API/JSON/v1/NewslettersTest.php b/tests/integration/API/JSON/v1/NewslettersTest.php index 08f4efca17..17841c39c5 100644 --- a/tests/integration/API/JSON/v1/NewslettersTest.php +++ b/tests/integration/API/JSON/v1/NewslettersTest.php @@ -32,6 +32,7 @@ use MailPoet\Settings\SettingsController; use MailPoet\Subscription\SubscriptionUrlFactory; use MailPoet\Tasks\Sending as SendingTask; use MailPoet\WooCommerce\Helper as WCHelper; +use MailPoet\WP\Emoji; use MailPoet\WP\Functions as WPFunctions; class NewslettersTest extends \MailPoetTest { @@ -138,7 +139,8 @@ class NewslettersTest extends \MailPoetTest { ContainerWrapper::getInstance()->get(NewslettersRepository::class), ContainerWrapper::getInstance()->get(NewslettersResponseBuilder::class), ContainerWrapper::getInstance()->get(PostNotificationScheduler::class), - ContainerWrapper::getInstance()->get(MetaInfo::class) + ContainerWrapper::getInstance()->get(MetaInfo::class), + ContainerWrapper::getInstance()->get(Emoji::class) ); $response = $this->endpoint->get(['id' => $this->newsletter->id]); expect($response->status)->equals(APIResponse::STATUS_OK); @@ -166,8 +168,17 @@ class NewslettersTest extends \MailPoetTest { 'options' => [ $newsletter_option_field->name => 'some_option_value', ], + 'body' => 'some text', ]; + $emoji = $this->make( + Emoji::class, + ['encodeForUTF8Column' => Expected::once(function ($params) { + return $params; + })], + $this + ); + $wp = Stub::make(new WPFunctions, [ 'applyFilters' => asCallable([WPHooksHelper::class, 'applyFilters']), 'doAction' => asCallable([WPHooksHelper::class, 'doAction']), @@ -182,7 +193,8 @@ class NewslettersTest extends \MailPoetTest { ContainerWrapper::getInstance()->get(NewslettersRepository::class), ContainerWrapper::getInstance()->get(NewslettersResponseBuilder::class), ContainerWrapper::getInstance()->get(PostNotificationScheduler::class), - ContainerWrapper::getInstance()->get(MetaInfo::class) + ContainerWrapper::getInstance()->get(MetaInfo::class), + $emoji ); $response = $this->endpoint->save($valid_data); @@ -554,7 +566,8 @@ class NewslettersTest extends \MailPoetTest { ContainerWrapper::getInstance()->get(NewslettersRepository::class), ContainerWrapper::getInstance()->get(NewslettersResponseBuilder::class), ContainerWrapper::getInstance()->get(PostNotificationScheduler::class), - ContainerWrapper::getInstance()->get(MetaInfo::class) + ContainerWrapper::getInstance()->get(MetaInfo::class), + ContainerWrapper::getInstance()->get(Emoji::class) ); $response = $this->endpoint->duplicate(['id' => $this->newsletter->id]); @@ -870,6 +883,33 @@ class NewslettersTest extends \MailPoetTest { 'id' => $this->newsletter->id, 'body' => 'fake body', ]; + + $emoji = $this->make( + Emoji::class, + ['encodeForUTF8Column' => Expected::once(function ($params) { + return $params; + })], + $this + ); + + $wp = Stub::make(new WPFunctions, [ + 'applyFilters' => asCallable([WPHooksHelper::class, 'applyFilters']), + 'doAction' => asCallable([WPHooksHelper::class, 'doAction']), + ]); + $this->endpoint = new Newsletters( + ContainerWrapper::getInstance()->get(BulkActionController::class), + ContainerWrapper::getInstance()->get(Handler::class), + $wp, + $this->makeEmpty(WCHelper::class), + new SettingsController(), + ContainerWrapper::getInstance()->get(AuthorizedEmailsController::class), + ContainerWrapper::getInstance()->get(NewslettersRepository::class), + ContainerWrapper::getInstance()->get(NewslettersResponseBuilder::class), + ContainerWrapper::getInstance()->get(PostNotificationScheduler::class), + ContainerWrapper::getInstance()->get(MetaInfo::class), + $emoji + ); + $response = $this->endpoint->showPreview($data); expect($response->meta['preview_url'])->notContains('http'); expect($response->meta['preview_url'])->regExp('!^\/\/!'); diff --git a/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php b/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php index f13fea3609..1ba1d2b1bd 100644 --- a/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php +++ b/tests/integration/Cron/Workers/SendingQueue/Tasks/NewsletterTest.php @@ -3,6 +3,7 @@ namespace MailPoet\Test\Cron\Workers\SendingQueue\Tasks; use Codeception\Stub; +use Codeception\Stub\Expected; use Codeception\Util\Fixtures; use Helper\WordPressHooks as WPHooksHelper; use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask; @@ -19,6 +20,7 @@ use MailPoet\Models\Setting; use MailPoet\Models\Subscriber; use MailPoet\Router\Router; use MailPoet\Tasks\Sending as SendingTask; +use MailPoet\WP\Emoji; use MailPoet\WP\Functions as WPFunctions; class NewsletterTest extends \MailPoetTest { @@ -283,7 +285,15 @@ class NewsletterTest extends \MailPoetTest { 'text' => 'queue TEXT body', ]; $queue->newsletter_rendered_subject = 'queue subject'; - $result = $this->newsletter_task->prepareNewsletterForSending( + $emoji = $this->make( + Emoji::class, + ['decodeEmojisInBody' => Expected::once(function ($params) { + return $params; + })], + $this + ); + $newsletter_task = new NewsletterTask(null, null, null, $emoji); + $result = $newsletter_task->prepareNewsletterForSending( $this->newsletter, $this->subscriber, $queue @@ -421,7 +431,16 @@ class NewsletterTest extends \MailPoetTest { $sending_queue = \ORM::forTable(SendingQueue::$_table)->findOne($queue->id); $sending_queue->set('newsletter_rendered_body', 'a:2:{s:4:"html";s:4:"test";s:4:"text";s:4:"test";}'); $sending_queue->save(); - expect($this->newsletter_task->preProcessNewsletter($this->newsletter, $queue_mock))->equals($this->newsletter); + + $emoji = $this->make( + Emoji::class, + ['encodeEmojisInBody' => Expected::once(function ($params) { + return $params; + })], + $this + ); + $newsletter_task = new NewsletterTask(null, null, null, $emoji); + expect($newsletter_task->preProcessNewsletter($this->newsletter, $queue_mock))->equals($this->newsletter); } function _after() { diff --git a/tests/integration/Models/SendingQueueTest.php b/tests/integration/Models/SendingQueueTest.php index 2d5f4203dd..7ede174047 100644 --- a/tests/integration/Models/SendingQueueTest.php +++ b/tests/integration/Models/SendingQueueTest.php @@ -2,7 +2,6 @@ namespace MailPoet\Test\Models; -use AspectMock\Test as Mock; use MailPoet\Models\ScheduledTask; use MailPoet\Models\ScheduledTaskSubscriber; use MailPoet\Models\SendingQueue; @@ -23,26 +22,6 @@ class SendingQueueTest extends \MailPoetTest { ]; } - function testItCanEncodeEmojisInBody() { - $mock = Mock::double('MailPoet\WP\Emoji', [ - 'encodeForUTF8Column' => function($params) { - return $params; - }, - ]); - $this->queue->encodeEmojisInBody($this->rendered_body); - $mock->verifyInvokedMultipleTimes('encodeForUTF8Column', 2); - } - - function testItCanDecodeEmojisInBody() { - $mock = Mock::double('MailPoet\WP\Emoji', [ - 'decodeEntities' => function($params) { - return $params; - }, - ]); - $this->queue->decodeEmojisInBody($this->rendered_body); - $mock->verifyInvokedMultipleTimes('decodeEntities', 2); - } - function testItChecksProcessedSubscribersForOldQueues() { $subscriber_id = 123; expect($this->queue->isSubscriberProcessed($subscriber_id))->false(); @@ -149,7 +128,6 @@ class SendingQueueTest extends \MailPoetTest { } function _after() { - Mock::clean(); \ORM::raw_execute('TRUNCATE ' . ScheduledTask::$_table); \ORM::raw_execute('TRUNCATE ' . ScheduledTaskSubscriber::$_table); \ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table); diff --git a/tests/integration/Newsletter/ViewInBrowserTest.php b/tests/integration/Newsletter/ViewInBrowserTest.php index 5beb82d929..8a479bf97b 100644 --- a/tests/integration/Newsletter/ViewInBrowserTest.php +++ b/tests/integration/Newsletter/ViewInBrowserTest.php @@ -2,6 +2,7 @@ namespace MailPoet\Test\Newsletter; +use Codeception\Stub\Expected; use MailPoet\Models\Newsletter; use MailPoet\Models\NewsletterLink; use MailPoet\Models\ScheduledTask; @@ -12,6 +13,7 @@ use MailPoet\Newsletter\ViewInBrowser; use MailPoet\Router\Router; use MailPoet\Settings\SettingsController; use MailPoet\Tasks\Sending as SendingTask; +use MailPoet\WP\Emoji; class ViewInBrowserTest extends \MailPoetTest { function _before() { @@ -72,7 +74,8 @@ class ViewInBrowserTest extends \MailPoetTest { 'html' => '
Newsletter from queue. Hello, [subscriber:firstname | default:reader]. Unsubscribe or visit Google