From 183e49f5a8770ad3db5a61011b2a62d2aa5b2f9a Mon Sep 17 00:00:00 2001
From: Florian Mast <flo.mast@web.de>
Date: Fri, 4 Mar 2016 15:53:07 +0100
Subject: [PATCH] [BUGFIX] EXT:form Validation of email

Validation of email should respect empty value

Resolves: #54534
Releases: master,7.6
Change-Id: I40c865b42fe7960dd7ab85f710df1045cd04adf0
Reviewed-on: https://review.typo3.org/47059
Reviewed-by: Nicole Cordes <typo3@cordes.co>
Tested-by: Nicole Cordes <typo3@cordes.co>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Jan Helke <typo3@helke.de>
Tested-by: Jan Helke <typo3@helke.de>
---
 .../form/Classes/Domain/Validator/EmailValidator.php  | 11 ++++++++++-
 .../form/Tests/Unit/Validator/EmailValidatorTest.php  |  4 +++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/typo3/sysext/form/Classes/Domain/Validator/EmailValidator.php b/typo3/sysext/form/Classes/Domain/Validator/EmailValidator.php
index df8a2667d648..edb05fcb1818 100755
--- a/typo3/sysext/form/Classes/Domain/Validator/EmailValidator.php
+++ b/typo3/sysext/form/Classes/Domain/Validator/EmailValidator.php
@@ -14,6 +14,11 @@ namespace TYPO3\CMS\Form\Domain\Validator;
  * The TYPO3 project - inspiring people to share!
  */
 
+use TYPO3\CMS\Core\Utility\GeneralUtility;
+
+/**
+ * Class EmailValidator
+ */
 class EmailValidator extends AbstractValidator
 {
     /**
@@ -32,7 +37,11 @@ class EmailValidator extends AbstractValidator
      */
     public function isValid($value)
     {
-        if (!\TYPO3\CMS\Core\Utility\GeneralUtility::validEmail($value)) {
+        if (empty($value) || !is_string($value)) {
+            return;
+        }
+
+        if (!GeneralUtility::validEmail($value)) {
             $this->addError(
                 $this->renderMessage(
                     $this->options['errorMessage'][0],
diff --git a/typo3/sysext/form/Tests/Unit/Validator/EmailValidatorTest.php b/typo3/sysext/form/Tests/Unit/Validator/EmailValidatorTest.php
index cab00fea40cd..f9ed70babf3b 100644
--- a/typo3/sysext/form/Tests/Unit/Validator/EmailValidatorTest.php
+++ b/typo3/sysext/form/Tests/Unit/Validator/EmailValidatorTest.php
@@ -31,7 +31,9 @@ class EmailValidatorTest extends AbstractValidatorTest
     {
         return array(
             'a@b.de' => array('a@b.de'),
-            'somebody@mymac.local' => array('somebody@mymac.local')
+            'somebody@mymac.local' => array('somebody@mymac.local'),
+            'empty value' => array(''),
+            'unexpected value' => array(array()),
         );
     }
 
-- 
GitLab