diff --git a/lib/Newsletter/Renderer/Blocks/Image.php b/lib/Newsletter/Renderer/Blocks/Image.php index 7070d8920e..08d503c58a 100644 --- a/lib/Newsletter/Renderer/Blocks/Image.php +++ b/lib/Newsletter/Renderer/Blocks/Image.php @@ -20,11 +20,13 @@ class Image { if(!empty($element['link'])) { $image_template = '' . $image_template . ''; } + $align = 'center'; + if(!empty($element['styles']['block']['textAlign']) && in_array($element['styles']['block']['textAlign'], array('left', 'right'))) { + $align = $element['styles']['block']['textAlign']; + } $template = ' - + ' . $image_template . ' '; diff --git a/tests/unit/Newsletter/RendererTest.php b/tests/unit/Newsletter/RendererTest.php index 8fa7dca7a5..3b0bc1f293 100644 --- a/tests/unit/Newsletter/RendererTest.php +++ b/tests/unit/Newsletter/RendererTest.php @@ -133,6 +133,29 @@ class RendererTest extends \MailPoetTest { expect($DOM('tr > td > img', 0)->attr('style'))->notEmpty(); } + function testItRendersAlignedImage() { + $newsletter = $this->newsletter['body']; + $template = $newsletter['content']['blocks'][0]['blocks'][0]['blocks'][1]; + // default alignment (center) + unset($template['styles']['block']['textAlign']); + $DOM = $this->DOM_parser->parseStr(Image::render($template, $columnCount = 1)); + expect($DOM('tr > td', 0)->attr('align'))->equals('center'); + $template['styles']['block']['textAlign'] = 'center'; + $DOM = $this->DOM_parser->parseStr(Image::render($template, $columnCount = 1)); + expect($DOM('tr > td', 0)->attr('align'))->equals('center'); + $template['styles']['block']['textAlign'] = 'something odd'; + $DOM = $this->DOM_parser->parseStr(Image::render($template, $columnCount = 1)); + expect($DOM('tr > td', 0)->attr('align'))->equals('center'); + // left alignment + $template['styles']['block']['textAlign'] = 'left'; + $DOM = $this->DOM_parser->parseStr(Image::render($template, $columnCount = 1)); + expect($DOM('tr > td', 0)->attr('align'))->equals('left'); + // right alignment + $template['styles']['block']['textAlign'] = 'right'; + $DOM = $this->DOM_parser->parseStr(Image::render($template, $columnCount = 1)); + expect($DOM('tr > td', 0)->attr('align'))->equals('right'); + } + function testItDoesNotRenderImageWithoutSrc() { $image = array( 'src' => '',