From 482e4d145110a4a59da49a86895964be4118d60a Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 10 May 2022 12:10:18 +1200 Subject: [PATCH] Add test to ensure emails are validated & remove duplicate validation --- CRM/Contact/Import/Parser/Contact.php | 28 ------------------- .../Form/data/individual_invalid_email.csv | 2 ++ .../data/individual_invalid_related_email.csv | 2 ++ .../CRM/Contact/Import/Parser/ContactTest.php | 10 +++++++ 4 files changed, 14 insertions(+), 28 deletions(-) create mode 100644 tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_email.csv create mode 100644 tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_related_email.csv diff --git a/CRM/Contact/Import/Parser/Contact.php b/CRM/Contact/Import/Parser/Contact.php index 842e819f83..9efce26250 100644 --- a/CRM/Contact/Import/Parser/Contact.php +++ b/CRM/Contact/Import/Parser/Contact.php @@ -2216,27 +2216,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser { * @throw CRM_Core_Error */ public function deprecated_validate_formatted_contact(&$params): void { - // Look for offending email addresses - - if (array_key_exists('email', $params)) { - foreach ($params['email'] as $count => $values) { - if (!is_array($values)) { - continue; - } - if ($email = CRM_Utils_Array::value('email', $values)) { - // validate each email - if (!CRM_Utils_Rule::email($email)) { - throw new CRM_Core_Exception('No valid email address'); - } - - // check for loc type id. - if (empty($values['location_type_id'])) { - throw new CRM_Core_Exception('Location Type Id missing.'); - } - } - } - } - // Validate custom data fields if (array_key_exists('custom', $params) && is_array($params['custom'])) { foreach ($params['custom'] as $key => $custom) { @@ -3341,13 +3320,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser { throw new CRM_Core_Exception($errorMessage); } } - - $email = $values[$this->_emailIndex] ?? NULL; - if ($email) { - if (!CRM_Utils_Rule::email($email)) { - throw new CRM_Core_Exception($errorMessage); - } - } } elseif ($errorRequired && !$this->_updateWithId) { if ($errorMessage) { diff --git a/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_email.csv b/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_email.csv new file mode 100644 index 0000000000..c9f3471156 --- /dev/null +++ b/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_email.csv @@ -0,0 +1,2 @@ +Dads email,First Name,Last Name +joseph-email.com,Joseph,Savage diff --git a/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_related_email.csv b/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_related_email.csv new file mode 100644 index 0000000000..aa961fb06f --- /dev/null +++ b/tests/phpunit/CRM/Contact/Import/Form/data/individual_invalid_related_email.csv @@ -0,0 +1,2 @@ +email,First Name,Last Name +joseph-email.com,Joseph,Savage diff --git a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php index 4a8d07cc2b..f6a6ad253c 100644 --- a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php +++ b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php @@ -743,6 +743,16 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'mapper' => [['last_name']], 'expected_error' => 'Missing required fields: First Name OR Email Address', ], + 'individual_bad_email' => [ + 'csv' => 'individual_invalid_email.csv', + 'mapper' => [['email', 1], ['first_name'], ['last_name']], + 'expected_error' => 'Invalid value for field(s) : email', + ], + 'individual_related_bad_email' => [ + 'csv' => 'individual_invalid_related_email.csv', + 'mapper' => [['1_a_b', 'email', 1], ['first_name'], ['last_name']], + 'expected_error' => 'Invalid value for field(s) : email', + ], ]; } -- 2.25.1