From 1b05ea2e681bf0bdd64ca3f40a771454d405a4c8 Mon Sep 17 00:00:00 2001 From: Pavel Dohnal Date: Wed, 11 Mar 2020 08:45:36 +0100 Subject: [PATCH] Create renderer for form headers [MAILPOET-2613] --- lib/DI/ContainerConfigurator.php | 1 + lib/Form/Block/Heading.php | 9 +++++++++ lib/Form/BlocksRenderer.php | 10 ++++++++++ tests/unit/Form/Block/HeadingTest.php | 20 ++++++++++++++++++++ 4 files changed, 40 insertions(+) create mode 100644 lib/Form/Block/Heading.php create mode 100644 tests/unit/Form/Block/HeadingTest.php diff --git a/lib/DI/ContainerConfigurator.php b/lib/DI/ContainerConfigurator.php index b6170dd87c..7696fa12e6 100644 --- a/lib/DI/ContainerConfigurator.php +++ b/lib/DI/ContainerConfigurator.php @@ -181,6 +181,7 @@ class ContainerConfigurator implements IContainerConfigurator { $container->autowire(\MailPoet\Form\Block\Date::class); $container->autowire(\MailPoet\Form\Block\Divider::class); $container->autowire(\MailPoet\Form\Block\Html::class); + $container->autowire(\MailPoet\Form\Block\Heading::class); $container->autowire(\MailPoet\Form\Block\Radio::class); $container->autowire(\MailPoet\Form\Block\Segment::class); $container->autowire(\MailPoet\Form\Block\Select::class); diff --git a/lib/Form/Block/Heading.php b/lib/Form/Block/Heading.php new file mode 100644 index 0000000000..5b58eaf47a --- /dev/null +++ b/lib/Form/Block/Heading.php @@ -0,0 +1,9 @@ +'; + } +} diff --git a/lib/Form/BlocksRenderer.php b/lib/Form/BlocksRenderer.php index 116dc3f7f0..11aea7b006 100644 --- a/lib/Form/BlocksRenderer.php +++ b/lib/Form/BlocksRenderer.php @@ -7,6 +7,7 @@ use MailPoet\Form\Block\Column; use MailPoet\Form\Block\Columns; use MailPoet\Form\Block\Date; use MailPoet\Form\Block\Divider; +use MailPoet\Form\Block\Heading; use MailPoet\Form\Block\Html; use MailPoet\Form\Block\Radio; use MailPoet\Form\Block\Segment; @@ -52,6 +53,9 @@ class BlocksRenderer { /** @var Columns */ private $columns; + /** @var Heading */ + private $heading; + public function __construct( Checkbox $checkbox, Column $column, @@ -59,6 +63,7 @@ class BlocksRenderer { Date $date, Divider $divider, Html $html, + Heading $heading, Radio $radio, Segment $segment, Select $select, @@ -78,6 +83,7 @@ class BlocksRenderer { $this->submit = $submit; $this->text = $text; $this->textarea = $textarea; + $this->heading = $heading; } public function renderBlock(array $block = [], array $formSettings): string { @@ -87,6 +93,10 @@ class BlocksRenderer { $html .= $this->html->render($block, $formSettings); break; + case 'heading': + $html .= $this->heading->render($block, $formSettings); + break; + case 'divider': $html .= $this->divider->render(); break; diff --git a/tests/unit/Form/Block/HeadingTest.php b/tests/unit/Form/Block/HeadingTest.php new file mode 100644 index 0000000000..18833fe83d --- /dev/null +++ b/tests/unit/Form/Block/HeadingTest.php @@ -0,0 +1,20 @@ +heading = new Heading(); + } + + public function testItShouldRenderHeading() { + $html = $this->heading->render([], []); + expect($html)->startsWith('