|
|
|
@ -11,12 +11,17 @@ namespace Test\Mail;
|
|
|
|
|
use OC\Mail\Message;
|
|
|
|
|
use OCP\Mail\Headers\AutoSubmitted;
|
|
|
|
|
use OCP\Mail\IEMailTemplate;
|
|
|
|
|
use Swift_Message;
|
|
|
|
|
use Symfony\Component\Mime\Address;
|
|
|
|
|
use Symfony\Component\Mime\Email;
|
|
|
|
|
use Symfony\Component\Mime\Exception\RfcComplianceException;
|
|
|
|
|
use Symfony\Component\Mime\Header\HeaderInterface;
|
|
|
|
|
use Symfony\Component\Mime\Header\Headers;
|
|
|
|
|
use Test\TestCase;
|
|
|
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
|
|
|
|
|
|
class MessageTest extends TestCase {
|
|
|
|
|
/** @var Swift_Message */
|
|
|
|
|
private $swiftMessage;
|
|
|
|
|
/** @var Email */
|
|
|
|
|
private $symfonyEmail;
|
|
|
|
|
/** @var Message */
|
|
|
|
|
private $message;
|
|
|
|
|
|
|
|
|
@ -25,10 +30,26 @@ class MessageTest extends TestCase {
|
|
|
|
|
*/
|
|
|
|
|
public function mailAddressProvider() {
|
|
|
|
|
return [
|
|
|
|
|
[['lukas@owncloud.com' => 'Lukas Reschke'], ['lukas@owncloud.com' => 'Lukas Reschke']],
|
|
|
|
|
[['lukas@owncloud.com' => 'Lukas Reschke', 'lukas@öwnclöüd.com', 'lukäs@owncloud.örg' => 'Lükäs Réschke'],
|
|
|
|
|
['lukas@owncloud.com' => 'Lukas Reschke', 'lukas@xn--wncld-iuae2c.com', 'lukäs@owncloud.xn--rg-eka' => 'Lükäs Réschke']],
|
|
|
|
|
[['lukas@öwnclöüd.com'], ['lukas@xn--wncld-iuae2c.com']],
|
|
|
|
|
[
|
|
|
|
|
['lukas@owncloud.com' => 'Lukas Reschke'],
|
|
|
|
|
[new Address('lukas@owncloud.com', 'Lukas Reschke')]
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
[
|
|
|
|
|
'lukas@owncloud.com' => 'Lukas Reschke',
|
|
|
|
|
'lukas@öwnclöüd.com',
|
|
|
|
|
'lukäs@owncloud.örg' => 'Lükäs Réschke'
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
new Address('lukas@owncloud.com', 'Lukas Reschke'),
|
|
|
|
|
new Address('lukas@öwnclöüd.com'),
|
|
|
|
|
new Address('lukäs@owncloud.örg', 'Lükäs Réschke')
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
['lukas@öwnclöüd.com'],
|
|
|
|
|
[new Address('lukas@öwnclöüd.com')]
|
|
|
|
|
],
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -37,7 +58,7 @@ class MessageTest extends TestCase {
|
|
|
|
|
*/
|
|
|
|
|
public function getMailAddressProvider() {
|
|
|
|
|
return [
|
|
|
|
|
[null, []],
|
|
|
|
|
[[], []],
|
|
|
|
|
[['lukas@owncloud.com' => 'Lukas Reschke'], ['lukas@owncloud.com' => 'Lukas Reschke']],
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
@ -45,189 +66,158 @@ class MessageTest extends TestCase {
|
|
|
|
|
protected function setUp(): void {
|
|
|
|
|
parent::setUp();
|
|
|
|
|
|
|
|
|
|
$this->swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
$this->symfonyEmail = $this->getMockBuilder(Email::class)
|
|
|
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
|
|
|
|
$this->message = new Message($this->swiftMessage, false);
|
|
|
|
|
$this->message = new Message($this->symfonyEmail, false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @requires function idn_to_ascii
|
|
|
|
|
* @dataProvider mailAddressProvider
|
|
|
|
|
*
|
|
|
|
|
* @param string $unconverted
|
|
|
|
|
* @param string $expected
|
|
|
|
|
*/
|
|
|
|
|
public function testConvertAddresses($unconverted, $expected) {
|
|
|
|
|
$this->assertSame($expected, self::invokePrivate($this->message, 'convertAddresses', [$unconverted]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetFrom() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setFrom')
|
|
|
|
|
->with(['lukas@owncloud.com']);
|
|
|
|
|
$this->message->setFrom(['lukas@owncloud.com']);
|
|
|
|
|
$this->assertEquals($expected, self::invokePrivate($this->message, 'convertAddresses', [$unconverted]));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetRecipients(): void {
|
|
|
|
|
$this->message = $this->message->setFrom(['pierres-general-store@stardewvalley.com' => 'Pierres General Store']);
|
|
|
|
|
$this->message = $this->message->setTo(['lewis-tent@stardewvalley.com' => "Lewis' Tent Life"]);
|
|
|
|
|
$this->message = $this->message->setReplyTo(['penny@stardewvalley-library.co.edu' => 'Penny']);
|
|
|
|
|
$this->message = $this->message->setCc(['gunther@stardewvalley-library.co.edu' => 'Gunther']);
|
|
|
|
|
$this->message = $this->message->setBcc(['pam@stardewvalley-bus.com' => 'Pam']);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider getMailAddressProvider
|
|
|
|
|
*
|
|
|
|
|
* @param $swiftresult
|
|
|
|
|
* @param $return
|
|
|
|
|
*/
|
|
|
|
|
public function testGetFrom($swiftresult, $return) {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('from')
|
|
|
|
|
->willReturn(new Address('pierres-general-store@stardewvalley.com', 'Pierres General Store'));
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('to')
|
|
|
|
|
->willReturn(new Address('lewis-tent@stardewvalley.com', "Lewis' Tent Life"));
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('replyTo')
|
|
|
|
|
->willReturn(new Address('penny@stardewvalley-library.co.edu', 'Penny'));
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('cc')
|
|
|
|
|
->willReturn(new Address('gunther@stardewvalley-library.co.edu', 'Gunther'));
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getFrom')
|
|
|
|
|
->willReturn($swiftresult);
|
|
|
|
|
->method('bcc')
|
|
|
|
|
->willReturn(new Address('pam@stardewvalley-bus.com', 'Pam'));
|
|
|
|
|
|
|
|
|
|
$this->assertSame($return, $this->message->getFrom());
|
|
|
|
|
$this->message->setRecipients();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetReplyTo() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setReplyTo')
|
|
|
|
|
->with(['lukas@owncloud.com']);
|
|
|
|
|
$this->message->setReplyTo(['lukas@owncloud.com']);
|
|
|
|
|
}
|
|
|
|
|
public function testSetTo() {
|
|
|
|
|
$expected = ['pierres-general-store@stardewvalley.com' => 'Pierres General Store'];
|
|
|
|
|
|
|
|
|
|
public function testGetReplyTo() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getReplyTo')
|
|
|
|
|
->willReturn('lukas@owncloud.com');
|
|
|
|
|
$message = $this->message->setTo(['pierres-general-store@stardewvalley.com' => 'Pierres General Store']);
|
|
|
|
|
|
|
|
|
|
$this->assertSame('lukas@owncloud.com', $this->message->getReplyTo());
|
|
|
|
|
$this->assertEquals($expected, $message->getTo());
|
|
|
|
|
}
|
|
|
|
|
public function testSetRecipientsException(): void {
|
|
|
|
|
$message = $this->message->setTo(['lewis-tent@~~~~.com' => "Lewis' Tent Life"]);
|
|
|
|
|
|
|
|
|
|
/** @dataProvider dataSetTo */
|
|
|
|
|
public function testSetTo(array $to, array $expected) {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setTo')
|
|
|
|
|
->with($expected);
|
|
|
|
|
$this->message->setTo($to);
|
|
|
|
|
}
|
|
|
|
|
->method('to')
|
|
|
|
|
->willThrowException(new RfcComplianceException());
|
|
|
|
|
|
|
|
|
|
public function dataSetTo(): array {
|
|
|
|
|
return [
|
|
|
|
|
[['robot@example.com'], ['robot@example.com']],
|
|
|
|
|
[['robot'], ['robot' => 'robot']],
|
|
|
|
|
[['robot' => 'robot display name'], ['robot' => 'robot display name']],
|
|
|
|
|
[['example@🤖.com'], ['example@xn--yp9h.com']],
|
|
|
|
|
[['example@🤖.com' => 'A robot'], ['example@xn--yp9h.com' => 'A robot']],
|
|
|
|
|
];
|
|
|
|
|
$this->expectException(RfcComplianceException::class);
|
|
|
|
|
$message->setRecipients();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider getMailAddressProvider
|
|
|
|
|
*/
|
|
|
|
|
public function testGetTo($swiftresult, $return) {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
public function testSetRecipientsEmptyValues(): void {
|
|
|
|
|
$message = $this->message->setTo([]);
|
|
|
|
|
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getTo')
|
|
|
|
|
->willReturn($swiftresult);
|
|
|
|
|
->method('to');
|
|
|
|
|
|
|
|
|
|
$this->assertSame($return, $this->message->getTo());
|
|
|
|
|
$message->setRecipients();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetCc() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setCc')
|
|
|
|
|
->with(['lukas@owncloud.com']);
|
|
|
|
|
$this->message->setCc(['lukas@owncloud.com']);
|
|
|
|
|
}
|
|
|
|
|
public function testSetGetFrom() {
|
|
|
|
|
$expected = ['pierres-general-store@stardewvalley.com' => 'Pierres General Store'];
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider getMailAddressProvider
|
|
|
|
|
*/
|
|
|
|
|
public function testGetCc($swiftresult, $return) {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getCc')
|
|
|
|
|
->willReturn($swiftresult);
|
|
|
|
|
$message = $this->message->setFrom(['pierres-general-store@stardewvalley.com' => 'Pierres General Store']);
|
|
|
|
|
|
|
|
|
|
$this->assertSame($return, $this->message->getCc());
|
|
|
|
|
$this->assertEquals($expected, $message->getFrom());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetBcc() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setBcc')
|
|
|
|
|
->with(['lukas@owncloud.com']);
|
|
|
|
|
$this->message->setBcc(['lukas@owncloud.com']);
|
|
|
|
|
public function testSetGetTo() {
|
|
|
|
|
$expected = ['lewis-tent@stardewvalley.com' => "Lewis' Tent Life"];
|
|
|
|
|
|
|
|
|
|
$message = $this->message->setTo(['lewis-tent@stardewvalley.com' => "Lewis' Tent Life"]);
|
|
|
|
|
|
|
|
|
|
$this->assertEquals($expected, $message->getTo());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @dataProvider getMailAddressProvider
|
|
|
|
|
*/
|
|
|
|
|
public function testGetBcc($swiftresult, $return) {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getBcc')
|
|
|
|
|
->willReturn($swiftresult);
|
|
|
|
|
public function testSetGetReplyTo() {
|
|
|
|
|
$expected = ['penny@stardewvalley-library.co.edu' => 'Penny'];
|
|
|
|
|
|
|
|
|
|
$this->assertSame($return, $this->message->getBcc());
|
|
|
|
|
$message = $this->message->setReplyTo(['penny@stardewvalley-library.co.edu' => 'Penny']);
|
|
|
|
|
|
|
|
|
|
$this->assertEquals($expected, $message->getReplyTo());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetSubject() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setSubject')
|
|
|
|
|
->with('Fancy Subject');
|
|
|
|
|
public function testSetGetCC() {
|
|
|
|
|
$expected = ['gunther@stardewvalley-library.co.edu' => 'Gunther'];
|
|
|
|
|
|
|
|
|
|
$this->message->setSubject('Fancy Subject');
|
|
|
|
|
$message = $this->message->setCc(['gunther@stardewvalley-library.co.edu' => 'Gunther']);
|
|
|
|
|
|
|
|
|
|
$this->assertEquals($expected, $message->getCc());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetSubject() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getSubject')
|
|
|
|
|
->willReturn('Fancy Subject');
|
|
|
|
|
public function testSetGetBCC() {
|
|
|
|
|
$expected = ['pam@stardewvalley-bus.com' => 'Pam'];
|
|
|
|
|
|
|
|
|
|
$message = $this->message->setBcc(['pam@stardewvalley-bus.com' => 'Pam']);
|
|
|
|
|
|
|
|
|
|
$this->assertSame('Fancy Subject', $this->message->getSubject());
|
|
|
|
|
$this->assertEquals($expected, $message->getBcc());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetPlainBody() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('setBody')
|
|
|
|
|
->method('text')
|
|
|
|
|
->with('Fancy Body');
|
|
|
|
|
|
|
|
|
|
$this->message->setPlainBody('Fancy Body');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetPlainBody() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('getBody')
|
|
|
|
|
->method('getTextBody')
|
|
|
|
|
->willReturn('Fancy Body');
|
|
|
|
|
|
|
|
|
|
$this->assertSame('Fancy Body', $this->message->getPlainBody());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetHtmlBody() {
|
|
|
|
|
$this->swiftMessage
|
|
|
|
|
$this->symfonyEmail
|
|
|
|
|
->expects($this->once())
|
|
|
|
|
->method('addPart')
|
|
|
|
|
->with('<blink>Fancy Body</blink>', 'text/html');
|
|
|
|
|
->method('html')
|
|
|
|
|
->with('<blink>Fancy Body</blink>', 'utf-8');
|
|
|
|
|
|
|
|
|
|
$this->message->setHtmlBody('<blink>Fancy Body</blink>');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testPlainTextRenderOption() {
|
|
|
|
|
/** @var \PHPUnit\Framework\MockObject\MockObject|Swift_Message $swiftMessage */
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
/** @var MockObject|Email $symfonyEmail */
|
|
|
|
|
$symfonyEmail = $this->getMockBuilder(Email::class)
|
|
|
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
|
/** @var \PHPUnit\Framework\MockObject\MockObject|IEMailTemplate $template */
|
|
|
|
|
$template = $this->getMockBuilder('\OCP\Mail\IEMailTemplate')
|
|
|
|
|
/** @var MockObject|IEMailTemplate $template */
|
|
|
|
|
$template = $this->getMockBuilder(IEMailTemplate::class)
|
|
|
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, true);
|
|
|
|
|
$message = new Message($symfonyEmail, true);
|
|
|
|
|
|
|
|
|
|
$template
|
|
|
|
|
->expects($this->never())
|
|
|
|
@ -243,14 +233,14 @@ class MessageTest extends TestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testBothRenderingOptions() {
|
|
|
|
|
/** @var \PHPUnit\Framework\MockObject\MockObject|Swift_Message $swiftMessage */
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
/** @var MockObject|Email $symfonyEmail */
|
|
|
|
|
$symfonyEmail = $this->getMockBuilder(Email::class)
|
|
|
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
|
/** @var \PHPUnit\Framework\MockObject\MockObject|IEMailTemplate $template */
|
|
|
|
|
$template = $this->getMockBuilder('\OCP\Mail\IEMailTemplate')
|
|
|
|
|
/** @var MockObject|IEMailTemplate $template */
|
|
|
|
|
$template = $this->getMockBuilder(IEMailTemplate::class)
|
|
|
|
|
->disableOriginalConstructor()->getMock();
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, false);
|
|
|
|
|
$message = new Message($symfonyEmail, false);
|
|
|
|
|
|
|
|
|
|
$template
|
|
|
|
|
->expects($this->once())
|
|
|
|
@ -266,108 +256,40 @@ class MessageTest extends TestCase {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetAutoSubmitted1() {
|
|
|
|
|
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->disableOriginalClone()
|
|
|
|
|
->disableArgumentCloning()
|
|
|
|
|
->disallowMockingUnknownTypes()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
|
|
|
|
|
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('has')
|
|
|
|
|
->with('Auto-Submitted');
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->never())
|
|
|
|
|
->method('remove');
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('addTextHeader')
|
|
|
|
|
->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED);
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, false);
|
|
|
|
|
$headers = new Headers($this->createMock(HeaderInterface::class));
|
|
|
|
|
$headers->addTextHeader(AutoSubmitted::HEADER, "yes");
|
|
|
|
|
$symfonyEmail = $this->createMock(Email::class);
|
|
|
|
|
|
|
|
|
|
$symfonyEmail->method('getHeaders')
|
|
|
|
|
->willReturn($headers);
|
|
|
|
|
|
|
|
|
|
$message = new Message($symfonyEmail, false);
|
|
|
|
|
$message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED);
|
|
|
|
|
$this->assertNotSame('no', $message->getAutoSubmitted());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testSetAutoSubmitted2() {
|
|
|
|
|
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->disableOriginalClone()
|
|
|
|
|
->disableArgumentCloning()
|
|
|
|
|
->disallowMockingUnknownTypes()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
|
|
|
|
|
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('has')
|
|
|
|
|
->with('Auto-Submitted')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('remove')
|
|
|
|
|
->with('Auto-Submitted');
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('addTextHeader')
|
|
|
|
|
->with('Auto-Submitted', AutoSubmitted::VALUE_AUTO_GENERATED);
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, false);
|
|
|
|
|
$headers = new Headers($this->createMock(HeaderInterface::class));
|
|
|
|
|
$headers->addTextHeader(AutoSubmitted::HEADER, 'no');
|
|
|
|
|
$symfonyEmail = $this->createMock(Email::class);
|
|
|
|
|
|
|
|
|
|
$symfonyEmail->method('getHeaders')
|
|
|
|
|
->willReturn($headers);
|
|
|
|
|
|
|
|
|
|
$message = new Message($symfonyEmail, false);
|
|
|
|
|
$message->setAutoSubmitted(AutoSubmitted::VALUE_AUTO_GENERATED);
|
|
|
|
|
$this->assertSame('auto-generated', $message->getAutoSubmitted());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function testGetAutoSubmitted1() {
|
|
|
|
|
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->disableOriginalClone()
|
|
|
|
|
->disableArgumentCloning()
|
|
|
|
|
->disallowMockingUnknownTypes()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
|
|
|
|
|
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('has')
|
|
|
|
|
->with('Auto-Submitted');
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->never())
|
|
|
|
|
->method('get');
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, false);
|
|
|
|
|
public function testGetAutoSubmitted() {
|
|
|
|
|
$headers = new Headers($this->createMock(HeaderInterface::class));
|
|
|
|
|
$headers->addTextHeader(AutoSubmitted::HEADER, 'no');
|
|
|
|
|
$symfonyEmail = $this->createMock(Email::class);
|
|
|
|
|
|
|
|
|
|
$symfonyEmail->method('getHeaders')
|
|
|
|
|
->willReturn($headers);
|
|
|
|
|
|
|
|
|
|
$message = new Message($symfonyEmail, false);
|
|
|
|
|
$this->assertSame("no", $message->getAutoSubmitted());
|
|
|
|
|
}
|
|
|
|
|
public function testGetAutoSubmitted2() {
|
|
|
|
|
$swiftMimeHeader = $this->getMockBuilder('\Swift_Mime_Header')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMockForAbstractClass();
|
|
|
|
|
$swiftMimeSimpleHeaderSet = $this->getMockBuilder('\Swift_Mime_SimpleHeaderSet')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->getMock();
|
|
|
|
|
$swiftMessage = $this->getMockBuilder('\Swift_Message')
|
|
|
|
|
->disableOriginalConstructor()
|
|
|
|
|
->disableOriginalClone()
|
|
|
|
|
->disableArgumentCloning()
|
|
|
|
|
->disallowMockingUnknownTypes()
|
|
|
|
|
->getMock();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$swiftMessage->method('getHeaders')->willReturn($swiftMimeSimpleHeaderSet);
|
|
|
|
|
$swiftMimeHeader->method('toString')->willReturn(AutoSubmitted::VALUE_AUTO_GENERATED);
|
|
|
|
|
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('has')
|
|
|
|
|
->with('Auto-Submitted')
|
|
|
|
|
->willReturn(true);
|
|
|
|
|
$swiftMimeSimpleHeaderSet->expects($this->once())
|
|
|
|
|
->method('get')
|
|
|
|
|
->willReturn($swiftMimeHeader);
|
|
|
|
|
|
|
|
|
|
$message = new Message($swiftMessage, false);
|
|
|
|
|
$this->assertSame(AutoSubmitted::VALUE_AUTO_GENERATED, $message->getAutoSubmitted());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|