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' => '',