first commit
This commit is contained in:
46
tests/functional/ContentTest/EmailTest.json
Normal file
46
tests/functional/ContentTest/EmailTest.json
Normal file
File diff suppressed because one or more lines are too long
288
tests/functional/ContentTest/EmailTest.php
Normal file
288
tests/functional/ContentTest/EmailTest.php
Normal file
@@ -0,0 +1,288 @@
|
||||
<?php
|
||||
|
||||
use KupShop\DevelopmentBundle\MailArchive;
|
||||
use KupShop\KupShopBundle\Email\OrderCreateAdminEmail;
|
||||
|
||||
class EmailTest extends \DatabaseTestCase
|
||||
{
|
||||
use \KupShop\DevelopmentBundle\Util\Tests\CartTestTrait;
|
||||
|
||||
/** @var MailArchive */
|
||||
protected $mailArchive;
|
||||
|
||||
protected function setUp(): void
|
||||
{
|
||||
$conn = $this->getConnection();
|
||||
$conn->getConnection()->query('set foreign_key_checks=0');
|
||||
parent::setUp();
|
||||
$conn->getConnection()->query('set foreign_key_checks=1');
|
||||
|
||||
$this->mailArchive = $this->get(MailArchive::class);
|
||||
|
||||
$this->setTelfaSettings();
|
||||
}
|
||||
|
||||
public function testEmailInChangeStatus()
|
||||
{
|
||||
$cfg = \KupShop\KupShopBundle\Config::get();
|
||||
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$order->changeStatus(2);
|
||||
|
||||
$this->assertContains("stav Vaší objednávky číslo <strong>{$order->order_no}</strong> byl změněn na <strong>{$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInChangeStatusComment()
|
||||
{
|
||||
$cfg = \KupShop\KupShopBundle\Config::get();
|
||||
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$order->changeStatus(2, 'Komentář');
|
||||
|
||||
$this->assertContains("stav Vaší objednávky číslo <strong>{$order->order_no}</strong> byl změněn na <strong>{$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('Komentář', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInChangeStatusCommentPlaceholders()
|
||||
{
|
||||
$cfg = \KupShop\KupShopBundle\Config::get();
|
||||
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$order->changeStatus(2, '<p>Kód objednávky: {KOD}</p><p>{POLOZKY_OBJEDNAVKY}</p>');
|
||||
|
||||
$this->assertContains("stav Vaší objednávky číslo <strong>{$order->order_no}</strong> byl změněn na <strong>{$cfg['Order']['Status']['global'][2]}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Kód objednávky: {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('Seznam objednaného zboží:', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('Wilson pure battle crew', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - změna stavu objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_status_change', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInCreateOrder()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$this->loginUser(1);
|
||||
|
||||
$this->createCart();
|
||||
$cart = $this->cart;
|
||||
|
||||
$item = [
|
||||
'id_product' => 10,
|
||||
'id_variation' => null,
|
||||
'pieces' => 1,
|
||||
];
|
||||
$cart->addItem($item);
|
||||
$cart->setDeliveryAndPayment(1, 2);
|
||||
$cart->save();
|
||||
$cart->fetchAddresses();
|
||||
$cart->createFromDB();
|
||||
|
||||
$order = $cart->submitOrder('cs');
|
||||
|
||||
$this->assertContains(" potvrzovacím emailem.</p><p>Objednávka číslo: <strong>{$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_create', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInSentMessage()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$order->changeStatus(1, null, true, 'Kurýr');
|
||||
|
||||
$this->assertContains('<strong>Objednávka odeslána obchodním balíkem české pošty.</strong><br>', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('<strong>Číslo balíku: <br>', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInSentMessageComment()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$comment = '<p><strong>Objednávka odeslána obchodním balíkem české pošty.</strong><br>
|
||||
<strong>Číslo balíku: 1234567890<br></p>';
|
||||
$order->changeStatus(1, $comment, true, 'Kurýr');
|
||||
|
||||
$this->assertContains($comment, $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInSentMessageCommentPlaceholders()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$comment = '<p><strong>Objednávka odeslána obchodním balíkem české pošty.</strong><br>
|
||||
<strong>Číslo balíku: 1234567890<br>
|
||||
Dobírka: {ZAPLATIT}</strong></p>
|
||||
<p>{POLOZKY_OBJEDNAVKY}</p>';
|
||||
$comment_expected = '<p><strong>Objednávka odeslána obchodním balíkem české pošty.</strong><br>
|
||||
<strong>Číslo balíku: 1234567890<br>
|
||||
Dobírka: 822 Kč</strong></p>';
|
||||
$order->changeStatus(1, $comment, true, 'Kurýr');
|
||||
|
||||
$this->assertContains($comment_expected, $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('Seznam objednaného zboží:', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains('Wilson pure battle crew', $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Demo Kupshop.cz - objednávka {$order->order_no} byla odeslána", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_message', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testTranslatedEmail()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
$this->loginUser(1);
|
||||
|
||||
$this->createCart();
|
||||
$cart = $this->cart;
|
||||
|
||||
$item = [
|
||||
'id_product' => 10,
|
||||
'id_variation' => null,
|
||||
'pieces' => 1,
|
||||
];
|
||||
$cart->addItem($item);
|
||||
$cart->setDeliveryAndPayment(1, 2);
|
||||
$cart->save();
|
||||
$cart->fetchAddresses();
|
||||
$cart->createFromDB();
|
||||
|
||||
$order = $cart->submitOrder('sk');
|
||||
|
||||
$this->assertContains("SK | 6 | přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("SK | 6 | Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_create', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInCreateOrderPaidGenerateCoupon()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$this->loginUser(1);
|
||||
|
||||
$this->updateSQL('products', ['data' => '{"generate_coupon":"Y","generate_coupon_discount":"124"}'], ['id' => 3]);
|
||||
|
||||
$this->createCart();
|
||||
$cart = $this->cart;
|
||||
|
||||
$item = [
|
||||
'id_product' => 3,
|
||||
'id_variation' => null,
|
||||
'pieces' => 1,
|
||||
];
|
||||
$cart->addItem($item);
|
||||
$cart->save();
|
||||
$cart->createFromDB();
|
||||
|
||||
$order = $cart->submitOrder('cs');
|
||||
|
||||
$payment_id = $order->insertPayment($order->total_price, 'test', null, false, \Payment::METHOD_ONLINE);
|
||||
$order->sendPaymentReceipt($payment_id);
|
||||
|
||||
$this->assertEquals(3, count($this->mailArchive->getArchive()));
|
||||
|
||||
$this->assertContains("Demo Kupshop.cz - přijata objednávka {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
$this->assertContains("Děkujeme za zaplacení objednávky {$order->order_no}", $this->mailArchive->getArchive()[2]['subject']);
|
||||
$this->assertContains("Dárkový poukaz k objednávce {$order->order_no}", $this->mailArchive->getArchive()[1]['subject']);
|
||||
|
||||
$coupon = $this->selectSQL('discounts_coupons', ['id_order_purchased' => $order->id])->fetch();
|
||||
$this->assertNotFalse($coupon);
|
||||
|
||||
$this->assertContains($coupon['code'], $this->mailArchive->getArchive()[1]['body']);
|
||||
$url = "/objednavka/{$order->id}/coupon/{$coupon['id']}?cf=";
|
||||
$this->assertContains($url, $this->mailArchive->getArchive()[1]['body']);
|
||||
}
|
||||
|
||||
public function testEmailInOrderStorno()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
|
||||
$order = new Order();
|
||||
$order->createFromDB(2);
|
||||
$order->storno();
|
||||
|
||||
$this->assertContains("stornovali jsme Vaši objednávku <strong>{$order->order_no}</strong>", $this->mailArchive->getArchive()[0]['body']);
|
||||
$this->assertContains("Storno objednávky {$order->order_no}", $this->mailArchive->getArchive()[0]['subject']);
|
||||
|
||||
$this->assertContains('utm_source=notification&utm_medium=email&utm_campaign=order_storno', $this->mailArchive->getArchive()[0]['body']);
|
||||
}
|
||||
|
||||
public function testEmailShopkeeper()
|
||||
{
|
||||
$this->mailArchive->clearArchive();
|
||||
$email = $this->get(OrderCreateAdminEmail::class);
|
||||
$order = new Order();
|
||||
$order->createFromDB(1);
|
||||
|
||||
$email->setOrder($order);
|
||||
$email->getEmail();
|
||||
}
|
||||
|
||||
private function setTelfaSettings()
|
||||
{
|
||||
$telfaSettings = [
|
||||
'phone' => '499111062',
|
||||
'phone_id' => '825',
|
||||
'active_phone' => '499111062',
|
||||
'phones' => 'volání;volání_vip;test',
|
||||
'username' => 'jebavy@wpj.cz',
|
||||
'password' => 'kupkolo',
|
||||
'sms_number_id' => '979',
|
||||
'status' => [
|
||||
0 => '2424',
|
||||
1 => '2423',
|
||||
2 => '2436',
|
||||
3 => '2437',
|
||||
4 => '2438',
|
||||
5 => '2439',
|
||||
6 => '2440',
|
||||
7 => '2421',
|
||||
8 => '2441',
|
||||
9 => '2442',
|
||||
10 => '',
|
||||
'storno' => '2443',
|
||||
'get_number' => '2420',
|
||||
'non_exists' => '2425',
|
||||
'interrupt' => '2430',
|
||||
],
|
||||
];
|
||||
|
||||
$dbcfg = Settings::getDefault();
|
||||
|
||||
$dbcfg->telfa = $telfaSettings;
|
||||
}
|
||||
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->getJsonDataSetFromFile();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user