CRM-19123 Merging contacts: blank date fields write as 1970
authorFlávio Veloso <flaviovs@magnux.com>
Fri, 2 Sep 2016 22:26:23 +0000 (15:26 -0700)
committerFlávio Veloso <flaviovs@magnux.com>
Fri, 2 Sep 2016 22:26:23 +0000 (15:26 -0700)
----------------------------------------
* CRM-19123: Merging contacts: blank date fields write as 1970
  https://issues.civicrm.org/jira/browse/CRM-19123

CRM/Contact/BAO/Individual.php
tests/phpunit/CRM/Contact/BAO/IndividualTest.php [new file with mode: 0644]

index 557b1c563ee650634adfdb79df34206748f0b9dc..824c5f5d0e23a97473116669e7b98abd55447a73 100644 (file)
@@ -59,7 +59,7 @@ class CRM_Contact_BAO_Individual extends CRM_Contact_DAO_Contact {
 
     // "null" value for example is passed by dedupe merge in order to empty.
     // Display name computation shouldn't consider such values.
-    foreach (array('first_name', 'middle_name', 'last_name', 'nick_name', 'formal_title') as $displayField) {
+    foreach (array('first_name', 'middle_name', 'last_name', 'nick_name', 'formal_title', 'birth_date', 'deceased_date') as $displayField) {
       if (CRM_Utils_Array::value($displayField, $params) == "null") {
         $params[$displayField] = '';
       }
diff --git a/tests/phpunit/CRM/Contact/BAO/IndividualTest.php b/tests/phpunit/CRM/Contact/BAO/IndividualTest.php
new file mode 100644 (file)
index 0000000..cbefedf
--- /dev/null
@@ -0,0 +1,27 @@
+<?php
+
+/**
+ * Class CRM_Contact_BAO_IndividualTest
+ * @group headless
+ */
+class CRM_Contact_BAO_IndividualTest extends CiviUnitTestCase {
+
+  /**
+   * Test case for format() with "null" value dates.
+   *
+   * See CRM-19123: Merging contacts: blank date fields write as 1970
+   */
+  public function testFormatNullDates() {
+    $params = array(
+           'contact_type' => 'Individual',
+           'birth_date' => 'null',
+           'deceased_date' => 'null',
+    );
+    $contact = new CRM_Contact_DAO_Contact();
+
+    CRM_Contact_BAO_Individual::format($params, $contact);
+
+    $this->assertEmpty($contact->birth_date);
+    $this->assertEmpty($contact->deceased_date);
+  }
+}