mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-13 07:24:13 +01:00
88 lines
2.9 KiB
PHP
88 lines
2.9 KiB
PHP
<?php
|
|
|
|
namespace Combodo\iTop\Test\UnitTest\Core;
|
|
|
|
use Combodo\iTop\Test\UnitTest\ItopTestCase;
|
|
use EMail;
|
|
use utils;
|
|
|
|
class EMailTest extends ItopTestCase
|
|
{
|
|
/**
|
|
* @return void
|
|
* @throws \ConfigException
|
|
* @throws \CoreException
|
|
* @covers Email::SetBody()
|
|
* @covers Email::Send()
|
|
*/
|
|
public function testCheckHeadersOnSendEmail(): void
|
|
{
|
|
$oConfig = utils::GetConfig();
|
|
$sCurrentEmailTransport = $oConfig->Get('email_transport');
|
|
$sCurrentEmailAsync = $oConfig->Get('email_asynchronous');
|
|
|
|
// Set our email transport to file, so we can read it after
|
|
$oConfig->Set('email_transport', 'LogFile');
|
|
$oConfig->Set('email_asynchronous', false);
|
|
|
|
$oEmail = new Email();
|
|
$oEmail->SetRecipientTO('email@email.com');
|
|
$oEmail->SetRecipientFrom('email2@email2.com');
|
|
$oEmail->SetSubject('dummy subject');
|
|
$oEmail->SetBody('dummy body');
|
|
|
|
// Send the mail and check if there's any issue
|
|
$aIssues = [];
|
|
$oEmail->Send($aIssues);
|
|
$this->assertEmpty($aIssues);
|
|
|
|
// Check if our charset is correctly set
|
|
// We know this file may be used by other future test, but as we can't configure output filename, it is what it is
|
|
$sEmailContent = file_get_contents(APPROOT.'log/mail.log');
|
|
$this->assertStringContainsStringIgnoringCase('charset=UTF-8', $sEmailContent);
|
|
|
|
// Set our previous email transport value back, so it doesn't affect other tests
|
|
$oConfig->Set('email_transport', $sCurrentEmailTransport);
|
|
$oConfig->Set('email_asynchronous', $sCurrentEmailAsync);
|
|
}
|
|
|
|
/**
|
|
* @return void
|
|
* @throws \ConfigException
|
|
* @throws \CoreException
|
|
* @covers Email::SetBody()
|
|
* @covers Email::Send()
|
|
*/
|
|
public function testCheckPartsHeadersOnSendEmailWithAttachment(): void
|
|
{
|
|
$oConfig = utils::GetConfig();
|
|
$sCurrentEmailTransport = $oConfig->Get('email_transport');
|
|
$sCurrentEmailAsync = $oConfig->Get('email_asynchronous');
|
|
|
|
// Set our email transport to file, so we can read it after
|
|
$oConfig->Set('email_transport', 'LogFile');
|
|
$oConfig->Set('email_asynchronous', false);
|
|
|
|
$oEmail = new Email();
|
|
$oEmail->SetRecipientTO('email@email.com');
|
|
$oEmail->SetRecipientFrom('email2@email2.com');
|
|
$oEmail->SetSubject('dummy subject');
|
|
$oEmail->SetBody('dummy body', 'text/plain');
|
|
$oEmail->AddAttachment('Dummy attachment', 'attachment.txt', 'text/plain');
|
|
|
|
// Send the mail and check if there's any issue
|
|
$aIssues = [];
|
|
$oEmail->Send($aIssues);
|
|
$this->assertEmpty($aIssues);
|
|
|
|
// Check if our charset is correctly set
|
|
// We know this file may be used by other future test, but as we can't configure output filename, it is what it is
|
|
$sEmailContent = file_get_contents(APPROOT.'log/mail.log');
|
|
$this->assertStringContainsStringIgnoringCase('Content-Type: text/plain; charset=UTF-8', $sEmailContent);
|
|
|
|
// Set our previous email transport value back, so it doesn't affect other tests
|
|
$oConfig->Set('email_transport', $sCurrentEmailTransport);
|
|
$oConfig->Set('email_asynchronous', $sCurrentEmailAsync);
|
|
}
|
|
}
|