]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix undefined offset 1 for wrong user mail address
authorMorris Jobke <hey@morrisjobke.de>
Thu, 22 Jan 2015 14:17:29 +0000 (15:17 +0100)
committerMorris Jobke <hey@morrisjobke.de>
Thu, 22 Jan 2015 15:23:50 +0000 (16:23 +0100)
* fixes Undefined offset: 1 at lib/private/mail.php#143

lib/private/mail.php
tests/lib/mail.php

index 8ba7343e01192d76cd4cf7e63dae6b7e23beba93..6b7eec6e0807f66eedeebbf1107a5c0e250b2efb 100644 (file)
@@ -126,6 +126,9 @@ class OC_Mail {
         * @return bool
         */
        public static function validateAddress($emailAddress) {
+               if (strpos($emailAddress, '@') === false) {
+                       return false;
+               }
                $emailAddress = self::buildAsciiEmail($emailAddress);
                return PHPMailer::ValidateAddress($emailAddress);
        }
index 568ecff52b0636189d0c0aa09ea0cef4d8e5480b..813dde1944f5c9c8e466dedd5e5d712a5dfbcd94 100644 (file)
@@ -8,28 +8,23 @@
 
 class Test_Mail extends \Test\TestCase {
 
-       protected function setUp()
-       {
-               parent::setUp();
-
-               if (!function_exists('idn_to_ascii')) {
-                       $this->markTestSkipped(
-                               'The intl extension is not available.'
-                       );
-               }
-       }
-
        /**
         * @dataProvider buildAsciiEmailProvider
         * @param $expected
         * @param $address
         */
        public function testBuildAsciiEmail($expected, $address) {
+               if (!function_exists('idn_to_ascii')) {
+                       $this->markTestSkipped(
+                               'The intl extension is not available.'
+                       );
+               }
+
                $actual = \OC_Mail::buildAsciiEmail($address);
                $this->assertEquals($expected, $actual);
        }
 
-       function buildAsciiEmailProvider() {
+       public function buildAsciiEmailProvider() {
                return array(
                        array('info@example.com', 'info@example.com'),
                        array('info@xn--cjr6vy5ejyai80u.com', 'info@國際化域名.com'),
@@ -38,4 +33,21 @@ class Test_Mail extends \Test\TestCase {
                );
        }
 
+       public function validateMailProvider() {
+               return array(
+                       array('infoatexample.com', false),
+                       array('info', false),
+               );
+       }
+
+       /**
+        * @dataProvider validateMailProvider
+        * @param $address
+        * @param $expected
+        */
+       public function testValidateEmail($address, $expected) {
+               $actual = \OC_Mail::validateAddress($address);
+               $this->assertEquals($expected, $actual);
+       }
+
 }