Uses Helper's replaceLinkTags method to replace activation link in

subscription confirmation email
This commit is contained in:
Vlad
2017-07-08 11:58:02 -04:00
parent cfc5f5a88d
commit 77ed4d34e8
2 changed files with 48 additions and 10 deletions

View File

@@ -104,16 +104,11 @@ class Subscriber extends Model {
);
// replace activation link
$body = str_replace(
array(
'[activation_link]',
'[/activation_link]'
),
array(
'<a href="'.esc_attr(Subscription\Url::getConfirmationUrl($this)).'">',
'</a>'
),
$body
$body = Helpers::replaceLinkTags(
$body,
Subscription\Url::getConfirmationUrl($this),
array('target' => '_blank'),
'activation_link'
);
// build email data

View File

@@ -1,5 +1,6 @@
<?php
use AspectMock\Test as Mock;
use Carbon\Carbon;
use Codeception\Util\Fixtures;
use MailPoet\Models\CustomField;
@@ -1047,6 +1048,48 @@ class SubscriberTest extends MailPoetTest {
);
}
function testItSendsConfirmationEmail() {
Mock::double('MailPoet\Mailer\Mailer', [
'__construct' => null,
'send' => function($email) {
return $email;
}
]);
Mock::double('MailPoet\Subscription\Url', [
'getConfirmationUrl' => 'http://example.com'
]);
$segment = Segment::createOrUpdate(
array(
'name' => 'Test segment'
)
);
SubscriberSegment::subscribeToSegments(
$this->subscriber,
array($segment->id)
);
$result = $this->subscriber->sendConfirmationEmail();
// email contains subscriber's lists
expect($result['body']['html'])->contains('<strong>Test segment</strong>');
// email contains activation link
expect($result['body']['html'])->contains('<a target="_blank" href="http://example.com">Click here to confirm your subscription.</a>');
}
function testItSetsErrorsWhenConfirmationEmailCannotBeSent() {
Mock::double('MailPoet\Mailer\Mailer', [
'__construct' => null,
'send' => function() {
throw new \Exception('send error');
}
]);
$this->subscriber->sendConfirmationEmail();
// error is set on the subscriber model object
expect($this->subscriber->getErrors()[0])->equals('send error');
}
function _after() {
ORM::raw_execute('TRUNCATE ' . Subscriber::$_table);
ORM::raw_execute('TRUNCATE ' . Segment::$_table);