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 {$order->order_no} byl změněn na {$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 {$order->order_no} byl změněn na {$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, '

Kód objednávky: {KOD}

{POLOZKY_OBJEDNAVKY}

'); $this->assertContains("stav Vaší objednávky číslo {$order->order_no} byl změněn na {$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.

Objednávka číslo: {$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('Objednávka odeslána obchodním balíkem české pošty.
', $this->mailArchive->getArchive()[0]['body']); $this->assertContains('Číslo balíku:
', $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 = '

Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890

'; $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 = '

Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890
Dobírka: {ZAPLATIT}

{POLOZKY_OBJEDNAVKY}

'; $comment_expected = '

Objednávka odeslána obchodním balíkem české pošty.
Číslo balíku: 1234567890
Dobírka: 822 Kč

'; $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 {$order->order_no}", $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(); } }