Rename files in email editor package by WP Coding Standard

[MAILPOET-6240]
This commit is contained in:
Jan Lysý
2024-11-07 11:45:02 +01:00
committed by Jan Lysý
parent 46fb372008
commit b6103b4581
90 changed files with 473 additions and 472 deletions

View File

@ -42,7 +42,8 @@
"autoload": {
"classmap": [
"lib-3rd-party",
"vendor-prefixed"
"vendor-prefixed",
"vendor/mailpoet/email-editor/src"
],
"files": [
"lib/exceptions.php",

View File

@ -6,8 +6,8 @@ use MailPoet\API\JSON\API;
use MailPoet\Config\Env;
use MailPoet\Config\Installer;
use MailPoet\Config\ServicesChecker;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as EditorInitController;
use MailPoet\Newsletter\NewslettersRepository;
use MailPoet\Settings\SettingsController as MailPoetSettings;
@ -18,9 +18,9 @@ use MailPoet\WP\Functions as WPFunctions;
class EmailEditor {
private WPFunctions $wp;
private SettingsController $settingsController;
private Settings_Controller $settingsController;
private ThemeController $themeController;
private Theme_Controller $themeController;
private CdnAssetUrl $cdnAssetUrl;
@ -34,11 +34,11 @@ class EmailEditor {
public function __construct(
WPFunctions $wp,
SettingsController $settingsController,
Settings_Controller $settingsController,
CdnAssetUrl $cdnAssetUrl,
ServicesChecker $servicesChecker,
SubscribersFeature $subscribersFeature,
ThemeController $themeController,
Theme_Controller $themeController,
MailPoetSettings $mailpoetSettings,
NewslettersRepository $newslettersRepository
) {

View File

@ -11,7 +11,7 @@ use MailPoet\Automation\Integrations\MailPoet\MailPoetIntegration;
use MailPoet\Automation\Integrations\WooCommerce\WooCommerceIntegration;
use MailPoet\Cron\CronTrigger;
use MailPoet\Cron\DaemonActionSchedulerRunner;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Integrations\Core\Initializer as CoreEmailEditorIntegration;
use MailPoet\EmailEditor\Integrations\MailPoet\Blocks\BlockTypesController;
use MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor as MailpoetEmailEditorIntegration;
@ -120,7 +120,7 @@ class Initializer {
/** @var DaemonActionSchedulerRunner */
private $actionSchedulerRunner;
/** @var EmailEditor */
/** @var Email_Editor */
private $emailEditor;
/** @var MailpoetEmailEditorIntegration */
@ -171,7 +171,7 @@ class Initializer {
WooCommerceIntegration $woocommerceIntegration,
PersonalDataExporters $personalDataExporters,
DaemonActionSchedulerRunner $actionSchedulerRunner,
EmailEditor $emailEditor,
Email_Editor $emailEditor,
BlockTypesController $blockTypesController,
MailpoetEmailEditorIntegration $mailpoetEmailEditorIntegration,
CoreEmailEditorIntegration $coreEmailEditorIntegration,

View File

@ -337,27 +337,27 @@ class ContainerConfigurator implements IContainerConfigurator {
$container->autowire(\MailPoet\CustomFields\ApiDataSanitizer::class);
$container->autowire(\MailPoet\CustomFields\CustomFieldsRepository::class)->setPublic(true);
// Email Editor
$container->autowire(\MailPoet\EmailEditor\Utils\CdnAssetUrl::class)
$container->autowire(\MailPoet\EmailEditor\Utils\Cdn_Asset_Url::class)
->setPublic(true)
->setFactory([__CLASS__, 'getEmailEditorCdnAssetsUrl']);
$container->autowire(\MailPoet\EmailEditor\Engine\EmailEditor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\EmailApiController::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\SettingsController::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\ThemeController::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\HighlightingPostprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\VariablesPostprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\BlocksWidthPreprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\CleanupPreprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\SpacingPreprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\TypographyPreprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Email_Editor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Email_Api_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Settings_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Theme_Controller::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Blocks_Width_Preprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Cleanup_Preprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Spacing_Preprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typography_Preprocessor::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\Renderer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Templates::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Utils::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\TemplatePreview::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Templates\Template_Preview::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Patterns\Patterns::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ContentRenderer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlocksRegistry::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ProcessManager::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Integrations\Core\Initializer::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\Cli::class)->setPublic(true);
$container->autowire(\MailPoet\EmailEditor\Integrations\MailPoet\EmailEditor::class)->setPublic(true);
@ -689,7 +689,7 @@ class ContainerConfigurator implements IContainerConfigurator {
return new \MailPoet\Util\CdnAssetUrl((string)Env::$baseUrl);
}
public static function getEmailEditorCdnAssetsUrl(): \MailPoet\EmailEditor\Utils\CdnAssetUrl {
return new \MailPoet\EmailEditor\Utils\CdnAssetUrl((string)Env::$baseUrl);
public static function getEmailEditorCdnAssetsUrl(): \MailPoet\EmailEditor\Utils\Cdn_Asset_Url {
return new \MailPoet\EmailEditor\Utils\Cdn_Asset_Url((string)Env::$baseUrl);
}
}

View File

@ -21,7 +21,7 @@ class EmailEditorTest extends \MailPoetTest {
public function testItRegistersMailPoetEmailPostType() {
$this->emailEditor->initialize();
$this->diContainer->get(\MailPoet\EmailEditor\Engine\EmailEditor::class)->initialize();
$this->diContainer->get(\MailPoet\EmailEditor\Engine\Email_Editor::class)->initialize();
$postTypes = get_post_types();
$this->assertArrayHasKey('mailpoet_email', $postTypes);
}

View File

@ -3,14 +3,14 @@
"description": "Email editor based on WordPress Gutenberg package.",
"type": "library",
"autoload": {
"psr-4": {
"MailPoet\\EmailEditor\\": "src/"
}
"classmap": [
"src/"
]
},
"autoload-dev": {
"psr-4": {
"MailPoet\\EmailEditor\\": "tests/unit/"
}
"classmap": [
"tests/unit/"
]
},
"require": {
"php": ">=7.4"
@ -28,6 +28,7 @@
},
"scripts": {
"unit-test": "vendor/bin/codecept run unit",
"integration-test": "cd ../../../tests_env/docker && COMPOSE_HTTP_TIMEOUT=200 docker compose run -e SKIP_DEPS=1 -e SKIP_PLUGINS=1 -e PACKAGE_NAME=email-editor codeception_integration"
"integration-test": "cd ../../../tests_env/docker && COMPOSE_HTTP_TIMEOUT=200 docker compose run -e SKIP_DEPS=1 -e SKIP_PLUGINS=1 -e PACKAGE_NAME=email-editor codeception_integration",
"code-style": "../../../mailpoet/tasks/code_sniffer/vendor/bin/phpcs -ps --standard=WordPress src/"
}
}

View File

@ -2,9 +2,9 @@
namespace MailPoet\EmailEditor\Engine\Patterns\Library;
use MailPoet\EmailEditor\Utils\CdnAssetUrl;
use MailPoet\EmailEditor\Utils\Cdn_Asset_Url;
abstract class AbstractPattern {
abstract class Abstract_Pattern {
protected $cdnAssetUrl;
protected $blockTypes = [];
protected $templateTypes = [];
@ -14,7 +14,7 @@ abstract class AbstractPattern {
protected $viewportWidth = 620;
public function __construct(
CdnAssetUrl $cdnAssetUrl
Cdn_Asset_Url $cdnAssetUrl
) {
$this->cdnAssetUrl = $cdnAssetUrl;
}

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine\Patterns\Library;
class DefaultContentFull extends AbstractPattern {
class Default_Content_Full extends Abstract_Pattern {
protected $blockTypes = [
'core/post-content',
];

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine\Patterns\Library;
class DefaultContent extends AbstractPattern {
class Default_Content extends Abstract_Pattern {
protected $blockTypes = [
'core/post-content',
];
@ -11,7 +11,7 @@ class DefaultContent extends AbstractPattern {
'email-template',
];
protected function getContent(): string {
protected function getContent(): string
return '
<!-- wp:columns {"backgroundColor":"white","style":{"spacing":{"padding":{"top":"var:preset|spacing|20","bottom":"var:preset|spacing|20","left":"var:preset|spacing|20","right":"var:preset|spacing|20"}}}} -->
<div class="wp-block-columns has-white-background-color has-background" style="padding-top:var(--wp--preset--spacing--20);padding-right:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);padding-left:var(--wp--preset--spacing--20)"><!-- wp:column -->

View File

@ -2,14 +2,14 @@
namespace MailPoet\EmailEditor\Engine\Patterns;
use MailPoet\EmailEditor\Utils\CdnAssetUrl;
use MailPoet\EmailEditor\Utils\Cdn_Asset_Url;
class Patterns {
private $namespace = 'mailpoet';
protected $cdnAssetUrl;
public function __construct(
CdnAssetUrl $cdnAssetUrl
Cdn_Asset_Url $cdnAssetUrl
) {
$this->cdnAssetUrl = $cdnAssetUrl;
}
@ -30,8 +30,8 @@ class Patterns {
}
private function registerPatterns() {
$this->registerPattern('default', new Library\DefaultContent($this->cdnAssetUrl));
$this->registerPattern('default-full', new Library\DefaultContentFull($this->cdnAssetUrl));
$this->registerPattern('default', new Library\Default_Content($this->cdnAssetUrl));
$this->registerPattern('default-full', new Library\Default_Content_Full($this->cdnAssetUrl));
}
private function registerPattern($name, $pattern) {

View File

@ -2,13 +2,13 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
/**
* This class provides functionality to render inner blocks of a block that supports reduced flex layout.
*/
class FlexLayoutRenderer {
public function renderInnerBlocksInLayout(array $parsedBlock, SettingsController $settingsController): string {
class Flex_Layout_Renderer {
public function renderInnerBlocksInLayout(array $parsedBlock, Settings_Controller $settingsController): string {
$themeStyles = $settingsController->getEmailStyles();
$flexGap = $themeStyles['spacing']['blockGap'] ?? '0px';
$flexGapNumber = $settingsController->parseNumberFromStringWithPixels($flexGap);
@ -45,7 +45,7 @@ class FlexLayoutRenderer {
return $outputHtml;
}
private function computeWidthsForFlexLayout(array $parsedBlock, SettingsController $settingsController, float $flexGap): array {
private function computeWidthsForFlexLayout(array $parsedBlock, Settings_Controller $settingsController, float $flexGap): array {
// When there is no parent width we can't compute widths so auto width will be used
if (!isset($parsedBlock['email_attrs']['width'])) {
return $parsedBlock['innerBlocks'] ?? [];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors;
/**
* This postprocessor replaces <mark> tags with <span> tags because mark tags are not supported across all email clients
*/
class HighlightingPostprocessor implements Postprocessor {
class Highlighting_Postprocessor implements Postprocessor {
public function postprocess(string $html): string {
return str_replace(
['<mark', '</mark>'],

View File

@ -2,18 +2,18 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Theme_Controller;
/**
* In some case the blocks HTML contains CSS variables.
* For example when spacing is set from a preset the inline styles contain var(--wp--preset--spacing--10), var(--wp--preset--spacing--20) etc.
* This postprocessor uses variables from theme.json and replaces the CSS variables with their values in final email HTML.
*/
class VariablesPostprocessor implements Postprocessor {
private ThemeController $themeController;
class Variables_Postprocessor implements Postprocessor {
private Theme_Controller $themeController;
public function __construct(
ThemeController $themeController
Theme_Controller $themeController
) {
$this->themeController = $themeController;
}

View File

@ -6,7 +6,7 @@ namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors;
* This class sets the width of the blocks based on the layout width or column count.
* The final width in pixels is stored in the email_attrs array because we would like to avoid changing the original attributes.
*/
class BlocksWidthPreprocessor implements Preprocessor {
class Blocks_Width_Preprocessor implements Preprocessor {
public function preprocess(array $parsedBlocks, array $layout, array $styles): array {
foreach ($parsedBlocks as $key => $block) {
// Layout width is recalculated for each block because full-width blocks don't exclude padding

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors;
class CleanupPreprocessor implements Preprocessor {
class Cleanup_Preprocessor implements Preprocessor {
public function preprocess(array $parsedBlocks, array $layout, array $styles): array {
foreach ($parsedBlocks as $key => $block) {
// https://core.trac.wordpress.org/ticket/45312

View File

@ -6,7 +6,7 @@ namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors;
* This preprocessor is responsible for setting default spacing values for blocks.
* In the early development phase, we are setting only margin-top for blocks that are not first or last in the columns block.
*/
class SpacingPreprocessor implements Preprocessor {
class Spacing_Preprocessor implements Preprocessor {
public function preprocess(array $parsedBlocks, array $layout, array $styles): array {
$parsedBlocks = $this->addBlockGaps($parsedBlocks, $styles['spacing']['blockGap'] ?? '', null);
return $parsedBlocks;

View File

@ -2,9 +2,9 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class TypographyPreprocessor implements Preprocessor {
class Typography_Preprocessor implements Preprocessor {
/**
* List of styles that should be copied from parent to children.
* @var string[]
@ -15,11 +15,11 @@ class TypographyPreprocessor implements Preprocessor {
'text-decoration',
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function __construct(
SettingsController $settingsController
Settings_Controller $settingsController
) {
$this->settingsController = $settingsController;
}

View File

@ -2,8 +2,8 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
interface BlockRenderer {
public function render(string $blockContent, array $parsedBlock, SettingsController $settingsController): string;
interface Block_Renderer {
public function render(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string;
}

View File

@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use WP_Block_Parser;
class BlocksParser extends WP_Block_Parser {
class Blocks_Parser extends WP_Block_Parser {
/**
* List of parsed blocks
*

View File

@ -2,14 +2,14 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
class BlocksRegistry {
class Blocks_Registry {
/** @var BlockRenderer[] */
/** @var Block_Renderer[] */
private $blockRenderersMap = [];
/** @var BlockRenderer */
private $fallbackRenderer = null;
public function addBlockRenderer(string $blockName, BlockRenderer $renderer): void {
public function addBlockRenderer(string $blockName, Block_Renderer $renderer): void {
$this->blockRenderersMap[$blockName] = $renderer;
}
@ -21,7 +21,7 @@ class BlocksRegistry {
return isset($this->blockRenderersMap[$blockName]);
}
public function getBlockRenderer(string $blockName): ?BlockRenderer {
public function getBlockRenderer(string $blockName): ?Block_Renderer {
return $this->blockRenderersMap[$blockName] ?? null;
}

View File

@ -2,27 +2,27 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoetVendor\Pelago\Emogrifier\CssInliner;
use WP_Block_Template;
use WP_Post;
class ContentRenderer {
private BlocksRegistry $blocksRegistry;
private ProcessManager $processManager;
private SettingsController $settingsController;
private ThemeController $themeController;
class Content_Renderer {
private Blocks_Registry $blocksRegistry;
private Process_Manager $processManager;
private Settings_Controller $settingsController;
private Theme_Controller $themeController;
private $post = null;
private $template = null;
const CONTENT_STYLES_FILE = 'content.css';
public function __construct(
ProcessManager $preprocessManager,
BlocksRegistry $blocksRegistry,
SettingsController $settingsController,
ThemeController $themeController
Process_Manager $preprocessManager,
Blocks_Registry $blocksRegistry,
Settings_Controller $settingsController,
Theme_Controller $themeController
) {
$this->processManager = $preprocessManager;
$this->blocksRegistry = $blocksRegistry;
@ -50,7 +50,7 @@ class ContentRenderer {
}
public function blockParser() {
return 'MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlocksParser';
return 'MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Parser';
}
public function preprocessParsedBlocks(array $parsedBlocks): array {

View File

@ -2,16 +2,16 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\HighlightingPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\VariablesPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\BlocksWidthPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\CleanupPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Blocks_Width_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Cleanup_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\SpacingPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\TypographyPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Spacing_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typography_Preprocessor;
class ProcessManager {
class Process_Manager {
/** @var Preprocessor[] */
private $preprocessors = [];
@ -19,12 +19,12 @@ class ProcessManager {
private $postprocessors = [];
public function __construct(
CleanupPreprocessor $cleanupPreprocessor,
BlocksWidthPreprocessor $blocksWidthPreprocessor,
TypographyPreprocessor $typographyPreprocessor,
SpacingPreprocessor $spacingPreprocessor,
HighlightingPostprocessor $highlightingPostprocessor,
VariablesPostprocessor $variablesPostprocessor
Cleanup_Preprocessor $cleanupPreprocessor,
Blocks_Width_Preprocessor $blocksWidthPreprocessor,
Typography_Preprocessor $typographyPreprocessor,
Spacing_Preprocessor $spacingPreprocessor,
Highlighting_Postprocessor $highlightingPostprocessor,
Variables_Postprocessor $variablesPostprocessor
) {
$this->registerPreprocessor($cleanupPreprocessor);
$this->registerPreprocessor($blocksWidthPreprocessor);

View File

@ -2,17 +2,17 @@
namespace MailPoet\EmailEditor\Engine\Renderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer;
use MailPoet\EmailEditor\Engine\Templates\Templates;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoetVendor\Html2Text\Html2Text;
use MailPoetVendor\Pelago\Emogrifier\CssInliner;
use WP_Style_Engine;
use WP_Theme_JSON;
class Renderer {
private ThemeController $themeController;
private ContentRenderer $contentRenderer;
private Theme_Controller $themeController;
private Content_Renderer $contentRenderer;
private Templates $templates;
/** @var WP_Theme_JSON|null */
private static $theme = null;
@ -21,9 +21,9 @@ class Renderer {
const TEMPLATE_STYLES_FILE = 'template-canvas.css';
public function __construct(
ContentRenderer $contentRenderer,
Templates $templates,
ThemeController $themeController
Content_Renderer $contentRenderer,
Templates $templates,
Theme_Controller $themeController
) {
$this->contentRenderer = $contentRenderer;
$this->templates = $templates;

View File

@ -13,10 +13,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class Heading extends AbstractBlockRenderer {
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $blockContent;
}
}
@ -28,11 +28,11 @@ class Heading extends AbstractBlockRenderer {
```php
<?php
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlocksRegistry;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry;
add_action('mailpoet_blocks_renderer_initialized', 'register_my_block_email_renderer');
function register_my_block_email_renderer(BlocksRegistry $blocksRegistry): void {
function register_my_block_email_renderer(Blocks_Registry $blocksRegistry): void {
$blocksRegistry->addBlockRenderer('core/heading', new Renderer\Blocks\Heading());
}
```

View File

@ -2,19 +2,19 @@
namespace MailPoet\EmailEditor\Engine\Templates;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoet\EmailEditor\Validator\Builder;
use WP_Theme_JSON;
class TemplatePreview {
private ThemeController $themeController;
private SettingsController $settingsController;
class Template_Preview {
private Theme_Controller $themeController;
private Settings_Controller $settingsController;
private Templates $templates;
public function __construct(
ThemeController $themeController,
SettingsController $settingsController,
Theme_Controller $themeController,
Settings_Controller $settingsController,
Templates $templates
) {
$this->themeController = $themeController;

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine\Templates;
use MailPoet\EmailEditor\Engine\EmailStylesSchema;
use MailPoet\EmailEditor\Engine\Email_Styles_Schema;
use WP_Block_Template;
// phpcs:disable Squiz.NamingConventions.ValidVariableName.MemberNotCamelCaps
@ -187,7 +187,7 @@ class Templates {
self::MAILPOET_EMAIL_META_THEME_TYPE,
[
'show_in_rest' => [
'schema' => (new EmailStylesSchema())->getSchema(),
'schema' => (new Email_Styles_Schema())->getSchema(),
],
'single' => true,
'type' => 'object',
@ -204,7 +204,7 @@ class Templates {
'update_callback' => function($value, $template) {
return update_post_meta($template->wp_id, self::MAILPOET_EMAIL_META_THEME_TYPE, $value);
},
'schema' => (new EmailStylesSchema())->getSchema(),
'schema' => (new Email_Styles_Schema())->getSchema(),
]
);
}

View File

@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Engine;
use MailPoet\EmailEditor\Validator\Builder;
class EmailApiController {
class Email_Api_Controller {
/**
* @return array - Email specific data such styles.
*/

View File

@ -3,7 +3,7 @@
namespace MailPoet\EmailEditor\Engine;
use MailPoet\EmailEditor\Engine\Patterns\Patterns;
use MailPoet\EmailEditor\Engine\Templates\TemplatePreview;
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
use MailPoet\EmailEditor\Engine\Templates\Templates;
use WP_Post;
use WP_Theme_JSON;
@ -12,21 +12,21 @@ use WP_Theme_JSON;
* @phpstan-type EmailPostType array{name: string, args: array, meta: array{key: string, args: array}[]}
* See register_post_type for details about EmailPostType args.
*/
class EmailEditor {
class Email_Editor {
public const MAILPOET_EMAIL_META_THEME_TYPE = 'mailpoet_email_theme';
private EmailApiController $emailApiController;
private Email_Api_Controller $emailApiController;
private Templates $templates;
private TemplatePreview $templatePreview;
private Template_Preview $templatePreview;
private Patterns $patterns;
private SettingsController $settingsController;
private Settings_Controller $settingsController;
public function __construct(
EmailApiController $emailApiController,
Templates $templates,
TemplatePreview $templatePreview,
Patterns $patterns,
SettingsController $settingsController
Email_Api_Controller $emailApiController,
Templates $templates,
Template_Preview $templatePreview,
Patterns $patterns,
Settings_Controller $settingsController
) {
$this->emailApiController = $emailApiController;
$this->templates = $templates;
@ -115,11 +115,11 @@ class EmailEditor {
}
public function getEmailThemeDataSchema(): array {
return (new EmailStylesSchema())->getSchema();
return (new Email_Styles_Schema())->getSchema();
}
public function extendEmailThemeStyles(WP_Theme_JSON $theme, WP_Post $post): WP_Theme_JSON {
$emailTheme = get_post_meta($post->ID, EmailEditor::MAILPOET_EMAIL_META_THEME_TYPE, true);
$emailTheme = get_post_meta($post->ID, Email_Editor::MAILPOET_EMAIL_META_THEME_TYPE, true);
if ($emailTheme && is_array($emailTheme)) {
$theme->merge(new WP_Theme_JSON($emailTheme));
}

View File

@ -4,7 +4,7 @@ namespace MailPoet\EmailEditor\Engine;
use MailPoet\EmailEditor\Validator\Builder;
class EmailStylesSchema {
class Email_Styles_Schema {
public function getSchema(): array {
$typographyProps = Builder::object([
'fontFamily' => Builder::string()->nullable(),

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine;
class SettingsController {
class Settings_Controller {
const ALLOWED_BLOCK_TYPES = [
'core/button',
@ -22,15 +22,15 @@ class SettingsController {
'enableCustomUnits' => ['px', '%'],
];
private ThemeController $themeController;
private Theme_Controller $themeController;
private array $iframeAssets = [];
/**
* @param ThemeController $themeController
* @param Theme_Controller $themeController
*/
public function __construct(
ThemeController $themeController
Theme_Controller $themeController
) {
$this->themeController = $themeController;
}

View File

@ -10,7 +10,7 @@ use WP_Theme_JSON_Resolver;
* E-mail editor works with own theme.json which defines settings for the editor and styles for the e-mail.
* This class is responsible for accessing data defined by the theme.json.
*/
class ThemeController {
class Theme_Controller {
private WP_Theme_JSON $coreTheme;
private WP_Theme_JSON $baseTheme;

View File

@ -2,14 +2,14 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlockRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Block_Renderer;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use WP_Style_Engine;
/**
* Shared functionality for block renderers.
*/
abstract class AbstractBlockRenderer implements BlockRenderer {
abstract class Abstract_Block_Renderer implements Block_Renderer {
/**
* Wrapper for wp_style_engine_get_styles which ensures all values are returned.
*
@ -54,12 +54,12 @@ abstract class AbstractBlockRenderer implements BlockRenderer {
);
}
public function render(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
public function render(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $this->addSpacer(
$this->renderContent($blockContent, $parsedBlock, $settingsController),
$parsedBlock['email_attrs'] ?? []
);
}
abstract protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string;
abstract protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string;
}

View File

@ -2,15 +2,15 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Integrations\Utils\DomDocumentHelper;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Integrations\Utils\Dom_Document_Helper;
/**
* Renders a button block.
* @see https://www.activecampaign.com/blog/email-buttons
* @see https://documentation.mjml.io/#mj-button
*/
class Button extends AbstractBlockRenderer {
class Button extends Abstract_Block_Renderer {
private function getWrapperStyles(array $blockStyles) {
$properties = ['border', 'color', 'typography', 'spacing'];
$styles = $this->getStylesFromBlock(array_intersect_key($blockStyles, array_flip($properties)));
@ -33,16 +33,16 @@ class Button extends AbstractBlockRenderer {
];
}
public function render(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
public function render(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $this->renderContent($blockContent, $parsedBlock, $settingsController);
}
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
if (empty($parsedBlock['innerHTML'])) {
return '';
}
$domHelper = new DomDocumentHelper($parsedBlock['innerHTML']);
$domHelper = new Dom_Document_Helper($parsedBlock['innerHTML']);
$blockClassname = $domHelper->getAttributeValueByTagName('div', 'class') ?? '';
$buttonLink = $domHelper->findElement('a');

View File

@ -2,20 +2,20 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout\FlexLayoutRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout\Flex_Layout_Renderer;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class Buttons extends AbstractBlockRenderer {
/** @var FlexLayoutRenderer */
class Buttons extends Abstract_Block_Renderer {
/** @var Flex_Layout_Renderer */
private $flexLayoutRenderer;
public function __construct(
FlexLayoutRenderer $flexLayoutRenderer
Flex_Layout_Renderer $flexLayoutRenderer
) {
$this->flexLayoutRenderer = $flexLayoutRenderer;
}
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
// Ignore font size set on the buttons block
// We rely on TypographyPreprocessor to set the font size on the buttons
// Rendering font size on the wrapper causes unwanted whitespace below the buttons

View File

@ -2,12 +2,11 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\AbstractBlockRenderer;
use MailPoet\EmailEditor\Integrations\Utils\DomDocumentHelper;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Integrations\Utils\Dom_Document_Helper;
use WP_Style_Engine;
class Column extends AbstractBlockRenderer {
class Column extends Abstract_Block_Renderer {
/**
* Override this method to disable spacing (block gap) for columns.
* Spacing is applied on wrapping columns block. Columns are rendered side by side so no spacer is needed.
@ -16,7 +15,7 @@ class Column extends AbstractBlockRenderer {
return $content;
}
protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$content = '';
foreach ($parsedBlock['innerBlocks'] ?? [] as $block) {
$content .= render_block($block);
@ -32,8 +31,8 @@ class Column extends AbstractBlockRenderer {
/**
* Based on MJML <mj-column>
*/
private function getBlockWrapper(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
$originalWrapperClassname = (new DomDocumentHelper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
private function getBlockWrapper(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$originalWrapperClassname = (new Dom_Document_Helper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
$block_attributes = wp_parse_args($parsedBlock['attrs'] ?? [], [
'verticalAlignment' => 'stretch',
'width' => $settingsController->getLayoutWidthWithoutPadding(),

View File

@ -2,13 +2,13 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\AbstractBlockRenderer;
use MailPoet\EmailEditor\Integrations\Utils\DomDocumentHelper;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\Abstract_Block_Renderer;
use MailPoet\EmailEditor\Integrations\Utils\Dom_Document_Helper;
use WP_Style_Engine;
class Columns extends AbstractBlockRenderer {
protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Columns extends Abstract_Block_Renderer {
protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$content = '';
foreach ($parsedBlock['innerBlocks'] ?? [] as $block) {
$content .= render_block($block);
@ -24,8 +24,8 @@ class Columns extends AbstractBlockRenderer {
/**
* Based on MJML <mj-section>
*/
private function getBlockWrapper(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
$originalWrapperClassname = (new DomDocumentHelper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
private function getBlockWrapper(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$originalWrapperClassname = (new Dom_Document_Helper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
$block_attributes = wp_parse_args($parsedBlock['attrs'] ?? [], [
'align' => null,
'width' => $settingsController->getLayoutWidthWithoutPadding(),

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
/**
* Fallback block renderer.
@ -13,8 +13,8 @@ use MailPoet\EmailEditor\Engine\SettingsController;
*
* We need to find a better abstraction/architecture for this.
*/
class Fallback extends AbstractBlockRenderer {
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Fallback extends Abstract_Block_Renderer {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $blockContent;
}
}

View File

@ -2,13 +2,13 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\AbstractBlockRenderer;
use MailPoet\EmailEditor\Integrations\Utils\DomDocumentHelper;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\Abstract_Block_Renderer;
use MailPoet\EmailEditor\Integrations\Utils\Dom_Document_Helper;
use WP_Style_Engine;
class Group extends AbstractBlockRenderer {
protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Group extends Abstract_Block_Renderer {
protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$content = '';
$innerBlocks = $parsedBlock['innerBlocks'] ?? [];
@ -23,8 +23,8 @@ class Group extends AbstractBlockRenderer {
);
}
private function getBlockWrapper(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
$originalClassname = (new DomDocumentHelper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
private function getBlockWrapper(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$originalClassname = (new Dom_Document_Helper($blockContent))->getAttributeValueByTagName('div', 'class') ?? '';
$blockAttributes = wp_parse_args($parsedBlock['attrs'] ?? [], [
'style' => [],
'backgroundColor' => '',

View File

@ -2,11 +2,11 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Integrations\Utils\DomDocumentHelper;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Integrations\Utils\Dom_Document_Helper;
class Image extends AbstractBlockRenderer {
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Image extends Abstract_Block_Renderer {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$parsedHtml = $this->parseBlockContent($blockContent);
if (!$parsedHtml) {
@ -47,7 +47,7 @@ class Image extends AbstractBlockRenderer {
/**
* When the width is not set, it's important to get it for the image to be displayed correctly
*/
private function addImageSizeWhenMissing(array $parsedBlock, string $imageUrl, SettingsController $settingsController): array {
private function addImageSizeWhenMissing(array $parsedBlock, string $imageUrl, Settings_Controller $settingsController): array {
if (isset($parsedBlock['attrs']['width'])) {
return $parsedBlock;
}
@ -65,7 +65,6 @@ class Image extends AbstractBlockRenderer {
}
private function applyImageBorderStyle(string $blockContent, array $parsedBlock, string $class): string {
// Getting individual border properties
$borderStyles = wp_style_engine_get_styles(['border' => $parsedBlock['attrs']['style']['border'] ?? []]);
$borderStyles = $borderStyles['declarations'] ?? [];
@ -91,7 +90,7 @@ class Image extends AbstractBlockRenderer {
/**
* Settings width and height attributes for images is important for MS Outlook.
*/
private function addImageDimensions($blockContent, array $parsedBlock, SettingsController $settingsController): string {
private function addImageDimensions($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$html = new \WP_HTML_Tag_Processor($blockContent);
if ($html->next_tag(['tag_name' => 'img'])) {
// Getting height from styles and if it's set, we set the height attribute
@ -117,7 +116,7 @@ class Image extends AbstractBlockRenderer {
* This method configure the font size of the caption because it's set to 0 for the parent element to avoid unexpected white spaces
* We try to use font-size passed down from the parent element $parsedBlock['email_attrs']['font-size'], but if it's not set, we use the default font-size from the email theme.
*/
private function getCaptionStyles(SettingsController $settingsController, array $parsedBlock): string {
private function getCaptionStyles(Settings_Controller $settingsController, array $parsedBlock): string {
$themeData = $settingsController->getTheme()->get_data();
$styles = [
@ -131,7 +130,7 @@ class Image extends AbstractBlockRenderer {
/**
* Based on MJML <mj-image> but because MJML doesn't support captions, our solution is a bit different
*/
private function getBlockWrapper(array $parsedBlock, SettingsController $settingsController, ?string $caption): string {
private function getBlockWrapper(array $parsedBlock, Settings_Controller $settingsController, ?string $caption): string {
$styles = [
'border-collapse' => 'collapse',
'border-spacing' => '0px',
@ -244,7 +243,7 @@ class Image extends AbstractBlockRenderer {
return null;
}
$domHelper = new DomDocumentHelper($blockContent);
$domHelper = new Dom_Document_Helper($blockContent);
$figureTag = $domHelper->findElement('figure');
if (!$figureTag) {

View File

@ -2,11 +2,11 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
// We have to avoid using keyword `List`
class ListBlock extends AbstractBlockRenderer {
protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
class List_Block extends Abstract_Block_Renderer {
protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
$html = new \WP_HTML_Tag_Processor($blockContent);
$tagName = ($parsedBlock['attrs']['ordered'] ?? false) ? 'ol' : 'ul';
if ($html->next_tag(['tag_name' => $tagName])) {

View File

@ -2,9 +2,9 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ListItem extends AbstractBlockRenderer {
class List_Item extends Abstract_Block_Renderer {
/**
* Override this method to disable spacing (block gap) for list items.
*/
@ -12,7 +12,7 @@ class ListItem extends AbstractBlockRenderer {
return $content;
}
protected function renderContent($blockContent, array $parsedBlock, SettingsController $settingsController): string {
protected function renderContent($blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $blockContent;
}
}

View File

@ -2,13 +2,13 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
/**
* This renderer covers both core/paragraph and core/heading blocks
*/
class Text extends AbstractBlockRenderer {
protected function renderContent(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Text extends Abstract_Block_Renderer {
protected function renderContent(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
// Do not render empty blocks.
if (empty(trim(strip_tags($blockContent)))) {
return '';

View File

@ -2,8 +2,8 @@
namespace MailPoet\EmailEditor\Integrations\Core;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlocksRegistry;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout\FlexLayoutRenderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout\Flex_Layout_Renderer;
class Initializer {
public function initialize(): void {
@ -15,15 +15,15 @@ class Initializer {
/**
* Register core blocks email renderers when the blocks renderer is initialized.
*/
public function registerCoreBlocksRenderers(BlocksRegistry $blocksRegistry): void {
public function registerCoreBlocksRenderers(Blocks_Registry $blocksRegistry): void {
$blocksRegistry->addBlockRenderer('core/paragraph', new Renderer\Blocks\Text());
$blocksRegistry->addBlockRenderer('core/heading', new Renderer\Blocks\Text());
$blocksRegistry->addBlockRenderer('core/column', new Renderer\Blocks\Column());
$blocksRegistry->addBlockRenderer('core/columns', new Renderer\Blocks\Columns());
$blocksRegistry->addBlockRenderer('core/list', new Renderer\Blocks\ListBlock());
$blocksRegistry->addBlockRenderer('core/list-item', new Renderer\Blocks\ListItem());
$blocksRegistry->addBlockRenderer('core/list', new Renderer\Blocks\List_Block());
$blocksRegistry->addBlockRenderer('core/list-item', new Renderer\Blocks\List_Item());
$blocksRegistry->addBlockRenderer('core/image', new Renderer\Blocks\Image());
$blocksRegistry->addBlockRenderer('core/buttons', new Renderer\Blocks\Buttons(new FlexLayoutRenderer()));
$blocksRegistry->addBlockRenderer('core/buttons', new Renderer\Blocks\Buttons(new Flex_Layout_Renderer()));
$blocksRegistry->addBlockRenderer('core/button', new Renderer\Blocks\Button());
$blocksRegistry->addBlockRenderer('core/group', new Renderer\Blocks\Group());
// Render used for all other blocks

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Integrations\Utils;
/**
* This class should guarantee that our work with the DOMDocument is unified and safe.
*/
class DomDocumentHelper {
class Dom_Document_Helper {
private \DOMDocument $dom;
public function __construct(

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Utils;
class CdnAssetUrl {
class Cdn_Asset_Url {
const CDN_URL = 'https://ps.w.org/mailpoet/';
/** @var string */
private $baseUrl;

View File

@ -1,57 +0,0 @@
<?php declare(strict_types = 1);
namespace MailPoet\EmailEditor\Validator;
use MailPoet\EmailEditor\Validator\Schema\AnyOfSchema;
use MailPoet\EmailEditor\Validator\Schema\ArraySchema;
use MailPoet\EmailEditor\Validator\Schema\BooleanSchema;
use MailPoet\EmailEditor\Validator\Schema\IntegerSchema;
use MailPoet\EmailEditor\Validator\Schema\NullSchema;
use MailPoet\EmailEditor\Validator\Schema\NumberSchema;
use MailPoet\EmailEditor\Validator\Schema\ObjectSchema;
use MailPoet\EmailEditor\Validator\Schema\OneOfSchema;
use MailPoet\EmailEditor\Validator\Schema\StringSchema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/
class Builder {
public static function string(): StringSchema {
return new StringSchema();
}
public static function number(): NumberSchema {
return new NumberSchema();
}
public static function integer(): IntegerSchema {
return new IntegerSchema();
}
public static function boolean(): BooleanSchema {
return new BooleanSchema();
}
public static function null(): NullSchema {
return new NullSchema();
}
public static function array(Schema $items = null): ArraySchema {
$array = new ArraySchema();
return $items ? $array->items($items) : $array;
}
/** @param array<string, Schema>|null $properties */
public static function object(array $properties = null): ObjectSchema {
$object = new ObjectSchema();
return $properties === null ? $object : $object->properties($properties);
}
/** @param Schema[] $schemas */
public static function oneOf(array $schemas): OneOfSchema {
return new OneOfSchema($schemas);
}
/** @param Schema[] $schemas */
public static function anyOf(array $schemas): AnyOfSchema {
return new AnyOfSchema($schemas);
}
}

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#oneof-and-anyof
class AnyOfSchema extends Schema {
class Any_Of_Schema extends Schema {
protected $schema = [
'anyOf' => [],
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#arrays
class ArraySchema extends Schema {
class Array_Schema extends Schema {
protected $schema = [
'type' => 'array',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#primitive-types
class BooleanSchema extends Schema {
class Boolean_Schema extends Schema {
protected $schema = [
'type' => 'boolean',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#numbers
class IntegerSchema extends Schema {
class Integer_Schema extends Schema {
protected $schema = [
'type' => 'integer',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#primitive-types
class NullSchema extends Schema {
class Null_Schema extends Schema {
protected $schema = [
'type' => 'null',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#numbers
class NumberSchema extends Schema {
class Number_Schema extends Schema {
protected $schema = [
'type' => 'number',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#objects
class ObjectSchema extends Schema {
class Object_Schema extends Schema {
protected $schema = [
'type' => 'object',
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#oneof-and-anyof
class OneOfSchema extends Schema {
class One_Of_Schema extends Schema {
protected $schema = [
'oneOf' => [],
];

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator\Schema;
use MailPoet\EmailEditor\Validator\Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/#strings
class StringSchema extends Schema {
class String_Schema extends Schema {
protected $schema = [
'type' => 'string',
];

View File

@ -0,0 +1,57 @@
<?php declare(strict_types = 1);
namespace MailPoet\EmailEditor\Validator;
use MailPoet\EmailEditor\Validator\Schema\Any_Of_Schema;
use MailPoet\EmailEditor\Validator\Schema\Array_Schema;
use MailPoet\EmailEditor\Validator\Schema\Boolean_Schema;
use MailPoet\EmailEditor\Validator\Schema\Integer_Schema;
use MailPoet\EmailEditor\Validator\Schema\Null_Schema;
use MailPoet\EmailEditor\Validator\Schema\Number_Schema;
use MailPoet\EmailEditor\Validator\Schema\Object_Schema;
use MailPoet\EmailEditor\Validator\Schema\One_Of_Schema;
use MailPoet\EmailEditor\Validator\Schema\String_Schema;
// See: https://developer.wordpress.org/rest-api/extending-the-rest-api/schema/
class Builder {
public static function string(): String_Schema {
return new String_Schema();
}
public static function number(): Number_Schema {
return new Number_Schema();
}
public static function integer(): Integer_Schema {
return new Integer_Schema();
}
public static function boolean(): Boolean_Schema {
return new Boolean_Schema();
}
public static function null(): Null_Schema {
return new Null_Schema();
}
public static function array(Schema $items = null): Array_Schema {
$array = new Array_Schema();
return $items ? $array->items($items) : $array;
}
/** @param array<string, Schema>|null $properties */
public static function object(array $properties = null): Object_Schema {
$object = new Object_Schema();
return $properties === null ? $object : $object->properties($properties);
}
/** @param Schema[] $schemas */
public static function oneOf(array $schemas): One_Of_Schema {
return new One_Of_Schema($schemas);
}
/** @param Schema[] $schemas */
public static function anyOf(array $schemas): Any_Of_Schema {
return new Any_Of_Schema($schemas);
}
}

View File

@ -5,7 +5,7 @@ namespace MailPoet\EmailEditor\Validator;
use MailPoet\UnexpectedValueException;
use WP_Error;
class ValidationException extends UnexpectedValueException {
class Validation_Exception extends UnexpectedValueException {
/** @var WP_Error */
protected $wpError;

View File

@ -39,7 +39,7 @@ class Validator {
public function validateSchemaArray(array $schema, $value, string $paramName = 'value') {
$result = $this->validateAndSanitizeValueFromSchema($value, $schema, $paramName);
if ($result instanceof WP_Error) {
throw ValidationException::createFromWpError($result);
throw Validation_Exception::createFromWpError($result);
}
return $result;
}

View File

@ -1,5 +1,6 @@
<?php
use _generated\UnitTesterActions;
/**
* Inherited Methods
@ -18,7 +19,7 @@
*/
class UnitTester extends \Codeception\Actor
{
use _generated\UnitTesterActions;
use UnitTesterActions;
/**
* Define custom actions here

View File

@ -2,8 +2,8 @@
namespace MailPoet\EmailEditor\Engine;
class EmailEditorTest extends \MailPoetTest {
/** @var EmailEditor */
class Email_Editor_Test extends \MailPoetTest {
/** @var Email_Editor */
private $emailEditor;
/** @var callable */
@ -11,7 +11,7 @@ class EmailEditorTest extends \MailPoetTest {
public function _before() {
parent::_before();
$this->emailEditor = $this->diContainer->get(EmailEditor::class);
$this->emailEditor = $this->diContainer->get(Email_Editor::class);
$this->postRegisterCallback = function ($postTypes) {
$postTypes[] = [
'name' => 'custom_email_type',

View File

@ -4,16 +4,16 @@ namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks\Text;
require_once __DIR__ . '/DummyBlockRenderer.php';
require_once __DIR__ . '/Dummy_Block_Renderer.php';
class BlocksRegistryTest extends \MailPoetTest {
class Blocks_Registry_Test extends \MailPoetTest {
/** @var BlocksRegistry */
/** @var Blocks_Registry */
private $registry;
public function _before() {
parent::_before();
$this->registry = $this->diContainer->get(BlocksRegistry::class);
$this->registry = $this->diContainer->get(Blocks_Registry::class);
}
public function testItReturnsNullForUnknownRenderer() {

View File

@ -2,21 +2,21 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Integrations\MailPoet\Blocks\BlockTypesController;
require_once __DIR__ . '/DummyBlockRenderer.php';
require_once __DIR__ . '/Dummy_Block_Renderer.php';
class ContentRendererTest extends \MailPoetTest {
private ContentRenderer $renderer;
class Content_Renderer_Test extends \MailPoetTest {
private Content_Renderer $renderer;
private \WP_Post $emailPost;
public function _before(): void {
parent::_before();
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->diContainer->get(BlockTypesController::class)->initialize();
$this->renderer = $this->diContainer->get(ContentRenderer::class);
$this->renderer = $this->diContainer->get(Content_Renderer::class);
$this->emailPost = $this->tester->createPost([
'post_content' => '<!-- wp:paragraph --><p>Hello!</p><!-- /wp:paragraph -->',
]);

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class DummyBlockRenderer implements BlockRenderer {
public function render(string $blockContent, array $parsedBlock, SettingsController $settingsController): string {
class Dummy_Block_Renderer implements Block_Renderer {
public function render(string $blockContent, array $parsedBlock, Settings_Controller $settingsController): string {
return $parsedBlock['innerHtml'];
}
}

View File

@ -2,23 +2,23 @@
namespace MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Layout;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\DummyBlockRenderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Dummy_Block_Renderer;
use MailPoet\EmailEditor\Engine\Settings_Controller;
require_once __DIR__ . '/../DummyBlockRenderer.php';
require_once __DIR__ . '/../Dummy_Block_Renderer.php';
class FlexLayoutRendererTest extends \MailPoetTest {
class Flex_Layout_Renderer_Test extends \MailPoetTest {
/** @var FlexLayoutRenderer */
/** @var Flex_Layout_Renderer */
private $renderer;
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before(): void {
parent::_before();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->renderer = new FlexLayoutRenderer();
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
$this->renderer = new Flex_Layout_Renderer();
register_block_type('dummy/block', []);
add_filter('render_block', [$this, 'renderDummyBlock'], 10, 2);
}
@ -223,7 +223,7 @@ class FlexLayoutRendererTest extends \MailPoetTest {
}
public function renderDummyBlock($blockContent, $parsedBlock): string {
$dummyRenderer = new DummyBlockRenderer();
$dummyRenderer = new Dummy_Block_Renderer();
return $dummyRenderer->render($blockContent, $parsedBlock, $this->settingsController);
}

View File

@ -2,18 +2,18 @@
namespace MailPoet\EmailEditor\Engine\Renderer;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Theme_Controller;
class RendererTest extends \MailPoetTest {
class Renderer_Test extends \MailPoetTest {
private Renderer $renderer;
private \WP_Post $emailPost;
public function _before(): void {
parent::_before();
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->renderer = $this->diContainer->get(Renderer::class);
$styles = [
'spacing' => [
@ -35,9 +35,9 @@ class RendererTest extends \MailPoetTest {
$themeJsonMock->method('get_data')->willReturn([
'styles' => $styles,
]);
$settingsControllerMock = $this->createMock(SettingsController::class);
$settingsControllerMock = $this->createMock(Settings_Controller::class);
$settingsControllerMock->method('getEmailStyles')->willReturn($styles);
$themeControllerMock = $this->createMock(ThemeController::class);
$themeControllerMock = $this->createMock(Theme_Controller::class);
$themeControllerMock->method('getTheme')->willReturn($themeJsonMock);
$themeControllerMock->method('getStyles')->willReturn($styles);
$themeControllerMock->method('getLayoutSettings')->willReturn(['contentSize' => '660px']);

View File

@ -2,12 +2,12 @@
namespace MailPoet\EmailEditor\Engine;
class ThemeControllerTest extends \MailPoetTest {
private ThemeController $themeController;
class Theme_Controller_Test extends \MailPoetTest {
private Theme_Controller $themeController;
public function _before() {
parent::_before();
$this->themeController = $this->diContainer->get(ThemeController::class);
$this->themeController = $this->diContainer->get(Theme_Controller::class);
}
public function testItGeneratesCssStylesForRenderer() {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ButtonTest extends \MailPoetTest {
class Button_Test extends \MailPoetTest {
/** @var Button */
private $buttonRenderer;
@ -38,13 +38,13 @@ class ButtonTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before(): void {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->buttonRenderer = new Button();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersLink(): void {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ColumnTest extends \MailPoetTest {
class Column_Test extends \MailPoetTest {
/** @var Column */
private $columnRenderer;
@ -35,13 +35,13 @@ class ColumnTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->columnRenderer = new Column();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersColumnContent() {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ColumnsTest extends \MailPoetTest {
class Columns_Test extends \MailPoetTest {
/** @var Columns */
private $columnsRenderer;
@ -42,13 +42,13 @@ class ColumnsTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->columnsRenderer = new Columns();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersInnerColumn() {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class HeadingTest extends \MailPoetTest {
class Heading_Test extends \MailPoetTest {
/** @var Text */
private $headingRenderer;
@ -34,13 +34,13 @@ class HeadingTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->headingRenderer = new Text();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersContent(): void {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ImageTest extends \MailPoetTest {
class Image_Test extends \MailPoetTest {
/** @var Image */
private $imageRenderer;
@ -32,13 +32,13 @@ class ImageTest extends \MailPoetTest {
'innerContent' => [],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->imageRenderer = new Image();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersMandatoryImageStyles(): void {

View File

@ -2,11 +2,11 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ListBlockTest extends \MailPoetTest {
/** @var ListBlock */
class List_Block_Test extends \MailPoetTest {
/** @var List_Block */
private $listRenderer;
/** @var array */
@ -41,13 +41,13 @@ class ListBlockTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->listRenderer = new ListBlock();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->diContainer->get(Email_Editor::class)->initialize();
$this->listRenderer = new List_Block();
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersListContent(): void {

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer\Blocks;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class ParagraphTest extends \MailPoetTest {
class Paragraph_Test extends \MailPoetTest {
/** @var Text */
private $paragraphRenderer;
@ -26,13 +26,13 @@ class ParagraphTest extends \MailPoetTest {
],
];
/** @var SettingsController */
/** @var Settings_Controller */
private $settingsController;
public function _before() {
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->paragraphRenderer = new Text();
$this->settingsController = $this->diContainer->get(SettingsController::class);
$this->settingsController = $this->diContainer->get(Settings_Controller::class);
}
public function testItRendersContent(): void {

View File

@ -2,18 +2,18 @@
namespace MailPoet\EmailEditor\Integrations\Core\Renderer;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Renderer\Renderer;
use MailPoet\EmailEditor\Integrations\Core\Initializer;
class RendererTest extends \MailPoetTest {
class Renderer_Test extends \MailPoetTest {
/** @var Renderer */
private $renderer;
public function _before() {
parent::_before();
$this->renderer = $this->diContainer->get(Renderer::class);
$this->diContainer->get(EmailEditor::class)->initialize();
$this->diContainer->get(Email_Editor::class)->initialize();
$this->diContainer->get(Initializer::class)->initialize();
}

View File

@ -2,27 +2,27 @@
use Codeception\Stub;
use MailPoet\EmailEditor\Container;
use MailPoet\EmailEditor\Engine\EmailApiController;
use MailPoet\EmailEditor\Engine\EmailEditor;
use MailPoet\EmailEditor\Engine\Email_Api_Controller;
use MailPoet\EmailEditor\Engine\Email_Editor;
use MailPoet\EmailEditor\Engine\Patterns\Patterns;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\BlocksRegistry;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ContentRenderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\HighlightingPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\VariablesPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\BlocksWidthPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\CleanupPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\SpacingPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\TypographyPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ProcessManager;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Blocks_Registry;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Content_Renderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Blocks_Width_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Cleanup_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Spacing_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typography_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager;
use MailPoet\EmailEditor\Engine\Renderer\Renderer;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Templates\TemplatePreview;
use MailPoet\EmailEditor\Engine\Settings_Controller;
use MailPoet\EmailEditor\Engine\Templates\Template_Preview;
use MailPoet\EmailEditor\Engine\Templates\Templates;
use MailPoet\EmailEditor\Engine\Templates\Utils;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use MailPoet\EmailEditor\Integrations\Core\Initializer;
use MailPoet\EmailEditor\Integrations\MailPoet\Blocks\BlockTypesController;
use MailPoet\EmailEditor\Utils\CdnAssetUrl;
use MailPoet\EmailEditor\Utils\Cdn_Asset_Url;
if ((boolean)getenv('MULTISITE') === true) {
// REQUEST_URI needs to be set for WP to load the proper subsite where MailPoet is activated
@ -81,11 +81,11 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
$container->set(Initializer::class, function() {
return new Initializer();
});
$container->set(CdnAssetUrl::class, function() {
return new CdnAssetUrl('http://localhost');
$container->set(Cdn_Asset_Url::class, function() {
return new Cdn_Asset_Url('http://localhost');
});
$container->set(EmailApiController::class, function() {
return new EmailApiController();
$container->set(Email_Api_Controller::class, function() {
return new Email_Api_Controller();
});
$container->set(BlockTypesController::class, function() {
return $this->createMock(BlockTypesController::class);
@ -94,83 +94,83 @@ abstract class MailPoetTest extends \Codeception\TestCase\Test { // phpcs:ignore
$container->set(Utils::class, function() {
return new Utils();
});
$container->set(ThemeController::class, function() {
return new ThemeController();
$container->set(Theme_Controller::class, function() {
return new Theme_Controller();
});
$container->set(SettingsController::class, function ($container) {
return new SettingsController($container->get(ThemeController::class));
$container->set(Settings_Controller::class, function ($container) {
return new Settings_Controller($container->get(Theme_Controller::class));
});
$container->set(SettingsController::class, function ($container) {
return new SettingsController($container->get(ThemeController::class));
$container->set(Settings_Controller::class, function ($container) {
return new Settings_Controller($container->get(Theme_Controller::class));
});
$container->set(Templates::class, function ($container) {
return new Templates($container->get(Utils::class));
});
$container->set(TemplatePreview::class, function ($container) {
return new TemplatePreview(
$container->get(ThemeController::class),
$container->get(SettingsController::class),
$container->set(Template_Preview::class, function ($container) {
return new Template_Preview(
$container->get(Theme_Controller::class),
$container->get(Settings_Controller::class),
$container->get(Templates::class),
);
});
$container->set(Patterns::class, function ($container) {
return new Patterns(
$container->get(CdnAssetUrl::class),
$container->get(Cdn_Asset_Url::class),
);
});
$container->set(CleanupPreprocessor::class, function () {
return new CleanupPreprocessor();
$container->set(Cleanup_Preprocessor::class, function () {
return new Cleanup_Preprocessor();
});
$container->set(BlocksWidthPreprocessor::class, function () {
return new BlocksWidthPreprocessor();
$container->set(Blocks_Width_Preprocessor::class, function () {
return new Blocks_Width_Preprocessor();
});
$container->set(TypographyPreprocessor::class, function ($container) {
return new TypographyPreprocessor($container->get(SettingsController::class));
$container->set(Typography_Preprocessor::class, function ($container) {
return new Typography_Preprocessor($container->get(Settings_Controller::class));
});
$container->set(SpacingPreprocessor::class, function () {
return new SpacingPreprocessor();
$container->set(Spacing_Preprocessor::class, function () {
return new Spacing_Preprocessor();
});
$container->set(HighlightingPostprocessor::class, function () {
return new HighlightingPostprocessor();
$container->set(Highlighting_Postprocessor::class, function () {
return new Highlighting_Postprocessor();
});
$container->set(VariablesPostprocessor::class, function ($container) {
return new VariablesPostprocessor($container->get(ThemeController::class));
$container->set(Variables_Postprocessor::class, function ($container) {
return new Variables_Postprocessor($container->get(Theme_Controller::class));
});
$container->set(ProcessManager::class, function ($container) {
return new ProcessManager(
$container->get(CleanupPreprocessor::class),
$container->get(BlocksWidthPreprocessor::class),
$container->get(TypographyPreprocessor::class),
$container->get(SpacingPreprocessor::class),
$container->get(HighlightingPostprocessor::class),
$container->get(VariablesPostprocessor::class),
$container->set(Process_Manager::class, function ($container) {
return new Process_Manager(
$container->get(Cleanup_Preprocessor::class),
$container->get(Blocks_Width_Preprocessor::class),
$container->get(Typography_Preprocessor::class),
$container->get(Spacing_Preprocessor::class),
$container->get(Highlighting_Postprocessor::class),
$container->get(Variables_Postprocessor::class),
);
});
$container->set(BlocksRegistry::class, function() {
return new BlocksRegistry();
$container->set(Blocks_Registry::class, function() {
return new Blocks_Registry();
});
$container->set(ContentRenderer::class, function ($container) {
return new ContentRenderer(
$container->get(ProcessManager::class),
$container->get(BlocksRegistry::class),
$container->get(SettingsController::class),
$container->get(ThemeController::class),
$container->set(Content_Renderer::class, function ($container) {
return new Content_Renderer(
$container->get(Process_Manager::class),
$container->get(Blocks_Registry::class),
$container->get(Settings_Controller::class),
$container->get(Theme_Controller::class),
);
});
$container->set(Renderer::class, function ($container) {
return new Renderer(
$container->get(ContentRenderer::class),
$container->get(Content_Renderer::class),
$container->get(Templates::class),
$container->get(ThemeController::class),
$container->get(Theme_Controller::class),
);
});
$container->set(EmailEditor::class, function ($container) {
return new EmailEditor(
$container->get(EmailApiController::class),
$container->set(Email_Editor::class, function ($container) {
return new Email_Editor(
$container->get(Email_Api_Controller::class),
$container->get(Templates::class),
$container->get(TemplatePreview::class),
$container->get(Template_Preview::class),
$container->get(Patterns::class),
$container->get(SettingsController::class),
$container->get(Settings_Controller::class),
);
});

View File

@ -6,7 +6,7 @@ use Exception;
use PHPUnit\Framework\TestCase;
use stdClass;
class ContainerTest extends TestCase {
class Container_Test extends TestCase {
public function testSetAndGetService(): void {
$container = new Container();

View File

@ -2,15 +2,15 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Postprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\HighlightingPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor;
class HighlightingPostprocessorTest extends \MailPoetUnitTest {
/** @var HighlightingPostprocessor */
class Highlighting_Postprocessor_Test extends \MailPoetUnitTest {
/** @var Highlighting_Postprocessor */
private $postprocessor;
public function _before() {
parent::_before();
$this->postprocessor = new HighlightingPostprocessor();
$this->postprocessor = new Highlighting_Postprocessor();
}
public function testItReplacesHtmlElements(): void {

View File

@ -2,20 +2,20 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Postprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\VariablesPostprocessor;
use MailPoet\EmailEditor\Engine\ThemeController;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor;
use MailPoet\EmailEditor\Engine\Theme_Controller;
use PHPUnit\Framework\MockObject\MockObject;
class VariablesPostprocessorTest extends \MailPoetUnitTest {
private VariablesPostprocessor $postprocessor;
class Variables_Postprocessor_Test extends \MailPoetUnitTest {
private Variables_Postprocessor $postprocessor;
/** @var ThemeController & MockObject */
/** @var Theme_Controller & MockObject */
private $themeControllerMock;
public function _before() {
parent::_before();
$this->themeControllerMock = $this->createMock(ThemeController::class);
$this->postprocessor = new VariablesPostprocessor($this->themeControllerMock);
$this->themeControllerMock = $this->createMock(Theme_Controller::class);
$this->postprocessor = new Variables_Postprocessor($this->themeControllerMock);
}
public function testItReplacesVariablesInStyleAttributes(): void {

View File

@ -2,11 +2,11 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Preprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\BlocksWidthPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Blocks_Width_Preprocessor;
class BlocksWidthPreprocessorTest extends \MailPoetUnitTest {
class Blocks_Width_Preprocessor_Test extends \MailPoetUnitTest {
/** @var BlocksWidthPreprocessor */
/** @var Blocks_Width_Preprocessor */
private $preprocessor;
/** @var array{contentSize: string} */
@ -17,7 +17,7 @@ class BlocksWidthPreprocessorTest extends \MailPoetUnitTest {
public function _before() {
parent::_before();
$this->preprocessor = new BlocksWidthPreprocessor();
$this->preprocessor = new Blocks_Width_Preprocessor();
$this->layout = ['contentSize' => '660px'];
$this->styles = ['spacing' => ['padding' => ['left' => '10px', 'right' => '10px', 'top' => '10px', 'bottom' => '10px'], 'blockGap' => '10px']];
}

View File

@ -2,9 +2,9 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Preprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\CleanupPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Cleanup_Preprocessor;
class CleanupPreprocessorTest extends \MailPoetUnitTest {
class Cleanup_Preprocessor_Test extends \MailPoetUnitTest {
private const PARAGRAPH_BLOCK = [
'blockName' => 'core/paragraph',
@ -22,7 +22,7 @@ class CleanupPreprocessorTest extends \MailPoetUnitTest {
]],
];
/** @var CleanupPreprocessor */
/** @var Cleanup_Preprocessor */
private $preprocessor;
/** @var array{contentSize: string} */
@ -33,7 +33,7 @@ class CleanupPreprocessorTest extends \MailPoetUnitTest {
public function _before() {
parent::_before();
$this->preprocessor = new CleanupPreprocessor();
$this->preprocessor = new Cleanup_Preprocessor();
$this->layout = ['contentSize' => '660px'];
$this->styles = ['spacing' => ['padding' => ['left' => '10px', 'right' => '10px', 'top' => '10px', 'bottom' => '10px'], 'blockGap' => '10px']];
}

View File

@ -2,11 +2,11 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Preprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\SpacingPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Spacing_Preprocessor;
class SpacingPreprocessorTest extends \MailPoetUnitTest {
class Spacing_Preprocessor_Test extends \MailPoetUnitTest {
/** @var SpacingPreprocessor */
/** @var Spacing_Preprocessor */
private $preprocessor;
/** @var array{contentSize: string} */
@ -17,7 +17,7 @@ class SpacingPreprocessorTest extends \MailPoetUnitTest {
public function _before() {
parent::_before();
$this->preprocessor = new SpacingPreprocessor();
$this->preprocessor = new Spacing_Preprocessor();
$this->layout = ['contentSize' => '660px'];
$this->styles = ['spacing' => ['padding' => ['left' => '10px', 'right' => '10px', 'top' => '10px', 'bottom' => '10px'], 'blockGap' => '10px']];
}

View File

@ -2,12 +2,12 @@
namespace MailPoet\EmailEditor\Engine\Renderer\Preprocessors;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\TypographyPreprocessor;
use MailPoet\EmailEditor\Engine\SettingsController;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typography_Preprocessor;
use MailPoet\EmailEditor\Engine\Settings_Controller;
class TypographyPreprocessorTest extends \MailPoetUnitTest {
class Typography_Preprocessor_Test extends \MailPoetUnitTest {
/** @var TypographyPreprocessor */
/** @var Typography_Preprocessor */
private $preprocessor;
/** @var array{contentSize: string} */
@ -18,7 +18,7 @@ class TypographyPreprocessorTest extends \MailPoetUnitTest {
public function _before() {
parent::_before();
$settingsMock = $this->createMock(SettingsController::class);
$settingsMock = $this->createMock(Settings_Controller::class);
$themeMock = $this->createMock(\WP_Theme_JSON::class);
$themeMock->method('get_data')->willReturn([
'styles' => [
@ -52,7 +52,7 @@ class TypographyPreprocessorTest extends \MailPoetUnitTest {
$settingsMock->method('translateSlugToFontSize')->willReturnCallback(function($slug) {
return str_replace('slug-', '', $slug);
});
$this->preprocessor = new TypographyPreprocessor($settingsMock);
$this->preprocessor = new Typography_Preprocessor($settingsMock);
$this->layout = ['contentSize' => '660px'];
$this->styles = ['spacing' => ['padding' => ['left' => '10px', 'right' => '10px', 'top' => '10px', 'bottom' => '10px'], 'blockGap' => '10px']];
}

View File

@ -2,15 +2,15 @@
namespace MailPoet\EmailEditor\Engine\Renderer;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\HighlightingPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\VariablesPostprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\BlocksWidthPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\CleanupPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\SpacingPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\TypographyPreprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\ProcessManager;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Highlighting_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Postprocessors\Variables_Postprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Blocks_Width_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Cleanup_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Spacing_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Preprocessors\Typography_Preprocessor;
use MailPoet\EmailEditor\Engine\Renderer\ContentRenderer\Process_Manager;
class ProcessManagerTest extends \MailPoetUnitTest {
class Process_Manager_Test extends \MailPoetUnitTest {
public function testItCallsPreprocessorsProperly(): void {
$layout = [
'contentSize' => '600px',
@ -27,25 +27,25 @@ class ProcessManagerTest extends \MailPoetUnitTest {
],
];
$cleanup = $this->createMock(CleanupPreprocessor::class);
$cleanup = $this->createMock(Cleanup_Preprocessor::class);
$cleanup->expects($this->once())->method('preprocess')->willReturn([]);
$blocksWidth = $this->createMock(BlocksWidthPreprocessor::class);
$blocksWidth = $this->createMock(Blocks_Width_Preprocessor::class);
$blocksWidth->expects($this->once())->method('preprocess')->willReturn([]);
$typography = $this->createMock(TypographyPreprocessor::class);
$typography = $this->createMock(Typography_Preprocessor::class);
$typography->expects($this->once())->method('preprocess')->willReturn([]);
$spacing = $this->createMock(SpacingPreprocessor::class);
$spacing = $this->createMock(Spacing_Preprocessor::class);
$spacing->expects($this->once())->method('preprocess')->willReturn([]);
$highlighting = $this->createMock(HighlightingPostprocessor::class);
$highlighting = $this->createMock(Highlighting_Postprocessor::class);
$highlighting->expects($this->once())->method('postprocess')->willReturn('');
$variables = $this->createMock(VariablesPostprocessor::class);
$variables = $this->createMock(Variables_Postprocessor::class);
$variables->expects($this->once())->method('postprocess')->willReturn('');
$processManager = new ProcessManager($cleanup, $blocksWidth, $typography, $spacing, $highlighting, $variables);
$processManager = new Process_Manager($cleanup, $blocksWidth, $typography, $spacing, $highlighting, $variables);
$this->assertEquals([], $processManager->preprocess([], $layout, $styles));
$this->assertEmpty($processManager->postprocess(''));
}

View File

@ -2,7 +2,7 @@
namespace MailPoet\EmailEditor\Engine;
class SettingsControllerTest extends \MailPoetUnitTest {
class Settings_Controller_Test extends \MailPoetUnitTest {
public function testItGetsCorrectLayoutWidthWithoutPadding(): void {
$themeJsonMock = $this->createMock(\WP_Theme_JSON::class);
$themeJsonMock->method('get_data')->willReturn([
@ -15,13 +15,13 @@ class SettingsControllerTest extends \MailPoetUnitTest {
],
],
]);
$themeController = $this->createMock(ThemeController::class);
$themeController = $this->createMock(Theme_Controller::class);
$themeController->method('getTheme')->willReturn($themeJsonMock);
$themeController->method('getLayoutSettings')->willReturn([
"contentSize" => "660px",
"wideSize" => null,
]);
$settingsController = new SettingsController($themeController);
$settingsController = new Settings_Controller($themeController);
$layoutWidth = $settingsController->getLayoutWidthWithoutPadding();
// default width is 660px and if we subtract padding from left and right we must get the correct value
$expectedWidth = 660 - 10 * 2;

View File

@ -2,10 +2,10 @@
namespace MailPoet\EmailEditor\Integrations\Utils;
class DomDocumentHelperTest extends \MailPoetUnitTest {
class Dom_Document_Helper_Test extends \MailPoetUnitTest {
public function testItFindsElement(): void {
$html = '<div><p>Some text</p></div>';
$domDocumentHelper = new DomDocumentHelper($html);
$domDocumentHelper = new Dom_Document_Helper($html);
$element = $domDocumentHelper->findElement('p');
$empty = $domDocumentHelper->findElement('span');
$this->assertInstanceOf(\DOMElement::class, $element);
@ -15,7 +15,7 @@ class DomDocumentHelperTest extends \MailPoetUnitTest {
public function testItGetsAttributeValue(): void {
$html = '<div><p class="some-class">Some text</p></div>';
$domDocumentHelper = new DomDocumentHelper($html);
$domDocumentHelper = new Dom_Document_Helper($html);
$element = $domDocumentHelper->findElement('p');
$this->assertInstanceOf(\DOMElement::class, $element);
$this->assertEquals('some-class', $domDocumentHelper->getAttributeValue($element, 'class'));
@ -23,14 +23,14 @@ class DomDocumentHelperTest extends \MailPoetUnitTest {
public function testItGetsOuterHtml(): void {
$html = '<div><span>Some <strong>text</strong></span></div>';
$domDocumentHelper = new DomDocumentHelper($html);
$domDocumentHelper = new Dom_Document_Helper($html);
$element = $domDocumentHelper->findElement('span');
$this->assertInstanceOf(\DOMElement::class, $element);
$this->assertEquals('<span>Some <strong>text</strong></span>', $domDocumentHelper->getOuterHtml($element));
// testings encoding of special characters
$html = '<div><img src="https://test.com/DALL·E-A®∑oecasƒ-803x1024.jpg"></div>';
$domDocumentHelper = new DomDocumentHelper($html);
$domDocumentHelper = new Dom_Document_Helper($html);
$element = $domDocumentHelper->findElement('img');
$this->assertInstanceOf(\DOMElement::class, $element);
$this->assertEquals('<img src="https://test.com/DALL%C2%B7E-A%C2%AE%E2%88%91oecas%C6%92-803x1024.jpg">', $domDocumentHelper->getOuterHtml($element));
@ -38,7 +38,7 @@ class DomDocumentHelperTest extends \MailPoetUnitTest {
public function testItGetsAttributeValueByTagName(): void {
$html = '<div><p class="some-class">Some text</p><p class="second-paragraph"></p></div>';
$domDocumentHelper = new DomDocumentHelper($html);
$domDocumentHelper = new Dom_Document_Helper($html);
$this->assertEquals('some-class', $domDocumentHelper->getAttributeValueByTagName('p', 'class'));
$this->assertNull($domDocumentHelper->getAttributeValueByTagName('span', 'class'));
}