Show more detailed error message

This commit is contained in:
Lukas Reschke 2015-02-19 21:55:02 +01:00
parent dfd70337d6
commit e32f1582c7
4 changed files with 16 additions and 35 deletions

View File

@ -149,6 +149,7 @@ class Mailer implements IMailer {
if (!empty($smtpSecurity)) {
$transport->setEncryption($smtpSecurity);
}
$transport->start();
return $transport;
}

View File

@ -135,19 +135,19 @@ class MailSettingsController extends Controller {
$email = $this->config->getUserValue($this->userSession->getUser()->getUID(), $this->appName, 'email', '');
if (!empty($email)) {
try {
$this->mail->send($email, $this->userSession->getUser()->getDisplayName(),
$this->l10n->t('test email settings'),
$this->l10n->t('If you received this email, the settings seem to be correct.'),
$this->defaultMailAddress,
$this->defaults->getName()
);
$message = $this->mailer->createMessage();
$message->setTo([$email => $this->userSession->getUser()->getDisplayName()]);
$message->setFrom([$this->defaultMailAddress]);
$message->setSubject($this->l10n->t('test email settings'));
$message->setPlainBody('If you received this email, the settings seem to be correct.');
$this->mailer->send($message);
} catch (\Exception $e) {
return array('data' =>
array('message' =>
(string) $this->l10n->t('A problem occurred while sending the email. Please revise your settings.'),
),
'status' => 'error'
);
return [
'data' => [
'message' => (string) $this->l10n->t('A problem occurred while sending the email. Please revise your settings. (Error: %s)', [$e->getMessage()]),
],
'status' => 'error',
];
}
return array('data' =>

View File

@ -53,20 +53,6 @@ class MailerTest extends TestCase {
$this->assertEquals(\Swift_SendmailTransport::newInstance('/var/qmail/bin/sendmail -bs'), \Test_Helper::invokePrivate($this->mailer, 'getSendMailInstance'));
}
public function testGetSmtpInstanceDefaults() {
$expected = \Swift_SmtpTransport::newInstance();
$expected->setHost('127.0.0.1');
$expected->setTimeout(10);
$expected->setPort(25);
$this->config
->expects($this->any())
->method('getSystemValue')
->will($this->returnArgument(1));
$this->assertEquals($expected, \Test_Helper::invokePrivate($this->mailer, 'getSmtpInstance'));
}
public function testGetInstanceDefault() {
$this->assertInstanceOf('\Swift_MailTransport', \Test_Helper::invokePrivate($this->mailer, 'getInstance'));
}
@ -80,15 +66,6 @@ class MailerTest extends TestCase {
$this->assertInstanceOf('\Swift_MailTransport', \Test_Helper::invokePrivate($this->mailer, 'getInstance'));
}
public function testGetInstanceSmtp() {
$this->config
->expects($this->any())
->method('getSystemValue')
->will($this->returnValue('smtp'));
$this->assertInstanceOf('\Swift_SmtpTransport', \Test_Helper::invokePrivate($this->mailer, 'getInstance'));
}
public function testGetInstanceSendmail() {
$this->config
->expects($this->any())

View File

@ -32,6 +32,9 @@ class MailSettingsControllerTest extends \Test\TestCase {
->disableOriginalConstructor()->getMock();
$this->container['MailMessage'] = $this->getMockBuilder('\OCP\Mail\IMessage')
->disableOriginalConstructor()->getMock();
$this->container['Mailer'] = $this->getMockBuilder('\OC\Mail\Mailer')
->setMethods(['send'])
->disableOriginalConstructor()->getMock();
$this->container['Defaults'] = $this->getMockBuilder('\OC_Defaults')
->disableOriginalConstructor()->getMock();
$this->container['DefaultMailAddress'] = 'no-reply@owncloud.com';