'Debug', ]); $this->mailer = new TestMailer(); } /** * tearDown method * * @return void */ public function tearDown(): void { parent::tearDown(); Log::drop('email'); Mailer::drop('test'); TransportFactory::drop('debug'); TransportFactory::drop('test_smtp'); I18n::setLocale(I18n::getDefaultLocale()); } /** * @return void */ public function testSend(): void { $mailer = $this->mailer; $result = $mailer->send(); $this->assertNotEmpty($result); } /** * @return void */ public function testDeliver(): void { $mailer = $this->mailer; $result = $mailer->deliver('Foo Bar'); $this->assertTextContains('Foo Bar', $result['message']); } /** * @return void */ public function testDeliverLocaleDefault(): void { $mailer = $this->mailer; $mailer->setEmailFormat('both'); $mailer->setSubject('Test me'); $mailer->setViewVars(['value' => 123.45]); $mailer->viewBuilder() ->setTemplate('welcome') ->setLayout('fancy'); $result = $mailer->deliver(); $this->assertNotEmpty($result); $this->assertTextContains('**My price**: 123,45', $result['message']); $this->assertTextContains('My price: 123,45', $result['message']); } /** * @return void */ public function testDeliverLocaleCustom(): void { I18n::setLocale('eng'); $mailer = new TestMailer(); $mailer->setLocale('deu'); $mailer->setEmailFormat('both'); $mailer->setSubject('Test me'); $mailer->setViewVars(['value' => 123.45]); $mailer->viewBuilder() ->setTemplate('welcome') ->setLayout('fancy'); $result = $mailer->deliver(); $this->assertNotEmpty($result); $this->assertTextContains('**My price**: 123.45', $result['message']); $this->assertTextContains('My price: 123.45', $result['message']); } /** * Html email * * @return void */ public function testAddEmbeddedAttachmentSend() { $file = Plugin::path('Tools') . 'tests' . DS . 'test_files' . DS . 'img' . DS . 'hotel.png'; //Configure::write('debug', 0); $this->mailer->setEmailFormat('both'); $this->mailer->setTo(Configure::read('Config.adminEmail')); $cid = $this->mailer->addEmbeddedAttachment($file); $cid2 = $this->mailer->addEmbeddedAttachment($file); $this->assertStringContainsString('@' . env('HTTP_HOST'), $cid); $html = '