Files
2025-08-02 16:30:27 +02:00

190 lines
6.4 KiB
PHP
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?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
}
]
}
');
}
}