Skip to content

Commit

Permalink
Add testcases for pipe mode
Browse files Browse the repository at this point in the history
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
  • Loading branch information
kesselb committed Nov 29, 2018
1 parent 92675a6 commit 4a2c56b
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 14 deletions.
8 changes: 6 additions & 2 deletions tests/Settings/Controller/MailSettingsControllerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public function testSetMailSettings() {
'mail_smtpauthtype' => 'NTLM',
'mail_smtpauth' => 1,
'mail_smtpport' => '25',
'mail_sendmailmode' => null,
]],
[[
'mail_domain' => 'nextcloud.com',
Expand All @@ -86,6 +87,7 @@ public function testSetMailSettings() {
'mail_smtpport' => '25',
'mail_smtpname' => null,
'mail_smtppassword' => null,
'mail_sendmailmode' => null,
]]
);

Expand All @@ -98,7 +100,8 @@ public function testSetMailSettings() {
'mx.nextcloud.org',
'NTLM',
1,
'25'
'25',
null
);
$this->assertSame(Http::STATUS_OK, $response->getStatus());

Expand All @@ -111,7 +114,8 @@ public function testSetMailSettings() {
'mx.nextcloud.org',
'NTLM',
0,
'25'
'25',
null
);
$this->assertSame(Http::STATUS_OK, $response->getStatus());

Expand Down
50 changes: 38 additions & 12 deletions tests/lib/Mail/MailerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,30 +48,54 @@ public function setUp() {
);
}

public function testGetSendMailInstanceSendMail() {
/**
* @return array
*/
public function sendmailModeProvider(): array {
return [
'smtp' => ['smtp', ' -bs'],
'pipe' => ['pipe', ' -t'],
];
}

/**
* @dataProvider sendmailModeProvider
* @param $sendmailMode
* @param $binaryParam
*/
public function testGetSendmailInstanceSendMail($sendmailMode, $binaryParam) {
$this->config
->expects($this->once())
->expects($this->exactly(2))
->method('getSystemValue')
->with('mail_smtpmode', 'smtp')
->will($this->returnValue('sendmail'));
->will($this->returnValueMap([
['mail_smtpmode', 'smtp', 'sendmail'],
['mail_sendmailmode', 'smtp', $sendmailMode],
]));

$path = \OC_Helper::findBinaryPath('sendmail');
if ($path === null) {
$path = '/usr/sbin/sendmail';
}

$expected = new \Swift_SendmailTransport($path . ' -bs');
$expected = new \Swift_SendmailTransport($path . $binaryParam);
$this->assertEquals($expected, self::invokePrivate($this->mailer, 'getSendMailInstance'));
}

public function testGetSendMailInstanceSendMailQmail() {
/**
* @dataProvider sendmailModeProvider
* @param $sendmailMode
* @param $binaryParam
*/
public function testGetSendmailInstanceSendMailQmail($sendmailMode, $binaryParam) {
$this->config
->expects($this->once())
->expects($this->exactly(2))
->method('getSystemValue')
->with('mail_smtpmode', 'smtp')
->will($this->returnValue('qmail'));
->will($this->returnValueMap([
['mail_smtpmode', 'smtp', 'qmail'],
['mail_sendmailmode', 'smtp', $sendmailMode],
]));

$this->assertEquals(new \Swift_SendmailTransport('/var/qmail/bin/sendmail -bs'), self::invokePrivate($this->mailer, 'getSendMailInstance'));
$this->assertEquals(new \Swift_SendmailTransport('/var/qmail/bin/sendmail' . $binaryParam), self::invokePrivate($this->mailer, 'getSendMailInstance'));
}

public function testGetInstanceDefault() {
Expand All @@ -83,8 +107,10 @@ public function testGetInstanceDefault() {
public function testGetInstanceSendmail() {
$this->config
->method('getSystemValue')
->with('mail_smtpmode', 'smtp')
->willReturn('sendmail');
->will($this->returnValueMap([
['mail_smtpmode', 'smtp', 'sendmail'],
['mail_sendmailmode', 'smtp', 'smtp'],
]));

$mailer = self::invokePrivate($this->mailer, 'getInstance');
$this->assertInstanceOf(\Swift_Mailer::class, $mailer);
Expand Down
6 changes: 6 additions & 0 deletions tests/lib/Settings/Admin/MailTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,11 @@ public function testGetForm() {
->method('getSystemValue')
->with('mail_smtppassword', '')
->willReturn('mypassword');
$this->config
->expects($this->at(10))
->method('getSystemValue')
->with('mail_sendmailmode', 'smtp')
->willReturn('smtp');

$expected = new TemplateResponse(
'settings',
Expand All @@ -111,6 +116,7 @@ public function testGetForm() {
'mail_smtpauth' => true,
'mail_smtpname' => 'smtp.sender.com',
'mail_smtppassword' => '********',
'mail_sendmailmode' => 'smtp',
],
''
);
Expand Down

0 comments on commit 4a2c56b

Please sign in to comment.