Inject LinkTokens dependency to SubscriptionUrlFactory using DI
[MAILPOET-2381]
This commit is contained in:
committed by
Jack Kitterhing
parent
0dd7b5fb7a
commit
4d3a005b20
@ -49,7 +49,7 @@ class ConfirmationEmailMailer {
|
||||
$this->mailerMetaInfo = new MetaInfo;
|
||||
|
||||
if ($subscription_url_factory === null) {
|
||||
$subscription_url_factory = new SubscriptionUrlFactory($this->wp, $this->settings);
|
||||
$subscription_url_factory = SubscriptionUrlFactory::getInstance();
|
||||
}
|
||||
$this->subscription_url_factory = $subscription_url_factory;
|
||||
}
|
||||
|
@ -20,9 +20,13 @@ class SubscriptionUrlFactory {
|
||||
/** @var SettingsController */
|
||||
private $settings;
|
||||
|
||||
public function __construct(WPFunctions $wp, SettingsController $settings) {
|
||||
/** @var LinkTokens */
|
||||
private $link_tokens;
|
||||
|
||||
public function __construct(WPFunctions $wp, SettingsController $settings, LinkTokens $link_tokens) {
|
||||
$this->wp = $wp;
|
||||
$this->settings = $settings;
|
||||
$this->link_tokens = $link_tokens;
|
||||
}
|
||||
|
||||
function getCaptchaUrl() {
|
||||
@ -59,10 +63,9 @@ class SubscriptionUrlFactory {
|
||||
if ($post === null || $action === null) return;
|
||||
|
||||
$url = $this->wp->getPermalink($post);
|
||||
$link_tokens = new LinkTokens;
|
||||
if ($subscriber !== null) {
|
||||
$data = [
|
||||
'token' => $link_tokens->getToken($subscriber),
|
||||
'token' => $this->link_tokens->getToken($subscriber),
|
||||
'email' => $subscriber->email,
|
||||
];
|
||||
} elseif (is_null($data)) {
|
||||
@ -94,7 +97,7 @@ class SubscriptionUrlFactory {
|
||||
*/
|
||||
static function getInstance() {
|
||||
if (!self::$instance instanceof SubscriptionUrlFactory) {
|
||||
self::$instance = new SubscriptionUrlFactory(new WPFunctions, new SettingsController);
|
||||
self::$instance = new SubscriptionUrlFactory(new WPFunctions, new SettingsController, new LinkTokens);
|
||||
}
|
||||
return self::$instance;
|
||||
}
|
||||
|
@ -24,6 +24,7 @@ use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Segments\SubscribersListings;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Subscribers\ConfirmationEmailMailer;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Subscribers\RequiredCustomFieldValidator;
|
||||
use MailPoet\Subscribers\Source;
|
||||
use MailPoet\Subscribers\SubscriberActions;
|
||||
@ -66,7 +67,7 @@ class SubscribersTest extends \MailPoetTest {
|
||||
$settings,
|
||||
$this->captcha_session,
|
||||
$container->get(ConfirmationEmailMailer::class),
|
||||
new SubscriptionUrlFactory($wp, $settings)
|
||||
new SubscriptionUrlFactory($wp, $settings, new LinkTokens)
|
||||
);
|
||||
$obfuscator = new FieldNameObfuscator();
|
||||
$this->obfuscatedEmail = $obfuscator->obfuscate('email');
|
||||
|
@ -13,6 +13,7 @@ use MailPoet\Newsletter\Shortcodes\Categories\Date;
|
||||
use MailPoet\Newsletter\Url as NewsletterUrl;
|
||||
use MailPoet\Referrals\ReferralDetector;
|
||||
use MailPoet\Settings\SettingsController;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Subscription\Captcha;
|
||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||
use MailPoet\WooCommerce\TransactionalEmails;
|
||||
@ -46,7 +47,7 @@ class ShortcodesTest extends \MailPoetTest {
|
||||
$this->subscriber
|
||||
);
|
||||
$this->settings->set('tracking.enabled', false);
|
||||
$this->subscription_url_factory = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings);
|
||||
$this->subscription_url_factory = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings, new LinkTokens);
|
||||
}
|
||||
|
||||
function testItCanExtractShortcodes() {
|
||||
|
@ -5,6 +5,7 @@ use Codeception\Util\Stub;
|
||||
use MailPoet\Features\FeaturesController;
|
||||
use MailPoet\Referrals\ReferralDetector;
|
||||
use MailPoet\Router\Router;
|
||||
use MailPoet\Subscribers\LinkTokens;
|
||||
use MailPoet\Subscription\SubscriptionUrlFactory;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\Setting;
|
||||
@ -30,7 +31,7 @@ class UrlTest extends \MailPoetTest {
|
||||
$wc_transactional_emails = new TransactionalEmails(WPFunctions::get(), $this->settings);
|
||||
$populator = new Populator($this->settings, WPFunctions::get(), new Captcha, $referral_detector, $features_controller, $wc_transactional_emails);
|
||||
$populator->up();
|
||||
$this->url = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings);
|
||||
$this->url = new SubscriptionUrlFactory(WPFunctions::get(), $this->settings, new LinkTokens);
|
||||
}
|
||||
|
||||
function testItReturnsTheDefaultPageUrlIfNoPageIsSetInSettings() {
|
||||
|
Reference in New Issue
Block a user