From b4201481ec9983b70e3f79c1f9376dc8629f9650 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Wed, 13 Jul 2022 17:03:12 +1200 Subject: [PATCH] dev/core#3733 [Import] Test & fix for source updating when it should fill --- CRM/Contact/Import/Parser/Contact.php | 4 ---- CRM/Import/Parser.php | 1 + .../CRM/Contact/Import/Form/data/individual_with_source.csv | 2 ++ tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php | 6 +++++- 4 files changed, 8 insertions(+), 5 deletions(-) create mode 100644 tests/phpunit/CRM/Contact/Import/Form/data/individual_with_source.csv diff --git a/CRM/Contact/Import/Parser/Contact.php b/CRM/Contact/Import/Parser/Contact.php index b85f3c5afc..3d4dbd616f 100644 --- a/CRM/Contact/Import/Parser/Contact.php +++ b/CRM/Contact/Import/Parser/Contact.php @@ -1009,10 +1009,6 @@ class CRM_Contact_Import_Parser_Contact extends CRM_Import_Parser { else { $getValue = CRM_Utils_Array::retrieveValueRecursive($contact, $key); } - if ($key == 'contact_source') { - $params['source'] = $params[$key]; - unset($params[$key]); - } if ($modeFill && isset($getValue)) { unset($params[$key]); diff --git a/CRM/Import/Parser.php b/CRM/Import/Parser.php index 002aa473b0..d8bd0fb561 100644 --- a/CRM/Import/Parser.php +++ b/CRM/Import/Parser.php @@ -1762,6 +1762,7 @@ abstract class CRM_Import_Parser implements UserJobInterface { 'email_greeting_id' => 'email_greeting', 'postal_greeting_id' => 'postal_greeting', 'addressee_id' => 'addressee', + 'source' => 'contact_source', ]; } diff --git a/tests/phpunit/CRM/Contact/Import/Form/data/individual_with_source.csv b/tests/phpunit/CRM/Contact/Import/Form/data/individual_with_source.csv new file mode 100644 index 0000000000..1f3b6c4c88 --- /dev/null +++ b/tests/phpunit/CRM/Contact/Import/Form/data/individual_with_source.csv @@ -0,0 +1,2 @@ +First Name,Last Name,External Identifier,Source one, Source two +Santa,Claus,xmas,North pole,Chimney diff --git a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php index b9392c3653..2987350adb 100644 --- a/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php +++ b/tests/phpunit/CRM/Contact/Import/Parser/ContactTest.php @@ -1538,6 +1538,7 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'email' => $original_email, 'gender' => $original_gender, 'custom_' . $customField1 => $original_custom1, + 'source' => 'original', ]; $result = $this->callAPISuccess('contact', 'create', $api_params); $contact_id = $result['id']; @@ -1549,6 +1550,7 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'custom_' . $customField1 => $import_custom1, 'job_title' => $import_job_title, 'custom_' . $customField2 => $import_custom2, + 'contact_source' => 'changed', ]; $this->runImport($import, CRM_Import_Parser::DUPLICATE_FILL, CRM_Import_Parser::VALID); @@ -1558,6 +1560,7 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'custom_' . $customField1 => $original_custom1, 'job_title' => $import_job_title, 'custom_' . $customField2 => $import_custom2, + 'contact_source' => 'original', ]; $params = [ @@ -1567,9 +1570,10 @@ class CRM_Contact_Import_Parser_ContactTest extends CiviUnitTestCase { 'custom_' . $customField1, 'job_title', 'custom_' . $customField2, + 'contact_source', ], ]; - $result = civicrm_api3('Contact', 'get', $params); + $result = $this->callAPISuccess('Contact', 'get', $params); $values = array_pop($result['values']); foreach ($expected as $field => $expected_value) { if (!isset($values[$field])) { -- 2.25.1