Remove public properties from renderer
[MAILPOET-2899]
This commit is contained in:
@ -297,6 +297,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Util\Url::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Util\Installation::class);
|
||||
$container->autowire(\MailPoet\Util\License\Features\Subscribers::class);
|
||||
$container->autowire(\MailPoet\Util\License\License::class);
|
||||
// WooCommerce
|
||||
$container->autowire(\MailPoet\WooCommerce\Helper::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\WooCommerce\Settings::class)->setPublic(true);
|
||||
|
@ -26,9 +26,9 @@ class Renderer {
|
||||
/** @var Bridge */
|
||||
private $bridge;
|
||||
|
||||
public $premiumActivated;
|
||||
public $mssActivated;
|
||||
private $template;
|
||||
/** @var License */
|
||||
private $license;
|
||||
|
||||
const NEWSLETTER_TEMPLATE = 'Template.html';
|
||||
const FILTER_POST_PROCESS = 'mailpoet_rendering_post_process';
|
||||
|
||||
@ -37,16 +37,15 @@ class Renderer {
|
||||
Columns\Renderer $columnsRenderer,
|
||||
Preprocessor $preprocessor,
|
||||
\MailPoetVendor\CSS $cSSInliner,
|
||||
Bridge $bridge
|
||||
Bridge $bridge,
|
||||
License $license
|
||||
) {
|
||||
$this->blocksRenderer = $blocksRenderer;
|
||||
$this->columnsRenderer = $columnsRenderer;
|
||||
$this->preprocessor = $preprocessor;
|
||||
$this->cSSInliner = $cSSInliner;
|
||||
$this->bridge = $bridge;
|
||||
$this->template = file_get_contents(dirname(__FILE__) . '/' . self::NEWSLETTER_TEMPLATE);
|
||||
$this->premiumActivated = License::getLicense();
|
||||
$this->mssActivated = $this->bridge->isMPSendingServiceEnabled();
|
||||
$this->license = $license;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -64,7 +63,11 @@ class Renderer {
|
||||
? $body['globalStyles']
|
||||
: [];
|
||||
|
||||
if (!$this->premiumActivated && !$this->mssActivated && !$preview) {
|
||||
if (
|
||||
!$this->license->hasLicense()
|
||||
&& !$this->bridge->isMailpoetSendingServiceEnabled()
|
||||
&& !$preview
|
||||
) {
|
||||
$content = $this->addMailpoetLogoContentBlock($content, $styles);
|
||||
}
|
||||
|
||||
@ -73,13 +76,16 @@ class Renderer {
|
||||
$renderedStyles = $this->renderStyles($styles);
|
||||
$customFontsLinks = StylesHelper::getCustomFontsLinks($styles);
|
||||
|
||||
$template = $this->injectContentIntoTemplate($this->template, [
|
||||
htmlspecialchars($newsletter['subject']),
|
||||
$renderedStyles,
|
||||
$customFontsLinks,
|
||||
EHelper::escapeHtmlText($newsletter['preheader']),
|
||||
$renderedBody,
|
||||
]);
|
||||
$template = $this->injectContentIntoTemplate(
|
||||
(string)file_get_contents(dirname(__FILE__) . '/' . self::NEWSLETTER_TEMPLATE),
|
||||
[
|
||||
htmlspecialchars($newsletter['subject']),
|
||||
$renderedStyles,
|
||||
$customFontsLinks,
|
||||
EHelper::escapeHtmlText($newsletter['preheader']),
|
||||
$renderedBody,
|
||||
]
|
||||
);
|
||||
if ($template === null) {
|
||||
$template = '';
|
||||
}
|
||||
|
@ -53,6 +53,16 @@ class Bridge {
|
||||
}
|
||||
}
|
||||
|
||||
public function isMailpoetSendingServiceEnabled() {
|
||||
try {
|
||||
$mailerConfig = SettingsController::getInstance()->get(Mailer::MAILER_CONFIG_SETTING_NAME);
|
||||
return !empty($mailerConfig['method'])
|
||||
&& $mailerConfig['method'] === Mailer::METHOD_MAILPOET;
|
||||
} catch (\Exception $e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static function isMSSKeySpecified() {
|
||||
$settings = SettingsController::getInstance();
|
||||
$key = $settings->get(self::API_KEY_SETTING_NAME);
|
||||
|
@ -13,4 +13,8 @@ class License {
|
||||
}
|
||||
return $license;
|
||||
}
|
||||
|
||||
public function hasLicense(): bool {
|
||||
return (bool)self::getLicense();
|
||||
}
|
||||
}
|
||||
|
@ -12,13 +12,25 @@ use MailPoet\Newsletter\Renderer\Blocks\Social;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\Spacer;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\Text;
|
||||
use MailPoet\Newsletter\Renderer\Columns\Renderer as ColumnRenderer;
|
||||
use MailPoet\Newsletter\Renderer\Preprocessor;
|
||||
use MailPoet\Newsletter\Renderer\Renderer;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Util\License\License;
|
||||
use PHPUnit\Framework\MockObject\MockObject;
|
||||
|
||||
class RendererTest extends \MailPoetTest {
|
||||
public $dOMParser;
|
||||
public $columnRenderer;
|
||||
|
||||
/** @var Renderer & MockObject */
|
||||
public $renderer;
|
||||
public $newsletter;
|
||||
|
||||
/** @var License & MockObject */
|
||||
private $license;
|
||||
|
||||
/** @var Bridge & MockObject */
|
||||
private $bridge;
|
||||
const COLUMN_BASE_WIDTH = 660;
|
||||
|
||||
public function _before() {
|
||||
@ -33,7 +45,16 @@ class RendererTest extends \MailPoetTest {
|
||||
'type' => 'standard',
|
||||
'status' => 'active',
|
||||
];
|
||||
$this->renderer = $this->diContainer->get(Renderer::class);
|
||||
$this->license = $this->createMock(License::class);
|
||||
$this->bridge = $this->createMock(Bridge::class);
|
||||
$this->renderer = new Renderer(
|
||||
$this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\Renderer::class),
|
||||
$this->diContainer->get(ColumnRenderer::class),
|
||||
$this->diContainer->get(Preprocessor::class),
|
||||
$this->diContainer->get(\MailPoetVendor\CSS::class),
|
||||
$this->bridge,
|
||||
$this->license
|
||||
);
|
||||
$this->columnRenderer = new ColumnRenderer();
|
||||
$this->dOMParser = new \pQuery();
|
||||
}
|
||||
@ -564,8 +585,8 @@ class RendererTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItDoesNotAddMailpoetLogoWhenPremiumIsActive() {
|
||||
$this->renderer->mssActivated = false;
|
||||
$this->renderer->premiumActivated = true;
|
||||
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false);
|
||||
$this->license->method('hasLicense')->willReturn(true);
|
||||
|
||||
$this->newsletter['body'] = json_decode(Fixtures::get('newsletter_body_template'), true);
|
||||
$template = $this->renderer->render($this->newsletter, false);
|
||||
@ -573,8 +594,8 @@ class RendererTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItDoesNotAddMailpoetLogoWhenMSSIsActive() {
|
||||
$this->renderer->premiumActivated = false;
|
||||
$this->renderer->mssActivated = true;
|
||||
$this->license->method('hasLicense')->willReturn(false);
|
||||
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(true);
|
||||
|
||||
$this->newsletter['body'] = json_decode(Fixtures::get('newsletter_body_template'), true);
|
||||
$template = $this->renderer->render($this->newsletter, false);
|
||||
@ -582,8 +603,8 @@ class RendererTest extends \MailPoetTest {
|
||||
}
|
||||
|
||||
public function testItDoesNotAddMailpoetLogoWhenPreviewIsEnabled() {
|
||||
$this->renderer->mssActivated = false;
|
||||
$this->renderer->premiumActivated = false;
|
||||
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false);
|
||||
$this->license->method('hasLicense')->willReturn(false);
|
||||
|
||||
$this->newsletter['body'] = json_decode(Fixtures::get('newsletter_body_template'), true);
|
||||
$template = $this->renderer->render($this->newsletter, true);
|
||||
@ -592,8 +613,8 @@ class RendererTest extends \MailPoetTest {
|
||||
|
||||
public function testItAddsMailpoetLogo() {
|
||||
$this->renderer->newsletter['body'] = json_decode(Fixtures::get('newsletter_body_template'), true);
|
||||
$this->renderer->mssActivated = false;
|
||||
$this->renderer->premiumActivated = false;
|
||||
$this->bridge->method('isMailpoetSendingServiceEnabled')->willReturn(false);
|
||||
$this->license->method('hasLicense')->willReturn(false);
|
||||
|
||||
$template = $this->renderer->render($this->newsletter, false);
|
||||
expect($template['html'])->contains('mailpoet_logo_newsletter.png');
|
||||
|
@ -8,6 +8,7 @@ use MailPoet\Newsletter\Editor\LayoutHelper as L;
|
||||
use MailPoet\Newsletter\Renderer\Preprocessor;
|
||||
use MailPoet\Newsletter\Renderer\Renderer as NewsletterRenderer;
|
||||
use MailPoet\Services\Bridge;
|
||||
use MailPoet\Util\License\License;
|
||||
use MailPoetVendor\csstidy;
|
||||
|
||||
class RendererTest extends \MailPoetTest {
|
||||
@ -53,7 +54,8 @@ class RendererTest extends \MailPoetTest {
|
||||
)
|
||||
),
|
||||
$this->diContainer->get(\MailPoetVendor\CSS::class),
|
||||
$this->diContainer->get(Bridge::class)
|
||||
$this->diContainer->get(Bridge::class),
|
||||
$this->diContainer->get(License::class)
|
||||
);
|
||||
|
||||
$renderer = new Renderer(new csstidy, $newsletterRenderer);
|
||||
@ -82,7 +84,8 @@ class RendererTest extends \MailPoetTest {
|
||||
)
|
||||
),
|
||||
$this->diContainer->get(\MailPoetVendor\CSS::class),
|
||||
$this->diContainer->get(Bridge::class)
|
||||
$this->diContainer->get(Bridge::class),
|
||||
$this->diContainer->get(License::class)
|
||||
);
|
||||
$renderer = new Renderer(new csstidy, $newsletterRenderer);
|
||||
$renderer->render($this->newsletter);
|
||||
|
Reference in New Issue
Block a user