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 .= '
';
}
+ }
+ 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
+}
|