190 lines
6.4 KiB
PHP
190 lines
6.4 KiB
PHP
<?php
|
||
|
||
namespace KupShop\KupShopBundle\Tests;
|
||
|
||
use KupShop\DevelopmentBundle\MailArchive;
|
||
use KupShop\KupShopBundle\Util\Mail\Email;
|
||
use KupShop\KupShopBundle\Util\Mail\EmailSender;
|
||
|
||
class MailTest extends \DatabaseTestCase
|
||
{
|
||
/** @var MailArchive */
|
||
private $mailArchive;
|
||
/** @var Email */
|
||
private $email;
|
||
|
||
protected function setUp(): void
|
||
{
|
||
$this->getConnection()->getConnection()->query('set foreign_key_checks=0');
|
||
parent::setUp();
|
||
$this->getConnection()->getConnection()->query('set foreign_key_checks=1');
|
||
|
||
$this->mailArchive = $this->get(MailArchive::class);
|
||
$this->email = $this->get(Email::class);
|
||
}
|
||
|
||
public function testMailHeaderFooter()
|
||
{
|
||
$order = new \Order();
|
||
$order->createFromDB(1);
|
||
|
||
$order->sendEmail('testik', null);
|
||
|
||
$email = $this->mailArchive->getLast();
|
||
|
||
$this->assertContains('testik', $email['body']);
|
||
$this->assertContains('Vážený zákazníku', $email['body']);
|
||
$this->assertContains('Hezký den.', $email['body']);
|
||
}
|
||
|
||
public function testMailHeaderFooterInLanguage()
|
||
{
|
||
$order = new \Order();
|
||
$order->createFromDB(1);
|
||
$order->id_language = 'sk';
|
||
|
||
$order->sendEmail('testik', null);
|
||
|
||
$email = $this->mailArchive->getLast();
|
||
|
||
$this->assertContains('testik', $email['body']);
|
||
$this->assertContains('Dobrý deň,', $email['body']);
|
||
$this->assertContains('Pekný deň praje', $email['body']);
|
||
}
|
||
|
||
public function testGetOrderMessages()
|
||
{
|
||
$messagesCZ = $this->email->getOrderMessages();
|
||
$this->switchLanguage();
|
||
$messagesSK = $this->email->getOrderMessages();
|
||
|
||
$this->assertNotSame($messagesCZ[0], $messagesSK[0]);
|
||
}
|
||
|
||
public function testSmtpChooser()
|
||
{
|
||
/** @var EmailSender $emailSender */
|
||
$emailSender = $this->get(EmailSender::class);
|
||
|
||
$smtpSettings = [
|
||
[
|
||
'host' => 'mail1.wpj.cz',
|
||
'enabled' => true,
|
||
'allowed_senders' => 'test@wpj.cz',
|
||
],
|
||
[
|
||
'host' => 'mail2.wpj.cz',
|
||
'enabled' => true,
|
||
'allowed_senders' => 'joe@wpj.cz',
|
||
],
|
||
[
|
||
'host' => 'mail3.wpj.cz',
|
||
'enabled' => true,
|
||
'allowed_senders' => 'joe@wpj.cz',
|
||
],
|
||
];
|
||
|
||
$smtp = $emailSender->getSMTP($smtpSettings, 'joe@wpj.cz');
|
||
$this->assertTrue(in_array($smtp['host'], ['mail2.wpj.cz', 'mail3.wpj.cz']));
|
||
$smtp = $emailSender->getSMTP($smtpSettings, 'neco@wpj.cz');
|
||
$this->assertTrue(in_array($smtp['host'], ['mail1.wpj.cz']));
|
||
$smtp = $emailSender->getSMTP($smtpSettings, 'test@wpj.cz');
|
||
$this->assertTrue(in_array($smtp['host'], ['mail1.wpj.cz']));
|
||
}
|
||
|
||
protected function getDataSet()
|
||
{
|
||
return $this->getJsonDataSet(/* @lang JSON */ '
|
||
{
|
||
"languages": [
|
||
{
|
||
"id":"cs",
|
||
"name":"slovenština",
|
||
"locale":"sk_SK",
|
||
"translate":1
|
||
},
|
||
{
|
||
"id":"sk",
|
||
"name":"slovenština",
|
||
"locale":"sk_SK",
|
||
"translate":1
|
||
}
|
||
],
|
||
"emails": [
|
||
{
|
||
"id":7,
|
||
"order_status":null,
|
||
"type":"BASIC_TEMPLATE",
|
||
"position":null,
|
||
"body":"<p>Vážený zákazníku,</p><p>{EMAIL}</p><p>Hezký den.<br>\r\nTým <a href=\"https://www.chillisport.cz\">Chillisport.cz</a></p>",
|
||
"subject":"",
|
||
"name":"",
|
||
"email":"info@chillisport.cz",
|
||
"sms":null
|
||
},
|
||
{
|
||
"id":8,
|
||
"order_status":null,
|
||
"type":"ORDER_STATUS_CHANGE",
|
||
"position":null,
|
||
"body":"<p>stav Vaší objednávky číslo <strong>{KOD}</strong> byl změněn na <strong>{STAV}</strong>{KOMENTAR}.</p><p>Vaši objednávku zpracováváme a o její expedici Vás budeme informovat v dalším emailu.</p>",
|
||
"subject":"Chillisport.cz - změna objednávky {KOD}",
|
||
"name":"",
|
||
"email":"",
|
||
"sms":null
|
||
},
|
||
{
|
||
"id":9,
|
||
"order_status":null,
|
||
"type":"ORDER_MESSAGE",
|
||
"position":null,
|
||
"body":"<p>stav Vaší objednávky číslo <strong>{KOD}</strong> byl změněn na <strong>{STAV}</strong>{KOMENTAR}.</p><p>Vaši objednávku zpracováváme a o její expedici Vás budeme informovat v dalším emailu.</p>",
|
||
"subject":"Chillisport.cz - změna objednávky {KOD}",
|
||
"name":"",
|
||
"email":"",
|
||
"sms":null
|
||
}
|
||
],
|
||
"emails_translations": [
|
||
{
|
||
"id":3,
|
||
"id_email":7,
|
||
"id_language":"sk",
|
||
"id_admin":null,
|
||
"created":"2017-09-27 16:53:38",
|
||
"updated":null,
|
||
"subject":null,
|
||
"body":"<p>Dobrý deň,</p>\n\n<p>{EMAIL}</p>\n\n<p>Pekný deň praje.<br />\nTím <a href=\"https://www.chillisport.sk\">Chillisport.sk </a></p>\n",
|
||
"email":null,
|
||
"sms":null
|
||
},
|
||
{
|
||
"id":5,
|
||
"id_email":8,
|
||
"id_language":"sk",
|
||
"id_admin":5,
|
||
"created":"2017-09-27 18:40:12",
|
||
"updated":"2017-10-06 11:25:14",
|
||
"subject":"Chillisport.sk - zmena objednávky č. {KOD}",
|
||
"body":"<p>stav Vašej objednávky číslo {KÓD} bol zmenený na {STAV} {KOMENTAR}.</p>\n\n<p>Vašu objednávku spracovávame a o jej expedícii Vás budeme informovať v ďalšom emailu.</p>\n",
|
||
"email":null,
|
||
"sms":null
|
||
},
|
||
{
|
||
"id":6,
|
||
"id_email":9,
|
||
"id_language":"sk",
|
||
"id_admin":5,
|
||
"created":"2017-09-27 18:40:12",
|
||
"updated":"2017-10-06 11:25:14",
|
||
"subject":"Chillisport.sk - zmena objednávky č. {KOD}",
|
||
"body":"<p>stav Vašej objednávky číslo {KÓD} bol zmenený na {STAV} {KOMENTAR}.</p>\n\n<p>Vašu objednávku spracovávame a o jej expedícii Vás budeme informovať v ďalšom emailu.</p>\n",
|
||
"email":null,
|
||
"sms":null
|
||
}
|
||
]
|
||
}
|
||
');
|
||
}
|
||
}
|