Skip to content

Commit ddf2c5e

Browse files
committed
Merge remote-tracking branch 'tango/MC-33700' into Chaika-PR-2020-05-12
2 parents dba63a7 + 8abc9e1 commit ddf2c5e

File tree

3 files changed

+43
-16
lines changed

3 files changed

+43
-16
lines changed

app/code/Magento/Email/view/adminhtml/templates/template/edit.phtml

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66

77
use Magento\Framework\App\TemplateTypesInterface;
88

9+
// phpcs:disable Generic.Files.LineLength.TooLong
10+
911
/** @var $block \Magento\Email\Block\Adminhtml\Template\Edit */
1012
?>
11-
<?php if (!$block->getEditMode()) : ?>
13+
<?php if (!$block->getEditMode()): ?>
1214
<form action="<?= $block->escapeUrl($block->getLoadUrl()) ?>" method="post" id="email_template_load_form">
1315
<?= $block->getBlockHtml('formkey') ?>
1416
<fieldset class="admin__fieldset form-inline">
@@ -17,14 +19,14 @@ use Magento\Framework\App\TemplateTypesInterface;
1719
<label class="admin__field-label" for="template_select"><span><?= $block->escapeHtml(__('Template')) ?></span></label>
1820
<div class="admin__field-control">
1921
<select id="template_select" name="code" class="admin__control-select required-entry">
20-
<?php foreach ($block->getTemplateOptions() as $group => $options) : ?>
21-
<?php if ($group) : ?>
22+
<?php foreach ($block->getTemplateOptions() as $group => $options): ?>
23+
<?php if ($group): ?>
2224
<optgroup label="<?= $block->escapeHtmlAttr($group) ?>">
2325
<?php endif; ?>
24-
<?php foreach ($options as $option) : ?>
26+
<?php foreach ($options as $option): ?>
2527
<option value="<?= $block->escapeHtmlAttr($option['value']) ?>"<?= /* @noEscape */ $block->getOrigTemplateCode() == $option['value'] ? ' selected="selected"' : '' ?>><?= $block->escapeHtml($option['label']) ?></option>
2628
<?php endforeach; ?>
27-
<?php if ($group) : ?>
29+
<?php if ($group): ?>
2830
</optgroup>
2931
<?php endif; ?>
3032
<?php endforeach; ?>
@@ -114,6 +116,8 @@ require([
114116
},
115117

116118
stripTags: function () {
119+
var self = this;
120+
117121
confirm({
118122
content: "<?= $block->escapeJs($block->escapeHtml(__('Are you sure you want to strip tags?'))) ?>",
119123
actions: {
@@ -125,7 +129,7 @@ require([
125129
).stripTags().strip();
126130
$('convert_button_back').show();
127131
$('field_template_styles').hide();
128-
this.typeChange = true;
132+
self.typeChange = true;
129133
return false;
130134
}
131135
}

dev/tests/integration/testsuite/Magento/Framework/Mail/TransportBuilderTest.php

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
use Magento\Email\Model\BackendTemplate;
1111
use Magento\Email\Model\Template;
12+
use Magento\Framework\App\TemplateTypesInterface;
13+
use Magento\Framework\Exception\LocalizedException;
1214
use Magento\Framework\Mail\Template\TransportBuilder;
1315
use Magento\Framework\ObjectManagerInterface;
1416
use Magento\TestFramework\Helper\Bootstrap;
@@ -47,11 +49,26 @@ protected function setUp(): void
4749
*
4850
* @param string|array $email
4951
* @dataProvider emailDataProvider
50-
* @throws \Magento\Framework\Exception\LocalizedException
52+
* @throws LocalizedException
5153
*/
5254
public function testAddToEmail($email)
5355
{
54-
$templateId = $this->template->load('email_exception_fixture', 'template_code')->getId();
56+
$template = $this->template->load('email_exception_fixture', 'template_code');
57+
$templateId = $template->getId();
58+
59+
switch ($template->getType()) {
60+
case TemplateTypesInterface::TYPE_TEXT:
61+
$templateType = MimeInterface::TYPE_TEXT;
62+
break;
63+
64+
case TemplateTypesInterface::TYPE_HTML:
65+
$templateType = MimeInterface::TYPE_HTML;
66+
break;
67+
68+
default:
69+
$templateType = '';
70+
$this->fail('Unsupported Mime Type');
71+
}
5572

5673
$this->builder->setTemplateModel(BackendTemplate::class);
5774

@@ -62,9 +79,11 @@ public function testAddToEmail($email)
6279
$this->builder->addTo($email);
6380

6481
/** @var EmailMessage $emailMessage */
65-
$emailMessage = $this->builder->getTransport();
82+
$emailMessage = $this->builder->getTransport()->getMessage();
83+
84+
$this->assertStringContainsStringIgnoringCase($templateType, $emailMessage->getHeaders()['Content-Type']);
6685

67-
$addresses = $emailMessage->getMessage()->getTo();
86+
$addresses = $emailMessage->getTo();
6887

6988
$emails = [];
7089
/** @var Address $toAddress */

lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,8 @@
1212
use Magento\Framework\App\TemplateTypesInterface;
1313
use Magento\Framework\Exception\LocalizedException;
1414
use Magento\Framework\Exception\MailException;
15-
use Magento\Framework\Mail\EmailMessageInterface;
16-
use Magento\Framework\Mail\EmailMessageInterfaceFactory;
1715
use Magento\Framework\Mail\AddressConverter;
16+
use Magento\Framework\Mail\EmailMessageInterfaceFactory;
1817
use Magento\Framework\Mail\Exception\InvalidArgumentException;
1918
use Magento\Framework\Mail\MessageInterface;
2019
use Magento\Framework\Mail\MessageInterfaceFactory;
@@ -28,7 +27,7 @@
2827
use Magento\Framework\Phrase;
2928

3029
/**
31-
* TransportBuilder
30+
* TransportBuilder for Mail Templates
3231
*
3332
* @api
3433
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -380,11 +379,11 @@ protected function prepareMessage()
380379

381380
switch ($template->getType()) {
382381
case TemplateTypesInterface::TYPE_TEXT:
383-
$part['type'] = MimeInterface::TYPE_TEXT;
382+
$partType = MimeInterface::TYPE_TEXT;
384383
break;
385384

386385
case TemplateTypesInterface::TYPE_HTML:
387-
$part['type'] = MimeInterface::TYPE_HTML;
386+
$partType = MimeInterface::TYPE_HTML;
388387
break;
389388

390389
default:
@@ -394,7 +393,12 @@ protected function prepareMessage()
394393
}
395394

396395
/** @var \Magento\Framework\Mail\MimePartInterface $mimePart */
397-
$mimePart = $this->mimePartInterfaceFactory->create(['content' => $content]);
396+
$mimePart = $this->mimePartInterfaceFactory->create(
397+
[
398+
'content' => $content,
399+
'type' => $partType
400+
]
401+
);
398402
$this->messageData['encoding'] = $mimePart->getCharset();
399403
$this->messageData['body'] = $this->mimeMessageInterfaceFactory->create(
400404
['parts' => [$mimePart]]

0 commit comments

Comments
 (0)