From 9d93f3ea95fa9d5b27f7dfee1ec3a7c9e211eb7d Mon Sep 17 00:00:00 2001 From: stoletniy Date: Mon, 9 Oct 2017 09:37:31 +0300 Subject: [PATCH] Add a test for image alignment rendering [MAILPOET-1124] --- lib/Newsletter/Renderer/Blocks/Image.php | 8 +++++--- tests/unit/Newsletter/RendererTest.php | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 3 deletions(-) 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' => '',