diff --git a/lib/Newsletter/Renderer/Blocks/Image.php b/lib/Newsletter/Renderer/Blocks/Image.php index da5cf2e1a8..0e0929fa56 100644 --- a/lib/Newsletter/Renderer/Blocks/Image.php +++ b/lib/Newsletter/Renderer/Blocks/Image.php @@ -6,6 +6,10 @@ use MailPoet\Newsletter\Renderer\StylesHelper; class Image { static function render($element, $column_count) { + if(empty($element['src'])) { + return ''; + } + $element['width'] = (int)$element['width']; $element['height'] = (int)$element['height']; $element = self::adjustImageDimensions($element, $column_count); diff --git a/lib/Newsletter/Renderer/Blocks/Social.php b/lib/Newsletter/Renderer/Blocks/Social.php index f5c2f10660..68b1f0f256 100644 --- a/lib/Newsletter/Renderer/Blocks/Social.php +++ b/lib/Newsletter/Renderer/Blocks/Social.php @@ -6,11 +6,17 @@ class Social { $icons_block = ''; if(is_array($element['icons'])) { foreach($element['icons'] as $index => $icon) { + if(empty($icon['image'])) { + continue; + } + $icons_block .= ' ' . $icon['iconType'] . ' '; } + } + if(!empty($icons_block)) { $template = ' @@ -20,4 +26,4 @@ class Social { return $template; } } -} \ No newline at end of file +} diff --git a/tests/unit/Newsletter/RendererTest.php b/tests/unit/Newsletter/RendererTest.php index c9380f8923..6853c163ce 100644 --- a/tests/unit/Newsletter/RendererTest.php +++ b/tests/unit/Newsletter/RendererTest.php @@ -150,6 +150,18 @@ class NewsletterRendererTest extends MailPoetTest { expect($DOM('tr > td > img', 0)->attr('style'))->notEmpty(); } + function testItDoesNotRenderImageWithoutSrc() { + $image = array( + 'src' => '', + 'width' => '100', + 'height' => '200', + 'link' => '', + 'alt' => 'some test alt text' + ); + $rendered_image = Image::render($image, $columnCount = 1); + expect($rendered_image)->equals(''); + } + function testItRendersImageWithLink() { $newsletter = $this->newsletter['body']; $template = $newsletter['content']['blocks'][0]['blocks'][0]['blocks'][1]; @@ -306,6 +318,20 @@ class NewsletterRendererTest extends MailPoetTest { expect(count($DOM('a > img')))->equals(10); } + function testItDoesNotRenderSocialIconsWithoutImageSrc() { + $block = array( + 'icons' => array( + 'image' => '', + 'width' => '100', + 'height' => '100', + 'link' => '', + 'iconType' => 'custom', + ) + ); + $rendered_block = Social::render($block, $columnCount = 1); + expect($rendered_block)->equals(''); + } + function testItRendersFooter() { $newsletter = $this->newsletter['body']; $template = $newsletter['content']['blocks'][3]['blocks'][0]['blocks'][0]; @@ -340,4 +366,4 @@ class NewsletterRendererTest extends MailPoetTest { expect(preg_match('/mailpoet_template.*?important/s', $template['html'])) ->equals(0); } -} \ No newline at end of file +}