From fe6daa046ffc4be7fd07ca737cc43ebd594f669a Mon Sep 17 00:00:00 2001 From: eileen Date: Fri, 7 Jun 2013 08:55:20 +1200 Subject: [PATCH] CRM-12773 handle null custom fields without fatal --- api/v3/utils.php | 2 +- tests/phpunit/api/v3/ContactTest.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/api/v3/utils.php b/api/v3/utils.php index b80e317ded..c06247340d 100644 --- a/api/v3/utils.php +++ b/api/v3/utils.php @@ -810,7 +810,7 @@ function _civicrm_api3_custom_format_params($params, &$values, $extends, $entity $values['custom'] = array(); foreach ($params as $key => $value) { list($customFieldID, $customValueID) = CRM_Core_BAO_CustomField::getKeyID($key, TRUE); - if ($customFieldID) { + if ($customFieldID && (!IS_NULL($value))) { CRM_Core_BAO_CustomField::formatCustomField($customFieldID, $values['custom'], $value, $extends, $customValueID, $entityId, FALSE, FALSE ); diff --git a/tests/phpunit/api/v3/ContactTest.php b/tests/phpunit/api/v3/ContactTest.php index 3c3603bfcb..120fb0c8d3 100644 --- a/tests/phpunit/api/v3/ContactTest.php +++ b/tests/phpunit/api/v3/ContactTest.php @@ -392,6 +392,21 @@ class api_v3_ContactTest extends CiviUnitTestCase { $this->customGroupDelete($ids['custom_group_id']); } + /** + * CRM-12773 - expectation is that civicrm quietly ignores + * fields without values + */ + function testCreateWithNULLCustomCRM12773() { + $ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, __FILE__); + $params = $this->_params; + $params['custom_' . $ids['custom_field_id']] = NULL; + $result = civicrm_api('contact', 'create', $params); + $this->assertAPISuccess($result, ' in line ' . __LINE__); + $this->customFieldDelete($ids['custom_field_id']); + $this->customGroupDelete($ids['custom_group_id']); + } + + /* * Test creating a current employer through API */ -- 2.25.1