diff --git a/lib/Newsletter/Shortcodes/Categories/Link.php b/lib/Newsletter/Shortcodes/Categories/Link.php
index 537eedef11..17afd1239a 100644
--- a/lib/Newsletter/Shortcodes/Categories/Link.php
+++ b/lib/Newsletter/Shortcodes/Categories/Link.php
@@ -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);
}
-}
\ No newline at end of file
+}
diff --git a/tests/unit/API/JSON/v1/NewslettersTest.php b/tests/unit/API/JSON/v1/NewslettersTest.php
index e9c7686821..5048671eb2 100644
--- a/tests/unit/API/JSON/v1/NewslettersTest.php
+++ b/tests/unit/API/JSON/v1/NewslettersTest.php
@@ -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);
}
-}
\ No newline at end of file
+}
diff --git a/tests/unit/Newsletter/ShortcodesTest.php b/tests/unit/Newsletter/ShortcodesTest.php
index b98bb8abf2..f0b2c8e22d 100644
--- a/tests/unit/Newsletter/ShortcodesTest.php
+++ b/tests/unit/Newsletter/ShortcodesTest.php
@@ -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);
}
-}
\ No newline at end of file
+}
diff --git a/tests/unit/Newsletter/ViewInBrowserTest.php b/tests/unit/Newsletter/ViewInBrowserTest.php
index 4bfcf98f46..880b0f9725 100644
--- a/tests/unit/Newsletter/ViewInBrowserTest.php
+++ b/tests/unit/Newsletter/ViewInBrowserTest.php
@@ -159,20 +159,6 @@ class ViewInBrowserTest extends \MailPoetTest {
expect($rendered_body)->contains('');
}
- 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('');
- }
-
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);
}
-}
\ No newline at end of file
+}