diff --git a/tests/unit/API/Endpoints/NewslettersTest.php b/tests/unit/API/Endpoints/NewslettersTest.php index 690727f8d8..59d6b2aca3 100644 --- a/tests/unit/API/Endpoints/NewslettersTest.php +++ b/tests/unit/API/Endpoints/NewslettersTest.php @@ -8,6 +8,8 @@ use MailPoet\Models\NewsletterOptionField; use MailPoet\Models\NewsletterSegment; use MailPoet\Models\Segment; use MailPoet\Newsletter\Scheduler\Scheduler; +use MailPoet\Newsletter\Url; +use MailPoet\Router\Router; class NewslettersTest extends MailPoetTest { function _before() { @@ -29,7 +31,7 @@ class NewslettersTest extends MailPoetTest { function testItCanGetANewsletter() { $router = new Newsletters(); - $response = $router->get(/* missing id */); + $response = $router->get(); // missing id expect($response->status)->equals(APIResponse::STATUS_NOT_FOUND); expect($response->errors[0]['message']) ->equals('This newsletter does not exist.'); @@ -517,7 +519,7 @@ class NewslettersTest extends MailPoetTest { expect($response->status)->equals(APIResponse::STATUS_OK); } - function testItReturnsMaillerErrorWhenSendingFailed() { + function testItReturnsMailerErrorWhenSendingFailed() { $subscriber = 'test@subscriber.com'; $data = array( 'subscriber' => $subscriber, @@ -542,6 +544,18 @@ class NewslettersTest extends MailPoetTest { expect($response->errors[0]['message'])->equals('The email could not be sent: failed'); } + function testItGeneratesPreviewLinksWithNewsletterHashAndNoSubscriberData() { + $router = new Newsletters(); + $response = $router->listing(); + $preview_link = $response->data[0]['preview_url']; + parse_str(parse_url($preview_link, PHP_URL_QUERY), $preview_link_data); + $preview_link_data = Url::transformUrlDataObject(Router::decodeRequestData($preview_link_data['data'])); + expect($preview_link_data['newsletter_hash'])->notEmpty(); + expect($preview_link_data['subscriber_id'])->false(); + expect($preview_link_data['subscriber_token'])->false(); + expect((boolean)$preview_link_data['preview'])->true(); + } + function _after() { Newsletter::deleteMany(); NewsletterSegment::deleteMany(); diff --git a/tests/unit/Router/Endpoints/ViewInBrowserTest.php b/tests/unit/Router/Endpoints/ViewInBrowserTest.php index a6cb5da8be..1484887cc2 100644 --- a/tests/unit/Router/Endpoints/ViewInBrowserTest.php +++ b/tests/unit/Router/Endpoints/ViewInBrowserTest.php @@ -143,6 +143,21 @@ class ViewInBrowserRouterTest extends MailPoetTest { expect($this->view_in_browser->_validateBrowserPreviewData($data))->equals($data); } + function testItSetsSubscriberToLoggedInWPUserWhenPreviewIsEnabled() { + $data = (object)array_merge( + $this->browser_preview_data, + array( + 'queue' => $this->queue, + 'subscriber' => null, + 'newsletter' => $this->newsletter + ) + ); + $data->preview = true; + wp_set_current_user(1); + $result = $this->view_in_browser->_validateBrowserPreviewData($data); + expect($result->subscriber->id)->equals(1); + } + function testItProcessesBrowserPreviewData() { $processed_data = $this->view_in_browser->_processBrowserPreviewData($this->browser_preview_data); expect($processed_data->queue->id)->equals($this->queue->id);