Add in Country and StateProvince APIv4 Entities
[civicrm-core.git] / tests / phpunit / api / v3 / ProfileTest.php
index 31e8cbf89b8b7f74264e030919551ac04c3392cc..094bfcb7addd84b216bb7bf4c6f9bc39aa719f4a 100644 (file)
@@ -1,28 +1,12 @@
 <?php
 /*
  +--------------------------------------------------------------------+
-| CiviCRM version 5                                                  |
-+--------------------------------------------------------------------+
-| Copyright CiviCRM LLC (c) 2004-2019                                |
-+--------------------------------------------------------------------+
-| This file is a part of CiviCRM.                                    |
-|                                                                    |
-| CiviCRM is free software; you can copy, modify, and distribute it  |
-| under the terms of the GNU Affero General Public License           |
-| Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
-|                                                                    |
-| CiviCRM is distributed in the hope that it will be useful, but     |
-| WITHOUT ANY WARRANTY; without even the implied warranty of         |
-| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
-| See the GNU Affero General Public License for more details.        |
-|                                                                    |
-| You should have received a copy of the GNU Affero General Public   |
-| License and the CiviCRM Licensing Exception along                  |
-| with this program; if not, contact CiviCRM LLC                     |
-| at info[AT]civicrm[DOT]org. If you have questions about the        |
-| GNU Affero General Public License or the licensing of CiviCRM,     |
-| see the CiviCRM license FAQ at http://civicrm.org/licensing        |
-+--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC. All rights reserved.                        |
+ |                                                                    |
+ | This work is published under the GNU AGPLv3 license with some      |
+ | permitted exceptions and without any warranty. For full license    |
+ | and copyright information, see https://civicrm.org/licensing       |
+ +--------------------------------------------------------------------+
  */
 
 /**
@@ -32,6 +16,7 @@
  * @group headless
  */
 class api_v3_ProfileTest extends CiviUnitTestCase {
+  use CRMTraits_Custom_CustomDataTrait;
 
   protected $_profileID = 0;
 
@@ -94,6 +79,8 @@ class api_v3_ProfileTest extends CiviUnitTestCase {
 
   /**
    * Check with success.
+   *
+   * @throws \CRM_Core_Exception
    */
   public function testProfileGet() {
     $profileFieldValues = $this->_createIndividualContact();
@@ -109,6 +96,29 @@ class api_v3_ProfileTest extends CiviUnitTestCase {
     }
   }
 
+  /**
+   * Test retrieving a profile with an address custom field in it.
+   *
+   * We are checking that there is no error.
+   *
+   * @throws \CRM_Core_Exception
+   */
+  public function testProfileGetWithAddressCustomData() {
+    $this->_createIndividualContact();
+    $this->entity = 'Address';
+    $this->createCustomGroupWithFieldOfType(['extends' => 'Address']);
+    $this->callAPISuccess('UFField', 'create', [
+      'uf_group_id' => $this->_profileID,
+      'field_name' => $this->getCustomFieldName('text'),
+      'visibility' => 'Public Pages and Listings',
+      'label' => 'My custom field',
+      'field_type' => 'Contact',
+    ]);
+    $this->callAPISuccess('Address', 'get', ['contact_id' => $this->_contactID, 'api.Address.create' => [$this->getCustomFieldName('text') => 'my field']]);
+    $result = $this->callAPISuccess('Profile', 'get', ['profile_id' => $this->_profileID, 'contact_id' => $this->_contactID])['values'];
+    // $this->assertEquals('my field', $result[$this->getCustomFieldName('text')]);
+  }
+
   /**
    * Test getting multiple profiles.
    */