summaryrefslogtreecommitdiffstats
path: root/tests/lib/Mail
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2016-05-20 15:38:20 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-05-20 15:38:20 +0200
commit94ad54ec9b96d41a614fbbad4a97b34c41a6901f (patch)
treef3eb7cdda2704aaf0cd59d58efe66bcbd34cb67d /tests/lib/Mail
parent2ef751b1ec28f7b5c7113af60ec8c9fa0ae1cf87 (diff)
downloadnextcloud-server-94ad54ec9b96d41a614fbbad4a97b34c41a6901f.tar.gz
nextcloud-server-94ad54ec9b96d41a614fbbad4a97b34c41a6901f.zip
Move tests/ to PSR-4 (#24731)
* Move a-b to PSR-4 * Move c-d to PSR-4 * Move e+g to PSR-4 * Move h-l to PSR-4 * Move m-r to PSR-4 * Move s-u to PSR-4 * Move files/ to PSR-4 * Move remaining tests to PSR-4 * Remove Test\ from old autoloader
Diffstat (limited to 'tests/lib/Mail')
-rw-r--r--tests/lib/Mail/MailerTest.php123
-rw-r--r--tests/lib/Mail/MessageTest.php183
2 files changed, 306 insertions, 0 deletions
diff --git a/tests/lib/Mail/MailerTest.php b/tests/lib/Mail/MailerTest.php
new file mode 100644
index 00000000000..c63ceb5982a
--- /dev/null
+++ b/tests/lib/Mail/MailerTest.php
@@ -0,0 +1,123 @@
+<?php
+/**
+ * Copyright (c) 2014-2015 Lukas Reschke <lukas@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Mail;
+
+use OC\Mail\Mailer;
+use OCP\IConfig;
+use OC_Defaults;
+use OCP\ILogger;
+use Test\TestCase;
+
+class MailerTest extends TestCase {
+ /** @var IConfig */
+ private $config;
+ /** @var OC_Defaults */
+ private $defaults;
+ /** @var ILogger */
+ private $logger;
+ /** @var Mailer */
+ private $mailer;
+
+ function setUp() {
+ parent::setUp();
+
+ $this->config = $this->getMockBuilder('\OCP\IConfig')
+ ->disableOriginalConstructor()->getMock();
+ $this->defaults = $this->getMockBuilder('\OC_Defaults')
+ ->disableOriginalConstructor()->getMock();
+ $this->logger = $this->getMockBuilder('\OCP\ILogger')
+ ->disableOriginalConstructor()->getMock();
+ $this->mailer = new Mailer($this->config, $this->logger, $this->defaults);
+ }
+
+ public function testGetMailInstance() {
+ $this->assertEquals(\Swift_MailTransport::newInstance(), self::invokePrivate($this->mailer, 'getMailinstance'));
+ }
+
+ public function testGetSendMailInstanceSendMail() {
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValue')
+ ->with('mail_smtpmode', 'sendmail')
+ ->will($this->returnValue('sendmail'));
+
+ $this->assertEquals(\Swift_SendmailTransport::newInstance('/usr/sbin/sendmail -bs'), self::invokePrivate($this->mailer, 'getSendMailInstance'));
+ }
+
+ public function testGetSendMailInstanceSendMailQmail() {
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValue')
+ ->with('mail_smtpmode', 'sendmail')
+ ->will($this->returnValue('qmail'));
+
+ $this->assertEquals(\Swift_SendmailTransport::newInstance('/var/qmail/bin/sendmail -bs'), self::invokePrivate($this->mailer, 'getSendMailInstance'));
+ }
+
+ public function testGetInstanceDefault() {
+ $this->assertInstanceOf('\Swift_MailTransport', self::invokePrivate($this->mailer, 'getInstance'));
+ }
+
+ public function testGetInstancePhp() {
+ $this->config
+ ->expects($this->any())
+ ->method('getSystemValue')
+ ->will($this->returnValue('php'));
+
+ $this->assertInstanceOf('\Swift_MailTransport', self::invokePrivate($this->mailer, 'getInstance'));
+ }
+
+ public function testGetInstanceSendmail() {
+ $this->config
+ ->expects($this->any())
+ ->method('getSystemValue')
+ ->will($this->returnValue('sendmail'));
+
+ $this->assertInstanceOf('\Swift_Mailer', self::invokePrivate($this->mailer, 'getInstance'));
+ }
+
+ public function testCreateMessage() {
+ $this->assertInstanceOf('\OC\Mail\Message', $this->mailer->createMessage());
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ public function testSendInvalidMailException() {
+ $message = $this->getMockBuilder('\OC\Mail\Message')
+ ->disableOriginalConstructor()->getMock();
+ $message->expects($this->once())
+ ->method('getSwiftMessage')
+ ->will($this->returnValue(new \Swift_Message()));
+
+ $this->mailer->send($message);
+ }
+
+ /**
+ * @return array
+ */
+ public function mailAddressProvider() {
+ return [
+ ['lukas@owncloud.com', true],
+ ['lukas@localhost', true],
+ ['lukas@192.168.1.1', true],
+ ['lukas@éxämplè.com', true],
+ ['asdf', false],
+ ['lukas@owncloud.org@owncloud.com', false],
+ ];
+ }
+
+ /**
+ * @dataProvider mailAddressProvider
+ */
+ public function testValidateMailAddress($email, $expected) {
+ $this->assertSame($expected, $this->mailer->validateMailAddress($email));
+ }
+
+}
diff --git a/tests/lib/Mail/MessageTest.php b/tests/lib/Mail/MessageTest.php
new file mode 100644
index 00000000000..691168ce24c
--- /dev/null
+++ b/tests/lib/Mail/MessageTest.php
@@ -0,0 +1,183 @@
+<?php
+/**
+ * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Mail;
+
+use OC\Mail\Message;
+use Swift_Message;
+use Test\TestCase;
+
+class MessageTest extends TestCase {
+ /** @var Swift_Message */
+ private $swiftMessage;
+ /** @var Message */
+ private $message;
+
+ /**
+ * @return array
+ */
+ public function mailAddressProvider() {
+ return array(
+ array(array('lukas@owncloud.com' => 'Lukas Reschke'), array('lukas@owncloud.com' => 'Lukas Reschke')),
+ array(array('lukas@owncloud.com' => 'Lukas Reschke', 'lukas@öwnclöüd.com', 'lukäs@owncloud.örg' => 'Lükäs Réschke'),
+ array('lukas@owncloud.com' => 'Lukas Reschke', 'lukas@xn--wncld-iuae2c.com', 'lukäs@owncloud.xn--rg-eka' => 'Lükäs Réschke')),
+ array(array('lukas@öwnclöüd.com'), array('lukas@xn--wncld-iuae2c.com'))
+ );
+ }
+
+ function setUp() {
+ parent::setUp();
+
+ $this->swiftMessage = $this->getMockBuilder('\Swift_Message')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->message = new Message($this->swiftMessage);
+ }
+
+ /**
+ * @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', array($unconverted)));
+ }
+
+ public function testSetFrom() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setFrom')
+ ->with(array('lukas@owncloud.com'));
+ $this->message->setFrom(array('lukas@owncloud.com'));
+ }
+
+ public function testGetFrom() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getFrom')
+ ->will($this->returnValue(array('lukas@owncloud.com')));
+
+ $this->assertSame(array('lukas@owncloud.com'), $this->message->getFrom());
+ }
+
+ public function testSetReplyTo() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setReplyTo')
+ ->with(['lukas@owncloud.com']);
+ $this->message->setReplyTo(['lukas@owncloud.com']);
+ }
+
+ public function testGetReplyTo() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getReplyTo')
+ ->will($this->returnValue(['lukas@owncloud.com']));
+
+ $this->assertSame(['lukas@owncloud.com'], $this->message->getReplyTo());
+ }
+
+ public function testSetTo() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setTo')
+ ->with(array('lukas@owncloud.com'));
+ $this->message->setTo(array('lukas@owncloud.com'));
+ }
+
+ public function testGetTo() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getTo')
+ ->will($this->returnValue(array('lukas@owncloud.com')));
+
+ $this->assertSame(array('lukas@owncloud.com'), $this->message->getTo());
+ }
+
+ public function testSetCc() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setCc')
+ ->with(array('lukas@owncloud.com'));
+ $this->message->setCc(array('lukas@owncloud.com'));
+ }
+
+ public function testGetCc() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getCc')
+ ->will($this->returnValue(array('lukas@owncloud.com')));
+
+ $this->assertSame(array('lukas@owncloud.com'), $this->message->getCc());
+ }
+
+ public function testSetBcc() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setBcc')
+ ->with(array('lukas@owncloud.com'));
+ $this->message->setBcc(array('lukas@owncloud.com'));
+ }
+
+ public function testGetBcc() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getBcc')
+ ->will($this->returnValue(array('lukas@owncloud.com')));
+
+ $this->assertSame(array('lukas@owncloud.com'), $this->message->getBcc());
+ }
+
+ public function testSetSubject() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setSubject')
+ ->with('Fancy Subject');
+
+ $this->message->setSubject('Fancy Subject');
+ }
+
+ public function testGetSubject() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getSubject')
+ ->will($this->returnValue('Fancy Subject'));
+
+ $this->assertSame('Fancy Subject', $this->message->getSubject());
+ }
+
+ public function testSetPlainBody() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('setBody')
+ ->with('Fancy Body');
+
+ $this->message->setPlainBody('Fancy Body');
+ }
+
+ public function testGetPlainBody() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('getBody')
+ ->will($this->returnValue('Fancy Body'));
+
+ $this->assertSame('Fancy Body', $this->message->getPlainBody());
+ }
+
+ public function testSetHtmlBody() {
+ $this->swiftMessage
+ ->expects($this->once())
+ ->method('addPart')
+ ->with('<blink>Fancy Body</blink>', 'text/html');
+
+ $this->message->setHtmlBody('<blink>Fancy Body</blink>');
+ }
+
+}