Merge StylesController to SettingsController
[MAILPOET-5591]
This commit is contained in:
@@ -344,7 +344,6 @@ class ContainerConfigurator implements IContainerConfigurator {
|
|||||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\BlocksRegistry::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\BlocksRegistry::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\PreprocessManager::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\PreprocessManager::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\EmailEditor\Engine\StylesController::class)->setPublic(true);
|
|
||||||
$container->autowire(\MailPoet\EmailEditor\Integrations\Core\Initializer::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Integrations\Core\Initializer::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor::class)->setPublic(true);
|
||||||
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailApiController::class)->setPublic(true);
|
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailApiController::class)->setPublic(true);
|
||||||
|
@@ -5,13 +5,13 @@ namespace MailPoet\EmailEditor\Engine;
|
|||||||
use MailPoet\Validator\Builder;
|
use MailPoet\Validator\Builder;
|
||||||
|
|
||||||
class EmailApiController {
|
class EmailApiController {
|
||||||
/** @var StylesController */
|
/** @var SettingsController */
|
||||||
private $stylesController;
|
private $settingsController;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
StylesController $stylesController
|
SettingsController $settingsController
|
||||||
) {
|
) {
|
||||||
$this->stylesController = $stylesController;
|
$this->settingsController = $settingsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -19,7 +19,7 @@ class EmailApiController {
|
|||||||
*/
|
*/
|
||||||
public function getEmailData(): array {
|
public function getEmailData(): array {
|
||||||
return [
|
return [
|
||||||
'layout_styles' => $this->stylesController->getEmailLayoutStyles(),
|
'layout_styles' => $this->settingsController->getEmailLayoutStyles(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
interface BlockRenderer {
|
interface BlockRenderer {
|
||||||
public function render(array $parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string;
|
public function render(array $parsedBlock, BlocksRenderer $blocksRenderer, SettingsController $settingsController): string;
|
||||||
}
|
}
|
||||||
|
@@ -2,25 +2,25 @@
|
|||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class BlocksRenderer {
|
class BlocksRenderer {
|
||||||
|
|
||||||
/** @var BlocksRegistry */
|
/** @var BlocksRegistry */
|
||||||
private $blockRenderersRegistry;
|
private $blockRenderersRegistry;
|
||||||
|
|
||||||
/** @var StylesController */
|
/** @var SettingsController */
|
||||||
private $stylesController;
|
private $settingsController;
|
||||||
|
|
||||||
/** @var bool */
|
/** @var bool */
|
||||||
private $blocksInitialized = false;
|
private $blocksInitialized = false;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
BlocksRegistry $blockRenderersRegistry,
|
BlocksRegistry $blockRenderersRegistry,
|
||||||
StylesController $stylesController
|
SettingsController $settingsController
|
||||||
) {
|
) {
|
||||||
$this->blockRenderersRegistry = $blockRenderersRegistry;
|
$this->blockRenderersRegistry = $blockRenderersRegistry;
|
||||||
$this->stylesController = $stylesController;
|
$this->settingsController = $settingsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $parsedBlocks): string {
|
public function render(array $parsedBlocks): string {
|
||||||
@@ -35,7 +35,7 @@ class BlocksRenderer {
|
|||||||
if (!$blockRenderer) {
|
if (!$blockRenderer) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
$content .= $blockRenderer->render($parsedBlock, $this, $this->stylesController);
|
$content .= $blockRenderer->render($parsedBlock, $this, $this->settingsController);
|
||||||
}
|
}
|
||||||
return $content;
|
return $content;
|
||||||
}
|
}
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
use MailPoet\Util\pQuery\DomNode;
|
use MailPoet\Util\pQuery\DomNode;
|
||||||
use MailPoetVendor\Html2Text\Html2Text;
|
use MailPoetVendor\Html2Text\Html2Text;
|
||||||
|
|
||||||
@@ -17,8 +17,8 @@ class Renderer {
|
|||||||
/** @var PreprocessManager */
|
/** @var PreprocessManager */
|
||||||
private $preprocessManager;
|
private $preprocessManager;
|
||||||
|
|
||||||
/** @var StylesController */
|
/** @var SettingsController */
|
||||||
private $stylesController;
|
private $settingsController;
|
||||||
|
|
||||||
const TEMPLATE_FILE = 'template.html';
|
const TEMPLATE_FILE = 'template.html';
|
||||||
const TEMPLATE_STYLES_FILE = 'styles.css';
|
const TEMPLATE_STYLES_FILE = 'styles.css';
|
||||||
@@ -30,19 +30,19 @@ class Renderer {
|
|||||||
\MailPoetVendor\CSS $cssInliner,
|
\MailPoetVendor\CSS $cssInliner,
|
||||||
PreprocessManager $preprocessManager,
|
PreprocessManager $preprocessManager,
|
||||||
BlocksRenderer $blocksRenderer,
|
BlocksRenderer $blocksRenderer,
|
||||||
StylesController $stylesController
|
SettingsController $settingsController
|
||||||
) {
|
) {
|
||||||
$this->cssInliner = $cssInliner;
|
$this->cssInliner = $cssInliner;
|
||||||
$this->preprocessManager = $preprocessManager;
|
$this->preprocessManager = $preprocessManager;
|
||||||
$this->blocksRenderer = $blocksRenderer;
|
$this->blocksRenderer = $blocksRenderer;
|
||||||
$this->stylesController = $stylesController;
|
$this->settingsController = $settingsController;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(\WP_Post $post, string $subject, string $preHeader, string $language, $metaRobots = ''): array {
|
public function render(\WP_Post $post, string $subject, string $preHeader, string $language, $metaRobots = ''): array {
|
||||||
$parser = new \WP_Block_Parser();
|
$parser = new \WP_Block_Parser();
|
||||||
$parsedBlocks = $parser->parse($post->post_content); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
$parsedBlocks = $parser->parse($post->post_content); // phpcs:ignore Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
|
||||||
|
|
||||||
$layoutStyles = $this->stylesController->getEmailLayoutStyles();
|
$layoutStyles = $this->settingsController->getEmailLayoutStyles();
|
||||||
$parsedBlocks = $this->preprocessManager->preprocess($parsedBlocks, $layoutStyles);
|
$parsedBlocks = $this->preprocessManager->preprocess($parsedBlocks, $layoutStyles);
|
||||||
$renderedBody = $this->blocksRenderer->render($parsedBlocks);
|
$renderedBody = $this->blocksRenderer->render($parsedBlocks);
|
||||||
|
|
||||||
|
@@ -28,14 +28,66 @@ class SettingsController {
|
|||||||
],
|
],
|
||||||
];
|
];
|
||||||
|
|
||||||
/** @var StylesController */
|
/**
|
||||||
private $stylesController;
|
* Width of the email in pixels.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const EMAIL_WIDTH = '660px';
|
||||||
|
|
||||||
public function __construct(
|
/**
|
||||||
StylesController $stylesController
|
* Width of the email in pixels.
|
||||||
) {
|
* @var string
|
||||||
$this->stylesController = $stylesController;
|
*/
|
||||||
}
|
const EMAIL_BACKGROUND = '#cccccc';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Padding of the email in pixels.
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const EMAIL_PADDING = '10px';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Default styles applied to the email. These are going to be replaced by style settings.
|
||||||
|
* This is currently more af a proof of concept that we can apply styles to the email.
|
||||||
|
* We will gradually replace these hardcoded values with styles saved as global styles or styles saved with the email.
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
const DEFAULT_EMAIL_CONTENT_STYLES = [
|
||||||
|
'typography' => [
|
||||||
|
'fontFamily' => "Arial, 'Helvetica Neue', Helvetica, sans-serif",
|
||||||
|
'fontSize' => '16px',
|
||||||
|
],
|
||||||
|
'h1' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '32px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'h2' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '24px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'h3' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '18px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'h4' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '16px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'h5' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '14px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
'h6' => [
|
||||||
|
'typography' => [
|
||||||
|
'fontSize' => '12px',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
public function getSettings(): array {
|
public function getSettings(): array {
|
||||||
$coreDefaultSettings = get_default_block_editor_settings();
|
$coreDefaultSettings = get_default_block_editor_settings();
|
||||||
@@ -48,9 +100,29 @@ class SettingsController {
|
|||||||
|
|
||||||
$settings = array_merge($coreDefaultSettings, self::DEFAULT_SETTINGS);
|
$settings = array_merge($coreDefaultSettings, self::DEFAULT_SETTINGS);
|
||||||
$settings['allowedBlockTypes'] = self::ALLOWED_BLOCK_TYPES;
|
$settings['allowedBlockTypes'] = self::ALLOWED_BLOCK_TYPES;
|
||||||
$settings['defaultEditorStyles'] = [[ 'css' => $this->stylesController->getEmailContentStyles() ]];
|
$settings['defaultEditorStyles'] = [[ 'css' => $this->getEmailContentStyles() ]];
|
||||||
$settings['__experimentalFeatures'] = $coreSettings;
|
$settings['__experimentalFeatures'] = $coreSettings;
|
||||||
|
|
||||||
return $settings;
|
return $settings;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getEmailContentStyles(): array {
|
||||||
|
return self::DEFAULT_EMAIL_CONTENT_STYLES;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{width: string, background: string, padding: array{bottom: string, left: string, right: string, top: string}}
|
||||||
|
*/
|
||||||
|
public function getEmailLayoutStyles(): array {
|
||||||
|
return [
|
||||||
|
'width' => self::EMAIL_WIDTH,
|
||||||
|
'background' => self::EMAIL_BACKGROUND,
|
||||||
|
'padding' => [
|
||||||
|
'bottom' => self::EMAIL_PADDING,
|
||||||
|
'left' => self::EMAIL_PADDING,
|
||||||
|
'right' => self::EMAIL_PADDING,
|
||||||
|
'top' => self::EMAIL_PADDING,
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,86 +0,0 @@
|
|||||||
<?php declare(strict_types = 1);
|
|
||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine;
|
|
||||||
|
|
||||||
class StylesController {
|
|
||||||
/**
|
|
||||||
* Width of the email in pixels.
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const EMAIL_WIDTH = '660px';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Width of the email in pixels.
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const EMAIL_BACKGROUND = '#cccccc';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Padding of the email in pixels.
|
|
||||||
* @var string
|
|
||||||
*/
|
|
||||||
const EMAIL_PADDING = '10px';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Default styles applied to the email. These are going to be replaced by style settings.
|
|
||||||
* This is currently more af a proof of concept that we can apply styles to the email.
|
|
||||||
* We will gradually replace these hardcoded values with styles saved as global styles or styles saved with the email.
|
|
||||||
* @var array
|
|
||||||
*/
|
|
||||||
const DEFAULT_EMAIL_CONTENT_STYLES = [
|
|
||||||
'typography' => [
|
|
||||||
'fontFamily' => "Arial, 'Helvetica Neue', Helvetica, sans-serif",
|
|
||||||
'fontSize' => '16px',
|
|
||||||
],
|
|
||||||
'h1' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '32px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'h2' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '24px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'h3' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '18px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'h4' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '16px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'h5' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '14px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
'h6' => [
|
|
||||||
'typography' => [
|
|
||||||
'fontSize' => '12px',
|
|
||||||
],
|
|
||||||
],
|
|
||||||
];
|
|
||||||
|
|
||||||
public function getEmailContentStyles(): array {
|
|
||||||
return self::DEFAULT_EMAIL_CONTENT_STYLES;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @return array{width: string, background: string, padding: array{bottom: string, left: string, right: string, top: string}}
|
|
||||||
*/
|
|
||||||
public function getEmailLayoutStyles(): array {
|
|
||||||
return [
|
|
||||||
'width' => self::EMAIL_WIDTH,
|
|
||||||
'background' => self::EMAIL_BACKGROUND,
|
|
||||||
'padding' => [
|
|
||||||
'bottom' => self::EMAIL_PADDING,
|
|
||||||
'left' => self::EMAIL_PADDING,
|
|
||||||
'right' => self::EMAIL_PADDING,
|
|
||||||
'top' => self::EMAIL_PADDING,
|
|
||||||
],
|
|
||||||
];
|
|
||||||
}
|
|
||||||
}
|
|
@@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
|
|||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class Column implements BlockRenderer {
|
class Column implements BlockRenderer {
|
||||||
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
||||||
|
@@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
|
|||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class Columns implements BlockRenderer {
|
class Columns implements BlockRenderer {
|
||||||
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
||||||
|
@@ -4,10 +4,10 @@ namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
|
|||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class Heading implements BlockRenderer {
|
class Heading implements BlockRenderer {
|
||||||
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
public function render($parsedBlock, BlocksRenderer $blocksRenderer, SettingsController $settingsController): string {
|
||||||
return $parsedBlock['innerHTML'] ?? '';
|
return $parsedBlock['innerHTML'] ?? '';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
|
|||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlockRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class Paragraph implements BlockRenderer {
|
class Paragraph implements BlockRenderer {
|
||||||
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
require_once __DIR__ . '/DummyBlockRenderer.php';
|
require_once __DIR__ . '/DummyBlockRenderer.php';
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ class BlocksRendererTest extends \MailPoetTest {
|
|||||||
private function getBlocksRenderer() {
|
private function getBlocksRenderer() {
|
||||||
return new BlocksRenderer(
|
return new BlocksRenderer(
|
||||||
new BlocksRegistry(),
|
new BlocksRegistry(),
|
||||||
new StylesController()
|
new SettingsController()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,10 +2,10 @@
|
|||||||
|
|
||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class DummyBlockRenderer implements BlockRenderer {
|
class DummyBlockRenderer implements BlockRenderer {
|
||||||
public function render($parsedBlock, BlocksRenderer $blocksRenderer, StylesController $stylesController): string {
|
public function render($parsedBlock, BlocksRenderer $blocksRenderer, SettingsController $settingsController): string {
|
||||||
if (!isset($parsedBlock['innerBlocks']) || empty($parsedBlock['innerBlocks'])) {
|
if (!isset($parsedBlock['innerBlocks']) || empty($parsedBlock['innerBlocks'])) {
|
||||||
return $parsedBlock['innerHTML'];
|
return $parsedBlock['innerHTML'];
|
||||||
}
|
}
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
namespace MailPoet\EmailEditor\Engine\Renderer;
|
namespace MailPoet\EmailEditor\Engine\Renderer;
|
||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\EmailEditor;
|
use MailPoet\EmailEditor\Engine\EmailEditor;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
require_once __DIR__ . '/DummyBlockRenderer.php';
|
require_once __DIR__ . '/DummyBlockRenderer.php';
|
||||||
|
|
||||||
@@ -76,8 +76,8 @@ class RendererTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItAppliesLayoutStyles() {
|
public function testItAppliesLayoutStyles() {
|
||||||
$stylesControllerMock = $this->createMock(StylesController::class);
|
$settingsControllerMock = $this->createMock(SettingsController::class);
|
||||||
$stylesControllerMock->method('getEmailLayoutStyles')->willReturn([
|
$settingsControllerMock->method('getEmailLayoutStyles')->willReturn([
|
||||||
'width' => 123,
|
'width' => 123,
|
||||||
'background' => '#123456',
|
'background' => '#123456',
|
||||||
'padding' => [
|
'padding' => [
|
||||||
@@ -88,7 +88,7 @@ class RendererTest extends \MailPoetTest {
|
|||||||
],
|
],
|
||||||
]);
|
]);
|
||||||
$renderer = $this->getServiceWithOverrides(Renderer::class, [
|
$renderer = $this->getServiceWithOverrides(Renderer::class, [
|
||||||
'stylesController' => $stylesControllerMock,
|
'stylesController' => $settingsControllerMock,
|
||||||
]);
|
]);
|
||||||
$rendered = $renderer->render($this->emailPost, 'Subject', '', 'en');
|
$rendered = $renderer->render($this->emailPost, 'Subject', '', 'en');
|
||||||
$doc = new \DOMDocument();
|
$doc = new \DOMDocument();
|
||||||
|
@@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
|
|||||||
|
|
||||||
use MailPoet\EmailEditor\Engine\EmailEditor;
|
use MailPoet\EmailEditor\Engine\EmailEditor;
|
||||||
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
use MailPoet\EmailEditor\Engine\Renderer\BlocksRenderer;
|
||||||
use MailPoet\EmailEditor\Engine\StylesController;
|
use MailPoet\EmailEditor\Engine\SettingsController;
|
||||||
|
|
||||||
class ColumnsTest extends \MailPoetTest {
|
class ColumnsTest extends \MailPoetTest {
|
||||||
/** @var BlocksRenderer */
|
/** @var BlocksRenderer */
|
||||||
@@ -49,26 +49,26 @@ class ColumnsTest extends \MailPoetTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function testItRendersInnerColumn() {
|
public function testItRendersInnerColumn() {
|
||||||
$stylesController = $this->diContainer->get(StylesController::class);
|
$settingsController = $this->diContainer->get(SettingsController::class);
|
||||||
$rendered = $this->columnsRenderer->render($this->parsedColumns, $this->blocksRenderer, $stylesController);
|
$rendered = $this->columnsRenderer->render($this->parsedColumns, $this->blocksRenderer, $settingsController);
|
||||||
verify($rendered)->stringContainsString('Column 1');
|
verify($rendered)->stringContainsString('Column 1');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItRendersWidthForOneColumn() {
|
public function testItRendersWidthForOneColumn() {
|
||||||
$stylesController = $this->createMock(StylesController::class);
|
$settingsController = $this->createMock(SettingsController::class);
|
||||||
$stylesController->method('getEmailLayoutStyles')
|
$settingsController->method('getEmailLayoutStyles')
|
||||||
->willReturn(['width' => 800]);
|
->willReturn(['width' => 800]);
|
||||||
$rendered = $this->columnsRenderer->render($this->parsedColumns, $this->blocksRenderer, $stylesController);
|
$rendered = $this->columnsRenderer->render($this->parsedColumns, $this->blocksRenderer, $settingsController);
|
||||||
verify($rendered)->stringContainsString('width:784px;');
|
verify($rendered)->stringContainsString('width:784px;');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItRendersWidthForTwoColumns() {
|
public function testItRendersWidthForTwoColumns() {
|
||||||
$stylesController = $this->createMock(StylesController::class);
|
$settingsController = $this->createMock(SettingsController::class);
|
||||||
$stylesController->method('getEmailLayoutStyles')
|
$settingsController->method('getEmailLayoutStyles')
|
||||||
->willReturn(['width' => 800]);
|
->willReturn(['width' => 800]);
|
||||||
$parsedColumns = $this->parsedColumns;
|
$parsedColumns = $this->parsedColumns;
|
||||||
$parsedColumns['innerBlocks'][] = $parsedColumns['innerBlocks'][0]; // Insert another column
|
$parsedColumns['innerBlocks'][] = $parsedColumns['innerBlocks'][0]; // Insert another column
|
||||||
$rendered = $this->columnsRenderer->render($parsedColumns, $this->blocksRenderer, $stylesController);
|
$rendered = $this->columnsRenderer->render($parsedColumns, $this->blocksRenderer, $settingsController);
|
||||||
verify($rendered)->stringContainsString('width:392px;');
|
verify($rendered)->stringContainsString('width:392px;');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user