Fix rendering issues in form blocks
[MAILPOET-3415]
This commit is contained in:
committed by
Veljko V
parent
6e911ffd1d
commit
c1aef842d2
@ -81,7 +81,7 @@ class BlockRendererHelper {
|
|||||||
if (is_bool($value)) {
|
if (is_bool($value)) {
|
||||||
$value = ($value) ? 'true' : 'false';
|
$value = ($value) ? 'true' : 'false';
|
||||||
}
|
}
|
||||||
$validation[] = 'data-parsley-' . $rule . '="' . $value . '"';
|
$validation[] = 'data-parsley-' . $rule . '="' . $this->wp->escAttr($value) . '"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return join(' ', $validation);
|
return join(' ', $validation);
|
||||||
@ -132,7 +132,7 @@ class BlockRendererHelper {
|
|||||||
if (isset($styles['bold'])) {
|
if (isset($styles['bold'])) {
|
||||||
$rules[] = 'font-weight: bold;';
|
$rules[] = 'font-weight: bold;';
|
||||||
}
|
}
|
||||||
return $rules ? 'style="' . implode("", $rules) . '"' : '';
|
return $rules ? 'style="' . $this->wp->escAttr(implode("", $rules)) . '"' : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function renderInputPlaceholder(array $block): string {
|
public function renderInputPlaceholder(array $block): string {
|
||||||
@ -168,7 +168,7 @@ class BlockRendererHelper {
|
|||||||
public function getFieldLabel(array $block = []): string {
|
public function getFieldLabel(array $block = []): string {
|
||||||
return (isset($block['params']['label'])
|
return (isset($block['params']['label'])
|
||||||
&& strlen(trim($block['params']['label'])) > 0)
|
&& strlen(trim($block['params']['label'])) > 0)
|
||||||
? trim($block['params']['label']) : '';
|
? $this->wp->escHtml(trim($block['params']['label'])) : '';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getFieldValue($block = []) {
|
public function getFieldValue($block = []) {
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Checkbox {
|
class Checkbox {
|
||||||
|
|
||||||
@ -12,9 +13,13 @@ class Checkbox {
|
|||||||
/** @var BlockWrapperRenderer */
|
/** @var BlockWrapperRenderer */
|
||||||
private $wrapper;
|
private $wrapper;
|
||||||
|
|
||||||
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper) {
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, WPFunctions $wp) {
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
|
$this->wp = $wp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@ -51,12 +56,12 @@ class Checkbox {
|
|||||||
|
|
||||||
$html .= $fieldValidation;
|
$html .= $fieldValidation;
|
||||||
|
|
||||||
$html .= ' /> ' . $option['value'];
|
$html .= ' /> ' . $this->wp->escHtml($option['value']);
|
||||||
|
|
||||||
$html .= '</label>';
|
$html .= '</label>';
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= '<span class="mailpoet_error_' . $block['id'] . '"></span>';
|
$html .= '<span class="mailpoet_error_' . $this->wp->escAttr($block['id']) . '"></span>';
|
||||||
|
|
||||||
return $this->wrapper->render($block, $html);
|
return $this->wrapper->render($block, $html);
|
||||||
}
|
}
|
||||||
|
@ -2,14 +2,23 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Column {
|
class Column {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function render(array $block, string $content): string {
|
public function render(array $block, string $content): string {
|
||||||
return "<div {$this->getClass($block['params'])}{$this->getStyles($block['params'])}>$content</div>";
|
return "<div {$this->getClass($block['params'])}{$this->getStyles($block['params'])}>$content</div>";
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getStyles(array $params): string {
|
private function getStyles(array $params): string {
|
||||||
if (isset($params['width'])) {
|
if (isset($params['width'])) {
|
||||||
return " style=\"flex-basis:{$params['width']}%;\"";
|
return " style=\"flex-basis:{$this->wp->escAttr($params['width'])}%;\"";
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -23,6 +32,6 @@ class Column {
|
|||||||
$classes[] = $params['class_name'];
|
$classes[] = $params['class_name'];
|
||||||
}
|
}
|
||||||
$classes = implode(' ', $classes);
|
$classes = implode(' ', $classes);
|
||||||
return "class=\"$classes\"";
|
return "class=\"{$this->wp->escAttr($classes)}\"";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Columns {
|
class Columns {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function render(array $block, string $content): string {
|
public function render(array $block, string $content): string {
|
||||||
return "<div {$this->getClass($block['params'] ?? [])}{$this->getStyles($block['params'] ?? [])}>$content</div>";
|
return "<div {$this->getClass($block['params'] ?? [])}{$this->getStyles($block['params'] ?? [])}>$content</div>";
|
||||||
}
|
}
|
||||||
@ -19,7 +28,7 @@ class Columns {
|
|||||||
$styles[] = "background:{$params['gradient']};";
|
$styles[] = "background:{$params['gradient']};";
|
||||||
}
|
}
|
||||||
if (count($styles)) {
|
if (count($styles)) {
|
||||||
return ' style="' . implode('', $styles) . '"';
|
return ' style="' . $this->wp->escAttr(implode('', $styles)) . '"';
|
||||||
}
|
}
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
@ -39,6 +48,6 @@ class Columns {
|
|||||||
$classes[] = $params['class_name'];
|
$classes[] = $params['class_name'];
|
||||||
}
|
}
|
||||||
$classes = implode(' ', $classes);
|
$classes = implode(' ', $classes);
|
||||||
return "class=\"$classes\"";
|
return "class=\"{$this->wp->escAttr($classes)}\"";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Date {
|
class Date {
|
||||||
|
|
||||||
@ -16,14 +17,19 @@ class Date {
|
|||||||
/** @var BlockStylesRenderer */
|
/** @var BlockStylesRenderer */
|
||||||
private $blockStylesRenderer;
|
private $blockStylesRenderer;
|
||||||
|
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
BlockRendererHelper $rendererHelper,
|
BlockRendererHelper $rendererHelper,
|
||||||
BlockStylesRenderer $blockStylesRenderer,
|
BlockStylesRenderer $blockStylesRenderer,
|
||||||
BlockWrapperRenderer $wrapper
|
BlockWrapperRenderer $wrapper,
|
||||||
|
WPFunctions $wp
|
||||||
) {
|
) {
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
$this->blockStylesRenderer = $blockStylesRenderer;
|
$this->blockStylesRenderer = $blockStylesRenderer;
|
||||||
|
$this->wp = $wp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@ -55,7 +61,7 @@ class Date {
|
|||||||
foreach ($dateSelectors as $dateSelector) {
|
foreach ($dateSelectors as $dateSelector) {
|
||||||
if ($dateSelector === 'DD') {
|
if ($dateSelector === 'DD') {
|
||||||
$html .= '<select class="mailpoet_date_day" ';
|
$html .= '<select class="mailpoet_date_day" ';
|
||||||
$html .= ' style="' . $this->blockStylesRenderer->renderForSelect([], $formSettings) . '"';
|
$html .= ' style="' . $this->wp->escAttr($this->blockStylesRenderer->renderForSelect([], $formSettings)) . '"';
|
||||||
$html .= $this->rendererHelper->getInputValidation($block, [
|
$html .= $this->rendererHelper->getInputValidation($block, [
|
||||||
'required-message' => __('Please select a day', 'mailpoet'),
|
'required-message' => __('Please select a day', 'mailpoet'),
|
||||||
]);
|
]);
|
||||||
@ -64,7 +70,7 @@ class Date {
|
|||||||
$html .= '</select>';
|
$html .= '</select>';
|
||||||
} else if ($dateSelector === 'MM') {
|
} else if ($dateSelector === 'MM') {
|
||||||
$html .= '<select class="mailpoet_select mailpoet_date_month" data-automation-id="form_date_month" ';
|
$html .= '<select class="mailpoet_select mailpoet_date_month" data-automation-id="form_date_month" ';
|
||||||
$html .= ' style="' . $this->blockStylesRenderer->renderForSelect([], $formSettings) . '"';
|
$html .= ' style="' . $this->wp->escAttr($this->blockStylesRenderer->renderForSelect([], $formSettings)) . '"';
|
||||||
$html .= $this->rendererHelper->getInputValidation($block, [
|
$html .= $this->rendererHelper->getInputValidation($block, [
|
||||||
'required-message' => __('Please select a month', 'mailpoet'),
|
'required-message' => __('Please select a month', 'mailpoet'),
|
||||||
]);
|
]);
|
||||||
@ -73,7 +79,7 @@ class Date {
|
|||||||
$html .= '</select>';
|
$html .= '</select>';
|
||||||
} else if ($dateSelector === 'YYYY') {
|
} else if ($dateSelector === 'YYYY') {
|
||||||
$html .= '<select class="mailpoet_date_year" data-automation-id="form_date_year" ';
|
$html .= '<select class="mailpoet_date_year" data-automation-id="form_date_year" ';
|
||||||
$html .= ' style="' . $this->blockStylesRenderer->renderForSelect([], $formSettings) . '"';
|
$html .= ' style="' . $this->wp->escAttr($this->blockStylesRenderer->renderForSelect([], $formSettings)) . '"';
|
||||||
$html .= $this->rendererHelper->getInputValidation($block, [
|
$html .= $this->rendererHelper->getInputValidation($block, [
|
||||||
'required-message' => __('Please select a year', 'mailpoet'),
|
'required-message' => __('Please select a year', 'mailpoet'),
|
||||||
]);
|
]);
|
||||||
@ -83,7 +89,7 @@ class Date {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= '<span class="mailpoet_error_' . $block['id'] . '"></span>';
|
$html .= '<span class="mailpoet_error_' . $this->wp->escAttr($block['id']) . '"></span>';
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Divider {
|
class Divider {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
const DEFAULT_ATTRIBUTES = [
|
const DEFAULT_ATTRIBUTES = [
|
||||||
'height' => 1,
|
'height' => 1,
|
||||||
'type' => 'divider',
|
'type' => 'divider',
|
||||||
@ -20,8 +29,8 @@ class Divider {
|
|||||||
if (!empty($block['params']['class_name'])) {
|
if (!empty($block['params']['class_name'])) {
|
||||||
$classes[] = $block['params']['class_name'];
|
$classes[] = $block['params']['class_name'];
|
||||||
}
|
}
|
||||||
$classAttr = join(' ', $classes);
|
$classAttr = $this->wp->escAttr(join(' ', $classes));
|
||||||
$height = $block['params']['height'] ?? self::DEFAULT_ATTRIBUTES['height'];
|
$height = $this->wp->escAttr($block['params']['height'] ?? self::DEFAULT_ATTRIBUTES['height']);
|
||||||
return "<div class='{$classAttr}' style='height: {$height}px;'>"
|
return "<div class='{$classAttr}' style='height: {$height}px;'>"
|
||||||
. $this->renderDivider($block)
|
. $this->renderDivider($block)
|
||||||
. '</div>';
|
. '</div>';
|
||||||
@ -43,7 +52,7 @@ class Divider {
|
|||||||
"height: {$dividerHeight}px",
|
"height: {$dividerHeight}px",
|
||||||
"width: $width%",
|
"width: $width%",
|
||||||
];
|
];
|
||||||
$style = implode(";", $dividerStyles);
|
$style = $this->wp->escAttr(implode(";", $dividerStyles));
|
||||||
return "<div class='mailpoet_divider' data-automation-id='form_divider' style='$style'></div>";
|
return "<div class='mailpoet_divider' data-automation-id='form_divider' style='$style'></div>";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Heading {
|
class Heading {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function render(array $block): string {
|
public function render(array $block): string {
|
||||||
$content = ($block['params']['content'] ?? '');
|
$content = ($block['params']['content'] ?? '');
|
||||||
return $this->wrapContent($content, $block);
|
return $this->wrapContent($content, $block);
|
||||||
@ -63,7 +72,7 @@ class Heading {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return 'class="'
|
return 'class="'
|
||||||
. join(' ', $classes)
|
. $this->wp->escAttr(join(' ', $classes))
|
||||||
. '"';
|
. '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +103,7 @@ class Heading {
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
return 'style="'
|
return 'style="'
|
||||||
. join('; ', $styles)
|
. $this->wp->escAttr(join('; ', $styles))
|
||||||
. '"';
|
. '"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,13 +22,13 @@ class Image {
|
|||||||
private function renderImage(array $params): string {
|
private function renderImage(array $params): string {
|
||||||
$attributes = [];
|
$attributes = [];
|
||||||
$styles = [];
|
$styles = [];
|
||||||
$attributes[] = 'src="' . $params['url'] . '"';
|
$attributes[] = 'src="' . $this->wp->escAttr($params['url']) . '"';
|
||||||
$attributes[] = $params['alt'] ? 'alt="' . $params['alt'] . '"' : 'alt';
|
$attributes[] = $params['alt'] ? 'alt="' . $this->wp->escAttr($params['alt']) . '"' : 'alt';
|
||||||
if ($params['title']) {
|
if ($params['title']) {
|
||||||
$attributes[] = 'title="' . $params['title'] . '"';
|
$attributes[] = 'title="' . $this->wp->escAttr($params['title']) . '"';
|
||||||
}
|
}
|
||||||
if ($params['id']) {
|
if ($params['id']) {
|
||||||
$attributes[] = 'class="wp-image-' . $params['id'] . '"';
|
$attributes[] = 'class="wp-image-' . $this->wp->escAttr($params['id']) . '"';
|
||||||
$attributes[] = 'srcset="' . $this->wp->wpGetAttachmentImageSrcset(intval($params['id']), $params['size_slug']) . '"';
|
$attributes[] = 'srcset="' . $this->wp->wpGetAttachmentImageSrcset(intval($params['id']), $params['size_slug']) . '"';
|
||||||
}
|
}
|
||||||
if ($params['width']) {
|
if ($params['width']) {
|
||||||
@ -40,7 +40,7 @@ class Image {
|
|||||||
$styles[] = 'height: ' . intval($params['height']) . 'px';
|
$styles[] = 'height: ' . intval($params['height']) . 'px';
|
||||||
}
|
}
|
||||||
if ($styles) {
|
if ($styles) {
|
||||||
$attributes[] = 'style="' . implode(';', $styles) . '"';
|
$attributes[] = 'style="' . $this->wp->escAttr(implode(';', $styles)) . '"';
|
||||||
}
|
}
|
||||||
return '<img ' . implode(' ', $attributes) . '>';
|
return '<img ' . implode(' ', $attributes) . '>';
|
||||||
}
|
}
|
||||||
@ -55,26 +55,26 @@ class Image {
|
|||||||
if ($params['href']) {
|
if ($params['href']) {
|
||||||
$img = $this->wrapToLink($params, $img);
|
$img = $this->wrapToLink($params, $img);
|
||||||
}
|
}
|
||||||
$caption = $params['caption'] ? "<figcaption>{$params['caption']}</figcaption>" : '';
|
$caption = $params['caption'] ? "<figcaption>{$this->wp->escHtml($params['caption'])}</figcaption>" : '';
|
||||||
$figure = '<figure class="' . implode(' ', $figureClasses) . '">' . $img . $caption . '</figure>';
|
$figure = '<figure class="' . $this->wp->escAttr(implode(' ', $figureClasses)) . '">' . $img . $caption . '</figure>';
|
||||||
// Main wrapper
|
// Main wrapper
|
||||||
$divClasses = ['mailpoet_form_image'];
|
$divClasses = ['mailpoet_form_image'];
|
||||||
if (trim($params['class_name'])) {
|
if (trim($params['class_name'])) {
|
||||||
$divClasses[] = trim($params['class_name']);
|
$divClasses[] = trim($params['class_name']);
|
||||||
}
|
}
|
||||||
return '<div class="' . implode(' ', $divClasses) . '">' . $figure . '</div>';
|
return '<div class="' . $this->wp->escAttr(implode(' ', $divClasses)) . '">' . $figure . '</div>';
|
||||||
}
|
}
|
||||||
|
|
||||||
private function wrapToLink(array $params, string $img): string {
|
private function wrapToLink(array $params, string $img): string {
|
||||||
$attributes = ['href="' . $params['href'] . '"'];
|
$attributes = ['href="' . $this->wp->escAttr($params['href']) . '"'];
|
||||||
if ($params['link_class']) {
|
if ($params['link_class']) {
|
||||||
$attributes[] = 'class="' . $params['link_class'] . '"';
|
$attributes[] = 'class="' . $this->wp->escAttr($params['link_class']) . '"';
|
||||||
}
|
}
|
||||||
if ($params['link_target']) {
|
if ($params['link_target']) {
|
||||||
$attributes[] = 'target="' . $params['link_target'] . '"';
|
$attributes[] = 'target="' . $this->wp->escAttr($params['link_target']) . '"';
|
||||||
}
|
}
|
||||||
if ($params['rel']) {
|
if ($params['rel']) {
|
||||||
$attributes[] = 'rel="' . $params['rel'] . '"';
|
$attributes[] = 'rel="' . $this->wp->escAttr($params['rel']) . '"';
|
||||||
}
|
}
|
||||||
return '<a ' . implode(' ', $attributes) . ' >' . $img . '</a>';
|
return '<a ' . implode(' ', $attributes) . ' >' . $img . '</a>';
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form\Block;
|
namespace MailPoet\Form\Block;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Paragraph {
|
class Paragraph {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function render(array $block): string {
|
public function render(array $block): string {
|
||||||
$content = ($block['params']['content'] ?? '');
|
$content = ($block['params']['content'] ?? '');
|
||||||
return $this->wrapContent($content, $block);
|
return $this->wrapContent($content, $block);
|
||||||
@ -51,7 +60,7 @@ class Paragraph {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return 'class="'
|
return 'class="'
|
||||||
. join(' ', $classes)
|
. $this->wp->escAttr(join(' ', $classes))
|
||||||
. '"';
|
. '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +85,7 @@ class Paragraph {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return 'style="'
|
return 'style="'
|
||||||
. join('; ', $styles)
|
. $this->wp->escAttr(join('; ', $styles))
|
||||||
. '"';
|
. '"';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,7 @@ class Select {
|
|||||||
class="mailpoet_select"
|
class="mailpoet_select"
|
||||||
name="' . $fieldName . '" '
|
name="' . $fieldName . '" '
|
||||||
. $automationId
|
. $automationId
|
||||||
. 'style="' . $this->blockStylesRenderer->renderForSelect([], $formSettings) . '"'
|
. 'style="' . $this->wp->escAttr($this->blockStylesRenderer->renderForSelect([], $formSettings)) . '"'
|
||||||
. '>';
|
. '>';
|
||||||
|
|
||||||
if (isset($block['params']['label_within']) && $block['params']['label_within']) {
|
if (isset($block['params']['label_within']) && $block['params']['label_within']) {
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Submit {
|
class Submit {
|
||||||
|
|
||||||
@ -16,10 +17,19 @@ class Submit {
|
|||||||
/** @var BlockStylesRenderer */
|
/** @var BlockStylesRenderer */
|
||||||
private $stylesRenderer;
|
private $stylesRenderer;
|
||||||
|
|
||||||
public function __construct(BlockRendererHelper $rendererHelper, BlockWrapperRenderer $wrapper, BlockStylesRenderer $stylesRenderer) {
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(
|
||||||
|
BlockRendererHelper $rendererHelper,
|
||||||
|
BlockWrapperRenderer $wrapper,
|
||||||
|
BlockStylesRenderer $stylesRenderer,
|
||||||
|
WPFunctions $wp
|
||||||
|
) {
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
$this->stylesRenderer = $stylesRenderer;
|
$this->stylesRenderer = $stylesRenderer;
|
||||||
|
$this->wp = $wp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@ -32,13 +42,13 @@ class Submit {
|
|||||||
$html .= 'data-automation-id="subscribe-submit-button" ';
|
$html .= 'data-automation-id="subscribe-submit-button" ';
|
||||||
|
|
||||||
if (isset($block['styles']['font_family'])) {
|
if (isset($block['styles']['font_family'])) {
|
||||||
$html .= "data-font-family='{$block['styles']['font_family']}' " ;
|
$html .= "data-font-family='{$this->wp->escAttr($block['styles']['font_family'])}' " ;
|
||||||
}
|
}
|
||||||
|
|
||||||
$styles = $this->stylesRenderer->renderForButton($block['styles'] ?? [], $formSettings);
|
$styles = $this->stylesRenderer->renderForButton($block['styles'] ?? [], $formSettings);
|
||||||
|
|
||||||
if ($styles) {
|
if ($styles) {
|
||||||
$html .= 'style="' . $styles . '" ';
|
$html .= 'style="' . $this->wp->escAttr($styles) . '" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= '/>';
|
$html .= '/>';
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Text {
|
class Text {
|
||||||
/** @var BlockRendererHelper */
|
/** @var BlockRendererHelper */
|
||||||
@ -15,14 +16,19 @@ class Text {
|
|||||||
/** @var BlockWrapperRenderer */
|
/** @var BlockWrapperRenderer */
|
||||||
private $wrapper;
|
private $wrapper;
|
||||||
|
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
BlockRendererHelper $rendererHelper,
|
BlockRendererHelper $rendererHelper,
|
||||||
BlockStylesRenderer $inputStylesRenderer,
|
BlockStylesRenderer $inputStylesRenderer,
|
||||||
BlockWrapperRenderer $wrapper
|
BlockWrapperRenderer $wrapper,
|
||||||
|
WPFunctions $wp
|
||||||
) {
|
) {
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->inputStylesRenderer = $inputStylesRenderer;
|
$this->inputStylesRenderer = $inputStylesRenderer;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
|
$this->wp = $wp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@ -33,7 +39,7 @@ class Text {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($block['id'], ['email', 'last_name', 'first_name'], true)) {
|
if (in_array($block['id'], ['email', 'last_name', 'first_name'], true)) {
|
||||||
$automationId = 'data-automation-id="form_' . $block['id'] . '" ';
|
$automationId = 'data-automation-id="form_' . $this->wp->escAttr($block['id']) . '" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
$styles = $this->inputStylesRenderer->renderForTextInput($block['styles'] ?? [], $formSettings);
|
$styles = $this->inputStylesRenderer->renderForTextInput($block['styles'] ?? [], $formSettings);
|
||||||
@ -57,7 +63,7 @@ class Text {
|
|||||||
$html .= 'value="' . $this->rendererHelper->getFieldValue($block) . '" ';
|
$html .= 'value="' . $this->rendererHelper->getFieldValue($block) . '" ';
|
||||||
|
|
||||||
if ($styles) {
|
if ($styles) {
|
||||||
$html .= 'style="' . $styles . '" ';
|
$html .= 'style="' . $this->wp->escAttr($styles) . '" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= $automationId;
|
$html .= $automationId;
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class Textarea {
|
class Textarea {
|
||||||
/** @var BlockRendererHelper */
|
/** @var BlockRendererHelper */
|
||||||
@ -15,14 +16,19 @@ class Textarea {
|
|||||||
/** @var BlockWrapperRenderer */
|
/** @var BlockWrapperRenderer */
|
||||||
private $wrapper;
|
private $wrapper;
|
||||||
|
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
BlockRendererHelper $rendererHelper,
|
BlockRendererHelper $rendererHelper,
|
||||||
BlockStylesRenderer $inputStylesRenderer,
|
BlockStylesRenderer $inputStylesRenderer,
|
||||||
BlockWrapperRenderer $wrapper
|
BlockWrapperRenderer $wrapper,
|
||||||
|
WPFunctions $wp
|
||||||
) {
|
) {
|
||||||
$this->rendererHelper = $rendererHelper;
|
$this->rendererHelper = $rendererHelper;
|
||||||
$this->inputStylesRenderer = $inputStylesRenderer;
|
$this->inputStylesRenderer = $inputStylesRenderer;
|
||||||
$this->wrapper = $wrapper;
|
$this->wrapper = $wrapper;
|
||||||
|
$this->wp = $wp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function render(array $block, array $formSettings): string {
|
public function render(array $block, array $formSettings): string {
|
||||||
@ -46,7 +52,7 @@ class Textarea {
|
|||||||
$html .= $this->rendererHelper->getInputModifiers($block);
|
$html .= $this->rendererHelper->getInputModifiers($block);
|
||||||
|
|
||||||
if ($styles) {
|
if ($styles) {
|
||||||
$html .= 'style="' . $styles . '" ';
|
$html .= 'style="' . $this->wp->escAttr($styles) . '" ';
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= '>' . $this->rendererHelper->getFieldValue($block) . '</textarea>';
|
$html .= '>' . $this->rendererHelper->getFieldValue($block) . '</textarea>';
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form;
|
namespace MailPoet\Form;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class BlockStylesRenderer {
|
class BlockStylesRenderer {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function renderForTextInput(array $styles, array $formSettings = []): string {
|
public function renderForTextInput(array $styles, array $formSettings = []): string {
|
||||||
$rules = [];
|
$rules = [];
|
||||||
if (isset($styles['full_width']) && intval($styles['full_width'])) {
|
if (isset($styles['full_width']) && intval($styles['full_width'])) {
|
||||||
@ -95,7 +104,7 @@ class BlockStylesRenderer {
|
|||||||
) {
|
) {
|
||||||
return '<style>'
|
return '<style>'
|
||||||
. $selector . '::placeholder{'
|
. $selector . '::placeholder{'
|
||||||
. 'color:' . $block['styles']['font_color'] . ';'
|
. 'color:' . $this->wp->escAttr($block['styles']['font_color']) . ';'
|
||||||
. 'opacity: 1;'
|
. 'opacity: 1;'
|
||||||
. '}'
|
. '}'
|
||||||
. '</style>';
|
. '</style>';
|
||||||
|
@ -2,9 +2,18 @@
|
|||||||
|
|
||||||
namespace MailPoet\Form;
|
namespace MailPoet\Form;
|
||||||
|
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class BlockWrapperRenderer {
|
class BlockWrapperRenderer {
|
||||||
|
/** @var WPFunctions */
|
||||||
|
private $wp;
|
||||||
|
|
||||||
|
public function __construct(WPFunctions $wp) {
|
||||||
|
$this->wp = $wp;
|
||||||
|
}
|
||||||
|
|
||||||
public function render(array $block, string $blockContent): string {
|
public function render(array $block, string $blockContent): string {
|
||||||
$classes = isset($block['params']['class_name']) ? " " . $block['params']['class_name'] : '';
|
$classes = isset($block['params']['class_name']) ? " " . $block['params']['class_name'] : '';
|
||||||
return '<div class="mailpoet_paragraph' . $classes . '">' . $blockContent . '</div>';
|
return '<div class="mailpoet_paragraph' . $this->wp->escAttr($classes) . '">' . $blockContent . '</div>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ class BlockRendererHelperTest extends \MailPoetUnitTest {
|
|||||||
parent::_before();
|
parent::_before();
|
||||||
$this->wpMock = $this->createMock(WPFunctions::class);
|
$this->wpMock = $this->createMock(WPFunctions::class);
|
||||||
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
|
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->wpMock->method('escHtml')->will($this->returnArgument(0));
|
||||||
$this->obfuscatorMock = $this->createMock(FieldNameObfuscator::class);
|
$this->obfuscatorMock = $this->createMock(FieldNameObfuscator::class);
|
||||||
$this->obfuscatorMock->method('obfuscate')->will($this->returnArgument(0));
|
$this->obfuscatorMock->method('obfuscate')->will($this->returnArgument(0));
|
||||||
$this->rendererHelper = new BlockRendererHelper($this->obfuscatorMock, $this->wpMock);
|
$this->rendererHelper = new BlockRendererHelper($this->obfuscatorMock, $this->wpMock);
|
||||||
|
@ -6,6 +6,7 @@ use MailPoet\Form\Block\BlockRendererHelper;
|
|||||||
use MailPoet\Form\Block\Checkbox;
|
use MailPoet\Form\Block\Checkbox;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
@ -46,7 +47,10 @@ class CheckboxTest extends \MailPoetUnitTest {
|
|||||||
$this->rendererHelperMock = $this->createMock(BlockRendererHelper::class);
|
$this->rendererHelperMock = $this->createMock(BlockRendererHelper::class);
|
||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
||||||
$this->checkbox = new Checkbox($this->rendererHelperMock, $this->wrapperMock);
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$wpMock->method('escHtml')->will($this->returnArgument(0));
|
||||||
|
$this->checkbox = new Checkbox($this->rendererHelperMock, $this->wrapperMock, $wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Test\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\Block\Column;
|
use MailPoet\Form\Block\Column;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
|
|
||||||
@ -22,7 +23,9 @@ class ColumnTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->columns = new Column();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->columns = new Column($wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Test\Form\Block;
|
|||||||
|
|
||||||
use MailPoet\Form\Block\Columns;
|
use MailPoet\Form\Block\Columns;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
|
|
||||||
@ -21,7 +22,9 @@ class ColumnsTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->columns = new Columns();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->columns = new Columns($wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ use MailPoet\Form\Block\Date;
|
|||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
@ -51,7 +52,9 @@ class DateTest extends \MailPoetUnitTest {
|
|||||||
$this->baseMock = $this->createMock(BlockRendererHelper::class);
|
$this->baseMock = $this->createMock(BlockRendererHelper::class);
|
||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
||||||
$this->date = new Date($this->baseMock, $this->blockStylesRenderer, $this->wrapperMock);
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->date = new Date($this->baseMock, $this->blockStylesRenderer, $this->wrapperMock, $wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Form\Block;
|
namespace MailPoet\Test\Form\Block;
|
||||||
|
|
||||||
use MailPoet\Form\Block\Divider;
|
use MailPoet\Form\Block\Divider;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class DividerTest extends \MailPoetUnitTest {
|
class DividerTest extends \MailPoetUnitTest {
|
||||||
/** @var Divider */
|
/** @var Divider */
|
||||||
@ -20,7 +21,9 @@ class DividerTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->divider = new Divider();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->divider = new Divider($wpMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItRendersOldDividerWithNoParams() {
|
public function testItRendersOldDividerWithNoParams() {
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Form\Block;
|
namespace MailPoet\Test\Form\Block;
|
||||||
|
|
||||||
use MailPoet\Form\Block\Heading;
|
use MailPoet\Form\Block\Heading;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class HeadingTest extends \MailPoetUnitTest {
|
class HeadingTest extends \MailPoetUnitTest {
|
||||||
/** @var Heading */
|
/** @var Heading */
|
||||||
@ -10,7 +11,9 @@ class HeadingTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->heading = new Heading();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->heading = new Heading($wpMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItShouldRenderHeading() {
|
public function testItShouldRenderHeading() {
|
||||||
|
@ -46,6 +46,8 @@ class ImageTest extends \MailPoetUnitTest {
|
|||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->wpMock = $this->createMock(WPFunctions::class);
|
$this->wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$this->wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->wpMock->method('escHtml')->will($this->returnArgument(0));
|
||||||
$this->image = new Image($this->wpMock);
|
$this->image = new Image($this->wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Form\Block;
|
namespace MailPoet\Test\Form\Block;
|
||||||
|
|
||||||
use MailPoet\Form\Block\Paragraph;
|
use MailPoet\Form\Block\Paragraph;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class ParagraphTest extends \MailPoetUnitTest {
|
class ParagraphTest extends \MailPoetUnitTest {
|
||||||
/** @var Paragraph */
|
/** @var Paragraph */
|
||||||
@ -10,7 +11,9 @@ class ParagraphTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->paragraph = new Paragraph();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->paragraph = new Paragraph($wpMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItShouldRenderParagraph() {
|
public function testItShouldRenderParagraph() {
|
||||||
|
@ -7,6 +7,7 @@ use MailPoet\Form\Block\Submit;
|
|||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
@ -45,7 +46,9 @@ class SubmitTest extends \MailPoetUnitTest {
|
|||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
||||||
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
||||||
$this->submit = new Submit($this->rendererHelperMock, $this->wrapperMock, $this->stylesRendererMock);
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->submit = new Submit($this->rendererHelperMock, $this->wrapperMock, $this->stylesRendererMock, $wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ use MailPoet\Form\Block\Text;
|
|||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
@ -47,7 +48,9 @@ class TextTest extends \MailPoetUnitTest {
|
|||||||
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
||||||
$this->text = new Text($this->rendererHelperMock, $this->stylesRendererMock, $this->wrapperMock);
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->text = new Text($this->rendererHelperMock, $this->stylesRendererMock, $this->wrapperMock, $wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ use MailPoet\Form\Block\Textarea;
|
|||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
use MailPoet\Test\Form\HtmlParser;
|
use MailPoet\Test\Form\HtmlParser;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
|
|
||||||
require_once __DIR__ . '/../HtmlParser.php';
|
require_once __DIR__ . '/../HtmlParser.php';
|
||||||
@ -48,7 +49,9 @@ class TextareaTest extends \MailPoetUnitTest {
|
|||||||
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
$this->stylesRendererMock = $this->createMock(BlockStylesRenderer::class);
|
||||||
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
$this->wrapperMock = $this->createMock(BlockWrapperRenderer::class);
|
||||||
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
$this->wrapperMock->method('render')->will($this->returnArgument(1));
|
||||||
$this->textarea = new Textarea($this->rendererHelperMock, $this->stylesRendererMock, $this->wrapperMock);
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->textarea = new Textarea($this->rendererHelperMock, $this->stylesRendererMock, $this->wrapperMock, $wpMock);
|
||||||
$this->htmlParser = new HtmlParser();
|
$this->htmlParser = new HtmlParser();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
namespace MailPoet\Test\Form;
|
namespace MailPoet\Test\Form;
|
||||||
|
|
||||||
use MailPoet\Form\BlockStylesRenderer;
|
use MailPoet\Form\BlockStylesRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
require_once __DIR__ . '/HtmlParser.php';
|
require_once __DIR__ . '/HtmlParser.php';
|
||||||
|
|
||||||
@ -12,7 +13,9 @@ class BlockStylesRendererTest extends \MailPoetUnitTest {
|
|||||||
|
|
||||||
public function _before() {
|
public function _before() {
|
||||||
parent::_before();
|
parent::_before();
|
||||||
$this->renderer = new BlockStylesRenderer();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$this->renderer = new BlockStylesRenderer($wpMock);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItShouldReturnEmptyStringForNoStylesOrUnsupportedStyles() {
|
public function testItShouldReturnEmptyStringForNoStylesOrUnsupportedStyles() {
|
||||||
|
@ -4,17 +4,22 @@ namespace MailPoet\Test\Form;
|
|||||||
|
|
||||||
use Codeception\Util\Fixtures;
|
use Codeception\Util\Fixtures;
|
||||||
use MailPoet\Form\BlockWrapperRenderer;
|
use MailPoet\Form\BlockWrapperRenderer;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
|
|
||||||
class BlockWrapperRendererTest extends \MailPoetUnitTest {
|
class BlockWrapperRendererTest extends \MailPoetUnitTest {
|
||||||
public function testItShouldWrapBlockContent() {
|
public function testItShouldWrapBlockContent() {
|
||||||
$renderer = new BlockWrapperRenderer();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$renderer = new BlockWrapperRenderer($wpMock);
|
||||||
$block = Fixtures::get('simple_form_body')[0];
|
$block = Fixtures::get('simple_form_body')[0];
|
||||||
$result = $renderer->render($block, 'content');
|
$result = $renderer->render($block, 'content');
|
||||||
expect($result)->equals('<div class="mailpoet_paragraph">content</div>');
|
expect($result)->equals('<div class="mailpoet_paragraph">content</div>');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItShouldWrapRenderCustomClasses() {
|
public function testItShouldWrapRenderCustomClasses() {
|
||||||
$renderer = new BlockWrapperRenderer();
|
$wpMock = $this->createMock(WPFunctions::class);
|
||||||
|
$wpMock->method('escAttr')->will($this->returnArgument(0));
|
||||||
|
$renderer = new BlockWrapperRenderer($wpMock);
|
||||||
$block = Fixtures::get('simple_form_body')[0];
|
$block = Fixtures::get('simple_form_body')[0];
|
||||||
$block['params']['class_name'] = 'class1 class2';
|
$block['params']['class_name'] = 'class1 class2';
|
||||||
$result = $renderer->render($block, 'content');
|
$result = $renderer->render($block, 'content');
|
||||||
|
Reference in New Issue
Block a user