Enabling links on header and footer on preview
This commit is contained in:
@@ -23,28 +23,26 @@ class Link {
|
||||
case 'subscription_unsubscribe_url':
|
||||
return self::processUrl(
|
||||
$action,
|
||||
SubscriptionUrl::getUnsubscribeUrl($subscriber),
|
||||
$queue,
|
||||
$wp_user_preview
|
||||
SubscriptionUrl::getUnsubscribeUrl($wp_user_preview ? false : $subscriber),
|
||||
$queue
|
||||
);
|
||||
|
||||
case 'subscription_manage_url':
|
||||
return self::processUrl(
|
||||
$action,
|
||||
SubscriptionUrl::getManageUrl($subscriber),
|
||||
$queue,
|
||||
$wp_user_preview
|
||||
SubscriptionUrl::getManageUrl($wp_user_preview ? false : $subscriber),
|
||||
$queue
|
||||
);
|
||||
|
||||
case 'newsletter_view_in_browser_url':
|
||||
$url = NewsletterUrl::getViewInBrowserUrl(
|
||||
$type = null,
|
||||
$newsletter,
|
||||
$subscriber,
|
||||
$wp_user_preview ? false : $subscriber,
|
||||
$queue,
|
||||
$wp_user_preview
|
||||
);
|
||||
return self::processUrl($action, $url, $queue, $wp_user_preview);
|
||||
return self::processUrl($action, $url, $queue);
|
||||
|
||||
default:
|
||||
$shortcode = self::getFullShortcode($action);
|
||||
@@ -62,8 +60,7 @@ class Link {
|
||||
}
|
||||
}
|
||||
|
||||
static function processUrl($action, $url, $queue, $wp_user_preview = false) {
|
||||
if($wp_user_preview) return '#';
|
||||
static function processUrl($action, $url, $queue) {
|
||||
return ($queue !== false && (boolean)Setting::getValue('tracking.enabled')) ?
|
||||
self::getFullShortcode($action) :
|
||||
$url;
|
||||
@@ -111,4 +108,4 @@ class Link {
|
||||
private static function getFullShortcode($action) {
|
||||
return sprintf('[link:%s]', $action);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@ use MailPoet\Models\SendingQueue;
|
||||
use MailPoet\Newsletter\Scheduler\Scheduler;
|
||||
use MailPoet\Newsletter\Url;
|
||||
use MailPoet\Router\Router;
|
||||
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||
|
||||
class NewslettersTest extends \MailPoetTest {
|
||||
function _before() {
|
||||
@@ -699,21 +700,26 @@ class NewslettersTest extends \MailPoetTest {
|
||||
|
||||
function testItCanSendAPreview() {
|
||||
$subscriber = 'test@subscriber.com';
|
||||
$unsubscribeLink = SubscriptionUrl::getUnsubscribeUrl(false);
|
||||
$manageLink = SubscriptionUrl::getManageUrl(false);
|
||||
$viewInBrowserLink = Url::getViewInBrowserUrl(null, $this->newsletter, false, false, true);
|
||||
$data = array(
|
||||
'subscriber' => $subscriber,
|
||||
'id' => $this->newsletter->id,
|
||||
'mailer' => Stub::makeEmpty(
|
||||
'\MailPoet\Mailer\Mailer',
|
||||
array(
|
||||
'send' => function($newsletter, $subscriber, $extra_params) {
|
||||
'send' => function($newsletter, $subscriber, $extra_params)
|
||||
use ($unsubscribeLink, $manageLink, $viewInBrowserLink)
|
||||
{
|
||||
expect(is_array($newsletter))->true();
|
||||
expect($newsletter['body']['text'])->contains('Hello test');
|
||||
expect($subscriber)->equals($subscriber);
|
||||
expect($extra_params['unsubscribe_url'])->equals(home_url());
|
||||
// system links are replaced with hashes
|
||||
expect($newsletter['body']['html'])->contains('href="#">View in browser');
|
||||
expect($newsletter['body']['html'])->contains('href="#">Unsubscribe');
|
||||
expect($newsletter['body']['html'])->contains('href="#">Manage subscription');
|
||||
expect($newsletter['body']['html'])->contains('href="'.$viewInBrowserLink.'">View in browser');
|
||||
expect($newsletter['body']['html'])->contains('href="'.$unsubscribeLink.'">Unsubscribe');
|
||||
expect($newsletter['body']['html'])->contains('href="'.$manageLink.'">Manage subscription');
|
||||
return array('response' => true);
|
||||
}
|
||||
)
|
||||
@@ -812,4 +818,4 @@ class NewslettersTest extends \MailPoetTest {
|
||||
\ORM::raw_execute('TRUNCATE ' . Segment::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -9,6 +9,8 @@ use MailPoet\Models\Setting;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\SubscriberCustomField;
|
||||
use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||
use MailPoet\Subscription\Url as SubscriptionUrl;
|
||||
|
||||
require_once(ABSPATH . 'wp-includes/pluggable.php');
|
||||
require_once(ABSPATH . 'wp-admin/includes/user.php');
|
||||
@@ -270,7 +272,7 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
}
|
||||
}
|
||||
|
||||
function testItReturnsHashInsteadofLinksWhenPreviewIsEnabled() {
|
||||
function testItReturnsDefaultLinksWhenPreviewIsEnabled() {
|
||||
$shortcodes_object = $this->shortcodes_object;
|
||||
$shortcodes_object->wp_user_preview = true;
|
||||
$shortcodes = array(
|
||||
@@ -278,10 +280,15 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
'[link:subscription_manage_url]',
|
||||
'[link:newsletter_view_in_browser_url]',
|
||||
);
|
||||
$links = array(
|
||||
SubscriptionUrl::getUnsubscribeUrl(false),
|
||||
SubscriptionUrl::getManageUrl(false),
|
||||
NewsletterUrl::getViewInBrowserUrl(null, $this->newsletter, false, false, true)
|
||||
);
|
||||
$result = $shortcodes_object->process($shortcodes);
|
||||
// hash is returned
|
||||
foreach($result as $index => $transformed_shortcode) {
|
||||
expect($transformed_shortcode)->equals('#');
|
||||
expect($transformed_shortcode)->equals($links[$index]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -365,4 +372,4 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
wp_delete_user($this->WP_user->ID);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -159,20 +159,6 @@ class ViewInBrowserTest extends \MailPoetTest {
|
||||
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 = $this->view_in_browser->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 testRemovesOpenTrackingTagWhenPreviewIsEnabledAndNewsletterWasSent() {
|
||||
$queue = $this->queue;
|
||||
$queue->newsletter_rendered_body = $this->queue_rendered_newsletter_with_tracking;
|
||||
@@ -193,4 +179,4 @@ class ViewInBrowserTest extends \MailPoetTest {
|
||||
\ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
|
||||
\ORM::raw_execute('TRUNCATE ' . SendingQueue::$_table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user