'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 = ' Untitled 6 test_embedded_default äöü end another image end html-part '; $text = trim(strip_tags($html)); $this->mailer->setViewVars(compact('text', 'html')); $res = $this->mailer->deliver(); //Configure::write('debug', 2); $this->assertTrue((bool)$res); $debug = $this->mailer->getDebug(); //FIXME //$this->assertTextContains('test_embedded_default', $debug['message']); } /** * @return void */ public function testValidates() { $res = $this->mailer->validates(); $this->assertFalse($res); $this->mailer->setSubject('foo'); $res = $this->mailer->validates(); $this->assertFalse($res); $this->mailer->setTo('some@web.de'); $res = $this->mailer->validates(); $this->assertTrue($res); } }