Enabling links on header and footer on preview

This commit is contained in:
Amine Ben hammou
2017-10-11 10:28:10 +00:00
parent 0f6619e25d
commit 19e67ea2b0
4 changed files with 30 additions and 34 deletions

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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);
}
}
}