config = $this->getMockBuilder(IConfig::class)->getMock(); $this->l10n = $this->getMockBuilder(IL10N::class)->getMock(); $this->admin = new Mail( $this->config, $this->l10n ); } public static function dataGetForm(): array { return [ [true], [false], ]; } /** @dataProvider dataGetForm */ public function testGetForm(bool $sendmail) { $finder = $this->createMock(IBinaryFinder::class); $finder->expects(self::once()) ->method('findBinaryPath') ->with('sendmail') ->willReturn($sendmail ? '/usr/bin/sendmail': false); $this->overwriteService(IBinaryFinder::class, $finder); $this->config ->expects($this->any()) ->method('getSystemValue') ->willReturnMap([ ['mail_domain', '', 'mx.nextcloud.com'], ['mail_from_address', '', 'no-reply@nextcloud.com'], ['mail_smtpmode', '', 'smtp'], ['mail_smtpsecure', '', true], ['mail_smtphost', '', 'smtp.nextcloud.com'], ['mail_smtpport', '', 25], ['mail_smtpauth', false, true], ['mail_smtpname', '', 'smtp.sender.com'], ['mail_smtppassword', '', 'mypassword'], ['mail_sendmailmode', 'smtp', 'smtp'], ]); $expected = new TemplateResponse( 'settings', 'settings/admin/additional-mail', [ 'sendmail_is_available' => $sendmail, 'mail_domain' => 'mx.nextcloud.com', 'mail_from_address' => 'no-reply@nextcloud.com', 'mail_smtpmode' => 'smtp', 'mail_smtpsecure' => true, 'mail_smtphost' => 'smtp.nextcloud.com', 'mail_smtpport' => 25, 'mail_smtpauth' => true, 'mail_smtpname' => 'smtp.sender.com', 'mail_smtppassword' => '********', 'mail_sendmailmode' => 'smtp', ], '' ); $this->assertEquals($expected, $this->admin->getForm()); } public function testGetSection(): void { $this->assertSame('server', $this->admin->getSection()); } public function testGetPriority(): void { $this->assertSame(10, $this->admin->getPriority()); } }