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