- Updates unit tests
This commit is contained in:
38
tests/unit/Config/ShortcodesTest.php
Normal file
38
tests/unit/Config/ShortcodesTest.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
use MailPoet\Config\Shortcodes;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Newsletter\Url;
|
||||
use MailPoet\Router\Router;
|
||||
|
||||
class ConfigShortcodesTest extends MailPoetTest {
|
||||
function _before() {
|
||||
$newsletter = Newsletter::create();
|
||||
$newsletter->type = Newsletter::TYPE_STANDARD;
|
||||
$newsletter->status = Newsletter::STATUS_SENT;
|
||||
$this->newsletter = $newsletter->save();
|
||||
$queue = SendingQueue::create();
|
||||
$queue->newsletter_id = $newsletter->id;
|
||||
$queue->status = SendingQueue::STATUS_COMPLETED;
|
||||
$this->queue = $queue->save();
|
||||
}
|
||||
|
||||
function testItGetsArchives() {
|
||||
$shortcodes = new Shortcodes();
|
||||
// result contains a link pointing to the "view in browser" router endpoint
|
||||
$result = $shortcodes->getArchive($params = false);
|
||||
$dom = pQuery::parseStr($result);
|
||||
$link = $dom->query('a');
|
||||
$link = $link->attr('href');
|
||||
expect($link)->contains('endpoint=view_in_browser');
|
||||
// request data object contains newsletter hash but not newsletter id
|
||||
$parsed_link = parse_url($link);
|
||||
parse_str(html_entity_decode($parsed_link['query']), $data);
|
||||
$request_data = Url::transformUrlDataObject(
|
||||
Router::decodeRequestData($data['data'])
|
||||
);
|
||||
expect($request_data['newsletter_id'])->isEmpty();
|
||||
expect($request_data['newsletter_hash'])->equals($this->newsletter->hash);
|
||||
}
|
||||
}
|
@@ -245,6 +245,118 @@ class NewsletterTest extends MailPoetTest {
|
||||
expect($newsletter->Event)->equals($association->value);
|
||||
}
|
||||
|
||||
function testItGetsArchiveNewslettersForSegments() {
|
||||
// clear the DB
|
||||
$this->_after();
|
||||
|
||||
$types = array(
|
||||
Newsletter::TYPE_STANDARD,
|
||||
Newsletter::TYPE_NOTIFICATION_HISTORY
|
||||
);
|
||||
$newsletters = array();
|
||||
$sending_queues[] = array();
|
||||
for($i = 0; $i < count($types); $i++) {
|
||||
$newsletters[$i] = Newsletter::createOrUpdate(
|
||||
array(
|
||||
'subject' => 'My Standard Newsletter',
|
||||
'preheader' => 'Pre Header',
|
||||
'type' => $types[$i]
|
||||
)
|
||||
);
|
||||
$sending_queues[$i] = SendingQueue::create();
|
||||
$sending_queues[$i]->newsletter_id = $newsletters[$i]->id;
|
||||
$sending_queues[$i]->status = SendingQueue::STATUS_COMPLETED;
|
||||
$sending_queues[$i]->save();
|
||||
}
|
||||
// set segment association for the last newsletter
|
||||
$newsletter_segment = NewsletterSegment::create();
|
||||
$newsletter_segment->newsletter_id = end($newsletters[1])->id;
|
||||
$newsletter_segment->segment_id = 123;
|
||||
$newsletter_segment->save();
|
||||
|
||||
expect(Newsletter::findMany())->count(2);
|
||||
|
||||
// return archives in segment 123
|
||||
$results = Newsletter::getArchives(array(123));
|
||||
expect($results)->count(1);
|
||||
expect($results[0]->id)->equals($newsletters[1]->id);
|
||||
expect($results[0]->type)->equals(Newsletter::TYPE_NOTIFICATION_HISTORY);
|
||||
}
|
||||
|
||||
function testItGetsAllArchiveNewsletters() {
|
||||
// clear the DB
|
||||
$this->_after();
|
||||
|
||||
$types = array(
|
||||
Newsletter::TYPE_STANDARD,
|
||||
Newsletter::TYPE_STANDARD, // should be returned
|
||||
Newsletter::TYPE_WELCOME,
|
||||
Newsletter::TYPE_NOTIFICATION,
|
||||
Newsletter::TYPE_NOTIFICATION_HISTORY, // should be returned
|
||||
Newsletter::TYPE_NOTIFICATION_HISTORY
|
||||
);
|
||||
$newsletters = array();
|
||||
$sending_queues[] = array();
|
||||
for($i = 0; $i < count($types); $i++) {
|
||||
$newsletters[$i] = Newsletter::createOrUpdate(
|
||||
array(
|
||||
'subject' => 'My Standard Newsletter',
|
||||
'preheader' => 'Pre Header',
|
||||
'type' => $types[$i]
|
||||
)
|
||||
);
|
||||
$sending_queues[$i] = SendingQueue::create();
|
||||
$sending_queues[$i]->newsletter_id = $newsletters[$i]->id;
|
||||
$sending_queues[$i]->status = SendingQueue::STATUS_COMPLETED;
|
||||
$sending_queues[$i]->save();
|
||||
}
|
||||
// set teh sending queue status of the first newsletter to null
|
||||
$sending_queues[0]->status = null;
|
||||
$sending_queues[0]->save();
|
||||
|
||||
// trash the last newsletter
|
||||
end($newsletters)->trash();
|
||||
|
||||
expect(Newsletter::findMany())->count(6);
|
||||
|
||||
// archives return only:
|
||||
// 1. STANDARD and NOTIFICATION HISTORY newsletters
|
||||
// 2. active newsletters (i.e., not trashed)
|
||||
// 3. with sending queue records that are COMPLETED
|
||||
$results = Newsletter::getArchives();
|
||||
expect($results)->count(2);
|
||||
expect($results[0]->id)->equals($newsletters[1]->id);
|
||||
expect($results[0]->type)->equals(Newsletter::TYPE_STANDARD);
|
||||
expect($results[1]->id)->equals($newsletters[4]->id);
|
||||
expect($results[1]->type)->equals(Newsletter::TYPE_NOTIFICATION_HISTORY);
|
||||
}
|
||||
|
||||
function testItGeneratesHashOnNewsletterSave() {
|
||||
expect(strlen($this->newsletter->hash))
|
||||
->equals(Newsletter::NEWSLETTER_HASH_LENGTH);
|
||||
}
|
||||
|
||||
function testItRegeneratesHashOnNewsletterDuplication() {
|
||||
$duplicate_newsletter = $this->newsletter->duplicate();
|
||||
expect($duplicate_newsletter->hash)->notEquals($this->newsletter->hash);
|
||||
expect(strlen($duplicate_newsletter->hash))
|
||||
->equals(Newsletter::NEWSLETTER_HASH_LENGTH);
|
||||
}
|
||||
|
||||
function testItRegeneratesHashOnNotificationHistoryCreation() {
|
||||
$notification_history = $this->newsletter->createNotificationHistory();
|
||||
expect($notification_history->hash)->notEquals($this->newsletter->hash);
|
||||
expect(strlen($notification_history->hash))
|
||||
->equals(Newsletter::NEWSLETTER_HASH_LENGTH);
|
||||
}
|
||||
|
||||
function testItGetsQueueFromNewsletter() {
|
||||
$queue = SendingQueue::create();
|
||||
$queue->newsletter_id = $this->newsletter->id;
|
||||
$queue->save();
|
||||
expect($this->newsletter->queue()->findOne()->id)->equals($queue->id);
|
||||
}
|
||||
|
||||
function _after() {
|
||||
ORM::raw_execute('TRUNCATE ' . NewsletterOption::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
||||
|
@@ -9,7 +9,6 @@ use MailPoet\Models\SubscriberCustomField;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
|
||||
class SubscriberTest extends MailPoetTest {
|
||||
|
||||
function _before() {
|
||||
$this->data = array(
|
||||
'first_name' => 'John',
|
||||
@@ -555,6 +554,23 @@ class SubscriberTest extends MailPoetTest {
|
||||
expect($total)->equals(1);
|
||||
}
|
||||
|
||||
function testItGeneratesSubscriberToken() {
|
||||
$token = Subscriber::generateToken($this->data['email']);
|
||||
expect(strlen($token))->equals(Subscriber::SUBSCRIBER_TOKEN_LENGTH);
|
||||
}
|
||||
|
||||
function testItVerifiesSubscriberToken() {
|
||||
$token = Subscriber::generateToken($this->data['email']);
|
||||
expect(Subscriber::verifyToken($this->data['email'], $token))->true();
|
||||
expect(Subscriber::verifyToken('fake@email.com', $token))->false();
|
||||
}
|
||||
|
||||
function testVerifiedTokensOfDifferentLengths() {
|
||||
$token = md5(AUTH_KEY . $this->data['email']);
|
||||
expect(strlen($token))->notEquals(Subscriber::SUBSCRIBER_TOKEN_LENGTH);
|
||||
expect(Subscriber::verifyToken($this->data['email'], $token))->true();
|
||||
}
|
||||
|
||||
function _after() {
|
||||
ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
||||
|
@@ -5,6 +5,7 @@ use MailPoet\Models\NewsletterLink;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Newsletter\Links\Links;
|
||||
use MailPoet\Newsletter\Shortcodes\Categories\Link;
|
||||
use MailPoet\Router\Router;
|
||||
|
||||
class LinksTest extends MailPoetTest {
|
||||
@@ -46,6 +47,29 @@ class LinksTest extends MailPoetTest {
|
||||
expect($updated_content)->notContains('link');
|
||||
}
|
||||
|
||||
function testItCreatesAndTransformsUrlDataObject() {
|
||||
$subscriber_email = 'test@example.com';
|
||||
$data = array(
|
||||
'subscriber_id' => 1,
|
||||
'subscriber_token' => Subscriber::generateToken($subscriber_email),
|
||||
'queue_id' => 2,
|
||||
'link_hash' => 'hash',
|
||||
'preview' => false
|
||||
);
|
||||
$url_data_object = Links::createUrlDataObject(
|
||||
$data['subscriber_id'],
|
||||
$subscriber_email,
|
||||
$data['queue_id'],
|
||||
$data['link_hash'],
|
||||
$data['preview']
|
||||
);
|
||||
// URL data object should be an indexed array
|
||||
expect($url_data_object)->equals(array_values($data));
|
||||
// transformed URL object should be an associative array
|
||||
$transformed_url_data_object = Links::transformUrlDataObject($url_data_object);
|
||||
expect($transformed_url_data_object)->equals($data);
|
||||
}
|
||||
|
||||
function testItReplacesHashedLinksWithSubscriberData() {
|
||||
$subscriber = Subscriber::create();
|
||||
$subscriber->hydrate(Fixtures::get('subscriber_template'));
|
||||
@@ -70,6 +94,7 @@ class LinksTest extends MailPoetTest {
|
||||
preg_match_all('/data=(?P<data>.*?)"/', $result, $result);
|
||||
foreach($result['data'] as $data) {
|
||||
$data = Router::decodeRequestData($data);
|
||||
$data = Links::transformUrlDataObject($data);
|
||||
expect($data['subscriber_id'])->equals($subscriber->id);
|
||||
expect($data['queue_id'])->equals($queue->id);
|
||||
expect(isset($data['subscriber_token']))->true();
|
||||
@@ -97,6 +122,52 @@ class LinksTest extends MailPoetTest {
|
||||
expect($newsltter_link->url)->equals('http://example.com');
|
||||
}
|
||||
|
||||
function testItMatchesHashedLinks() {
|
||||
$regex = Links::getLinkRegex();
|
||||
expect((boolean)preg_match($regex, '[some_tag]-123'))->false();
|
||||
expect((boolean)preg_match($regex, '[some_tag]'))->false();
|
||||
expect((boolean)preg_match($regex, '[mailpoet_click_data]-123'))->true();
|
||||
expect((boolean)preg_match($regex, '[mailpoet_open_data]'))->true();
|
||||
}
|
||||
|
||||
function testItCanConvertOnlyHashedLinkShortcodes() {
|
||||
// create newsletter link association
|
||||
$newsletter_link = NewsletterLink::create();
|
||||
$newsletter_link->newsletter_id = 1;
|
||||
$newsletter_link->queue_id = 1;
|
||||
$newsletter_link->hash = '90e56';
|
||||
$newsletter_link->url = '[link:newsletter_view_in_browser_url]';
|
||||
$newsletter_link = $newsletter_link->save();
|
||||
$content = '
|
||||
<a href="[mailpoet_click_data]-90e56">View in browser</a>
|
||||
<a href="[mailpoet_click_data]-123">Some link</a>';
|
||||
$result = Links::convertHashedLinksToShortcodesAndUrls($content);
|
||||
expect($result)->contains($newsletter_link->url);
|
||||
expect($result)->contains('[mailpoet_click_data]-123');
|
||||
}
|
||||
|
||||
function testItCanConvertAllHashedLinksToUrls() {
|
||||
// create newsletter link associations
|
||||
$newsletter_link_1 = NewsletterLink::create();
|
||||
$newsletter_link_1->newsletter_id = 1;
|
||||
$newsletter_link_1->queue_id = 1;
|
||||
$newsletter_link_1->hash = '90e56';
|
||||
$newsletter_link_1->url = '[link:newsletter_view_in_browser_url]';
|
||||
$newsletter_link_1 = $newsletter_link_1->save();
|
||||
$newsletter_link_2 = NewsletterLink::create();
|
||||
$newsletter_link_2->newsletter_id = 1;
|
||||
$newsletter_link_2->queue_id = 1;
|
||||
$newsletter_link_2->hash = '123';
|
||||
$newsletter_link_2->url = 'http://google.com';
|
||||
$newsletter_link_2 = $newsletter_link_2->save();
|
||||
$content = '
|
||||
<a href="[mailpoet_click_data]-90e56">View in browser</a>
|
||||
<a href="[mailpoet_click_data]-123">Some link</a>';
|
||||
$result = Links::convertHashedLinksToShortcodesAndUrls($content, $convert_all = true);
|
||||
expect($result)->contains($newsletter_link_1->url);
|
||||
expect($result)->contains($newsletter_link_2->url);
|
||||
}
|
||||
|
||||
function _after() {
|
||||
ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
|
@@ -94,13 +94,13 @@ class ShortcodesTest extends MailPoetTest {
|
||||
'<a data-post-id="10" href="#">another post</a>' .
|
||||
'<a href="#">not post</a>';
|
||||
$result =
|
||||
$shortcodes_object->process(array('[newsletter:subject]'));
|
||||
$shortcodes_object->process(array('[newsletter:subject]'), $content);
|
||||
expect($result[0])->equals($this->newsletter->subject);
|
||||
$result =
|
||||
$shortcodes_object->process(array('[newsletter:total]'), $content);
|
||||
expect($result[0])->equals(2);
|
||||
$result =
|
||||
$shortcodes_object->process(array('[newsletter:post_title]'));
|
||||
$shortcodes_object->process(array('[newsletter:post_title]'), $content);
|
||||
$wp_post = get_post($this->WP_post);
|
||||
expect($result['0'])->equals($wp_post->post_title);
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\NewsletterLink;
|
||||
use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Models\Setting;
|
||||
use MailPoet\Models\Subscriber;
|
||||
@@ -9,7 +10,8 @@ use MailPoet\Router\Router;
|
||||
|
||||
class ViewInBrowserTest extends MailPoetTest {
|
||||
function __construct() {
|
||||
$this->newsletter = array(
|
||||
$this->newsletter =
|
||||
array(
|
||||
'body' => json_decode(
|
||||
'{
|
||||
"content": {
|
||||
@@ -41,7 +43,7 @@ class ViewInBrowserTest extends MailPoetTest {
|
||||
"blocks": [
|
||||
{
|
||||
"type": "text",
|
||||
"text": "<p>Rendered newsletter. Hello, [subscriber:firstname | default:reader] & [link:newsletter_view_in_browser_url]</p>"
|
||||
"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>"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -57,15 +59,11 @@ class ViewInBrowserTest extends MailPoetTest {
|
||||
'status' => 'active'
|
||||
);
|
||||
$this->queue_rendered_newsletter_without_tracking = array(
|
||||
'html' => 'Newsletter from queue. Hello, [subscriber:firstname] &
|
||||
[link:newsletter_view_in_browser_url]'
|
||||
'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>'
|
||||
);
|
||||
$this->queue_rendered_newsletter_with_tracking = array(
|
||||
'html' => 'Newsletter from queue. Hello, [subscriber:firstname] &
|
||||
[mailpoet_click_data]-90e56'
|
||||
'html' => '<p>Newsletter from queue. Hello, [subscriber:firstname | default:reader]. <a href="[mailpoet_click_data]-90e56">Unsubscribe</a> or visit <a href="[mailpoet_click_data]-i1893">Google</a></p>'
|
||||
);
|
||||
// instantiate class
|
||||
$this->view_in_browser = new ViewInBrowser();
|
||||
}
|
||||
|
||||
function _before() {
|
||||
@@ -85,6 +83,20 @@ class ViewInBrowserTest extends MailPoetTest {
|
||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_without_tracking;
|
||||
$queue->subscribers = array('processed' => array($subscriber->id));
|
||||
$this->queue = $queue->save();
|
||||
// create newsletter link associations
|
||||
$newsletter_link_1 = NewsletterLink::create();
|
||||
$newsletter_link_1->hash = '90e56';
|
||||
$newsletter_link_1->url = '[link:newsletter_view_in_browser_url]';
|
||||
$newsletter_link_1->newsletter_id = $this->newsletter->id;
|
||||
$newsletter_link_1->queue_id = $this->queue->id;
|
||||
$this->newsletter_link_1 = $newsletter_link_1->save();
|
||||
$newsletter_link_2 = NewsletterLink::create();
|
||||
$newsletter_link_2->hash = 'i1893';
|
||||
$newsletter_link_2->url = 'http://google.com';
|
||||
$newsletter_link_2->newsletter_id = $this->newsletter->id;
|
||||
$newsletter_link_2->queue_id = $this->queue->id;
|
||||
$this->newsletter_link_2 = $newsletter_link_2->save();
|
||||
|
||||
}
|
||||
|
||||
function testItRendersNewsletter() {
|
||||
@@ -119,7 +131,7 @@ class ViewInBrowserTest extends MailPoetTest {
|
||||
expect($rendered_body)->contains(Router::NAME . '&endpoint=view_in_browser');
|
||||
}
|
||||
|
||||
function testItProcessesLinksWhenTrackingIsEnabled() {
|
||||
function testItRewritesLinksToRouterEndpointWhenTrackingIsEnabled() {
|
||||
Setting::setValue('tracking.enabled', true);
|
||||
$queue = $this->queue;
|
||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
||||
@@ -132,8 +144,38 @@ class ViewInBrowserTest extends MailPoetTest {
|
||||
expect($rendered_body)->contains(Router::NAME . '&endpoint=track');
|
||||
}
|
||||
|
||||
function testItConvertsHashedLinksToUrlsWhenPreviewIsEnabledAndNewsletterWasSent() {
|
||||
$queue = $this->queue;
|
||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
||||
$rendered_body = ViewInBrowser::renderNewsletter(
|
||||
$this->newsletter,
|
||||
$this->subscriber,
|
||||
$queue,
|
||||
$preview = true
|
||||
);
|
||||
// hashed link should be replaced with a URL
|
||||
expect($rendered_body)->notContains('[mailpoet_click_data]');
|
||||
expect($rendered_body)->contains('<a href="http://google.com">');
|
||||
}
|
||||
|
||||
|
||||
function testReplacesLinkShortcodesWithUrlHashWhenPreviewIsEnabledAndNewsletterWasSent() {
|
||||
$queue = $this->queue;
|
||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
||||
$rendered_body = ViewInBrowser::renderNewsletter(
|
||||
$this->newsletter,
|
||||
$this->subscriber,
|
||||
$queue,
|
||||
$preview = true
|
||||
);
|
||||
// link shortcodes should be replaced with a hash (#)
|
||||
expect($rendered_body)->notContains('[mailpoet_click_data]');
|
||||
expect($rendered_body)->contains('<a href="#">');
|
||||
}
|
||||
|
||||
function _after() {
|
||||
ORM::raw_execute('TRUNCATE ' . Newsletter::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . NewsletterLink::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
||||
ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
}
|
||||
|
@@ -37,17 +37,13 @@ class ViewInBrowserRouterTest extends MailPoetTest {
|
||||
|
||||
function testItAbortsWhenBrowserPreviewDataIsMissing() {
|
||||
$view_in_browser = Stub::make($this->view_in_browser, array(
|
||||
'_abort' => Stub::exactly(3, function() { })
|
||||
'_abort' => Stub::exactly(2, function () { })
|
||||
), $this);
|
||||
// newsletter ID is required
|
||||
$data = $this->browser_preview_data;
|
||||
unset($data['newsletter_id']);
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
// subscriber ID is required
|
||||
$data = $this->browser_preview_data;
|
||||
unset($data['subscriber_id']);
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
// subscriber token is required
|
||||
// subscriber token is required if subscriber is provided
|
||||
$data = $this->browser_preview_data;
|
||||
unset($data['subscriber_token']);
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
@@ -55,50 +51,51 @@ class ViewInBrowserRouterTest extends MailPoetTest {
|
||||
|
||||
function testItAbortsWhenBrowserPreviewDataIsInvalid() {
|
||||
$view_in_browser = Stub::make($this->view_in_browser, array(
|
||||
'_abort' => Stub::exactly(3, function() { })
|
||||
'_abort' => Stub::exactly(3, function () { })
|
||||
), $this);
|
||||
// newsletter ID is invalid
|
||||
$data = $this->browser_preview_data;
|
||||
$data['newsletter_id'] = 99;
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
// subscriber ID is invalid
|
||||
// subscriber token is invalid
|
||||
$data = $this->browser_preview_data;
|
||||
$data['subscriber_id'] = 99;
|
||||
$data['subscriber_token'] = false;
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
// subscriber token is invalid
|
||||
$data = $this->browser_preview_data;
|
||||
$data['subscriber_token'] = 'invalid';
|
||||
$view_in_browser->_processBrowserPreviewData($data);
|
||||
// subscriber has not received the newsletter
|
||||
}
|
||||
|
||||
function testItFailsValidationWhenSubscriberTokenDoesNotMatch() {
|
||||
$data = (object)array_merge(
|
||||
$subscriber = $this->subscriber;
|
||||
$subscriber->email = 'random@email.com';
|
||||
$subscriber->save();
|
||||
$data = (object) array_merge(
|
||||
$this->browser_preview_data,
|
||||
array(
|
||||
'queue' => $this->queue,
|
||||
'subscriber' => $this->subscriber,
|
||||
'subscriber' => $subscriber,
|
||||
'newsletter' => $this->newsletter
|
||||
)
|
||||
);
|
||||
$data->subscriber->email = 'random@email.com';
|
||||
expect($this->view_in_browser->_validateBrowserPreviewData($data))->false();
|
||||
}
|
||||
|
||||
function testItFailsValidationWhenSubscriberIsNotOnProcessedList() {
|
||||
$data = (object)array_merge(
|
||||
$this->browser_preview_data,
|
||||
array(
|
||||
'queue' => $this->queue,
|
||||
'subscriber' => $this->subscriber,
|
||||
'newsletter' => $this->newsletter
|
||||
)
|
||||
);
|
||||
$data->subscriber->id = 99;
|
||||
expect($this->view_in_browser->_validateBrowserPreviewData($data))->false();
|
||||
$data = (object) $this->browser_preview_data;
|
||||
$result = $this->view_in_browser->_validateBrowserPreviewData($data);
|
||||
expect($result)->notEmpty();
|
||||
$queue = $this->queue;
|
||||
$queue->subscribers = array('processed' => array());
|
||||
$queue->save();
|
||||
$result = $this->view_in_browser->_validateBrowserPreviewData($data);
|
||||
expect($result)->false();
|
||||
}
|
||||
|
||||
function testItDoesNotRequireWpUsersToBeOnProcessedListWhenPreviewIsEnabled() {
|
||||
$data = (object)array_merge(
|
||||
$data = (object) array_merge(
|
||||
$this->browser_preview_data,
|
||||
array(
|
||||
'queue' => $this->queue,
|
||||
@@ -120,7 +117,7 @@ class ViewInBrowserRouterTest extends MailPoetTest {
|
||||
|
||||
function testItReturnsViewActionResult() {
|
||||
$view_in_browser = Stub::make($this->view_in_browser, array(
|
||||
'_displayNewsletter' => Stub::exactly(1, function() { })
|
||||
'_displayNewsletter' => Stub::exactly(1, function () { })
|
||||
), $this);
|
||||
$view_in_browser->data = $view_in_browser->_processBrowserPreviewData($this->browser_preview_data);
|
||||
$view_in_browser->view();
|
||||
|
Reference in New Issue
Block a user