Merge pull request #17253 from mattwire/utf8convertblocksize
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / CustomValueTableTest.php
index f8846716e510888d3fbecfb8f7ad4cc8f6f7b03d..580df3134dfe958a899be8d0725e2a87bf90f5e1 100644 (file)
@@ -10,74 +10,73 @@ class CRM_Core_BAO_CustomValueTableTest extends CiviUnitTestCase {
     parent::setUp();
   }
 
-
   /**
    * Test store function for country.
    */
   public function testStoreCountry() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'dataType' => 'Country',
-      'htmlType' => 'Select Country',
-    );
-
-    $customField = Custom::createField($params, $fields);
-
-    $params[] = array(
-      $customField->id => array(
+    $params = [];
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate();
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'data_type' => 'Country',
+      'html_type' => 'Select Country',
+      'default_value' => '',
+    ];
+
+    $customField = $this->customFieldCreate($fields);
+
+    $params[] = [
+      $customField['id'] => [
         'value' => 1228,
         'type' => 'Country',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_Country_' . $customField->id,
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
         'file_id' => '',
-      ),
-    );
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
-    //        $this->assertDBCompareValue('CRM_Custom_DAO_CustomValue', )
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
   /**
    * Test store function for file.
    */
-  public function atestStoreFile() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'dataType' => 'File',
-      'htmlType' => 'File',
-    );
-
-    $customField = Custom::createField($params, $fields);
-
-    $params[] = array(
-      $customField->id => array(
+  public function testStoreFile() {
+    $contactID = $this->individualCreate();
+    $file = $this->callAPISuccess('File', 'create', ['uri' => 'dummy_data']);
+    $customGroup = $this->customGroupCreate();
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'data_type' => 'File',
+      'html_type' => 'File',
+      'default_value' => '',
+    ];
+
+    $customField = $this->customFieldCreate($fields);
+
+    $params[] = [
+      $customField['id'] => [
         'value' => 'i/contact_house.png',
         'type' => 'File',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_File_' . $customField->id,
-        'file_id' => 1,
-      ),
-    );
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
+        'file_id' => $file['id'],
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
-    //        $this->assertDBCompareValue('CRM_Custom_DAO_CustomValue', )
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
@@ -85,33 +84,33 @@ class CRM_Core_BAO_CustomValueTableTest extends CiviUnitTestCase {
    * Test store function for state province.
    */
   public function testStoreStateProvince() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'dataType' => 'StateProvince',
-      'htmlType' => 'Select State/Province',
-    );
-
-    $customField = Custom::createField($params, $fields);
-
-    $params[] = array(
-      $customField->id => array(
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate();
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'data_type' => 'StateProvince',
+      'html_type' => 'Select State/Province',
+      'default_value' => '',
+    ];
+
+    $customField = $this->customFieldCreate($fields);
+
+    $params[] = [
+      $customField['id'] => [
         'value' => 1029,
         'type' => 'StateProvince',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_StateProvince_' . $customField->id,
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
         'file_id' => 1,
-      ),
-    );
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
@@ -119,34 +118,34 @@ class CRM_Core_BAO_CustomValueTableTest extends CiviUnitTestCase {
    * Test store function for date.
    */
   public function testStoreDate() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'dataType' => 'Date',
-      'htmlType' => 'Select Date',
-    );
-
-    $customField = Custom::createField($params, $fields);
-
-    $params[] = array(
-      $customField->id => array(
+    $params = [];
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate();
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'data_type' => 'Date',
+      'html_type' => 'Select Date',
+      'default_value' => '',
+    ];
+
+    $customField = $this->customFieldCreate($fields);
+
+    $params[] = [
+      $customField['id'] => [
         'value' => '20080608000000',
         'type' => 'Date',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_Date_' . $customField->id,
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
         'file_id' => '',
-      ),
-    );
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
-    //        $this->assertDBCompareValue('CRM_Custom_DAO_CustomValue', )
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
@@ -154,108 +153,106 @@ class CRM_Core_BAO_CustomValueTableTest extends CiviUnitTestCase {
    * Test store function for rich text editor.
    */
   public function testStoreRichTextEditor() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'htmlType' => 'RichTextEditor',
-      'dataType' => 'Memo',
-    );
-
-    $customField = Custom::createField($params, $fields);
-
-    $params[] = array(
-      $customField->id => array(
+    $params = [];
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate();
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'html_type' => 'RichTextEditor',
+      'data_type' => 'Memo',
+    ];
+
+    $customField = $this->customFieldCreate($fields);
+
+    $params[] = [
+      $customField['id'] => [
         'value' => '<p><strong>This is a <u>test</u></p>',
         'type' => 'Memo',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_Memo_' . $customField->id,
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
         'file_id' => '',
-      ),
-    );
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
-    //        $this->assertDBCompareValue('CRM_Custom_DAO_CustomValue', )
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
   /**
    * Test getEntityValues function for stored value.
    */
-  public function testgetEntityValues() {
-
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'htmlType' => 'RichTextEditor',
-      'dataType' => 'Memo',
-    );
+  public function testGetEntityValues() {
+
+    $params = [];
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate(['extends' => 'Individual']);
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'html_type' => 'RichTextEditor',
+      'data_type' => 'Memo',
+    ];
 
-    $customField = Custom::createField($params, $fields);
+    $customField = $this->customFieldCreate($fields);
 
-    $params[] = array(
-      $customField->id => array(
+    $params[] = [
+      $customField['id'] => [
         'value' => '<p><strong>This is a <u>test</u></p>',
         'type' => 'Memo',
-        'custom_field_id' => $customField->id,
-        'custom_group_id' => $customGroup->id,
-        'table_name' => 'civicrm_value_test_group_' . $customGroup->id,
-        'column_name' => 'test_Memo_' . $customField->id,
+        'custom_field_id' => $customField['id'],
+        'custom_group_id' => $customGroup['id'],
+        'table_name' => $customGroup['values'][$customGroup['id']]['table_name'],
+        'column_name' => $customField['values'][$customField['id']]['column_name'],
         'file_id' => '',
-      ),
-    );
+      ],
+    ];
 
     CRM_Core_BAO_CustomValueTable::store($params, 'civicrm_contact', $contactID);
-    //        $this->assertDBCompareValue('CRM_Custom_DAO_CustomValue', )
 
     $entityValues = CRM_Core_BAO_CustomValueTable::getEntityValues($contactID, 'Individual');
 
-    $this->assertEquals($entityValues[$customField->id], '<p><strong>This is a <u>test</u></p>',
+    $this->assertEquals($entityValues[$customField['id']], '<p><strong>This is a <u>test</u></p>',
       'Checking same for returned value.'
     );
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }
 
   public function testCustomGroupMultiple() {
-    $params = array();
-    $contactID = Contact::createIndividual();
-    $customGroup = Custom::createGroup($params, 'Individual');
-
-    $fields = array(
-      'groupId' => $customGroup->id,
-      'dataType' => 'String',
-      'htmlType' => 'Text',
-    );
+    $params = [];
+    $contactID = $this->individualCreate();
+    $customGroup = $this->customGroupCreate();
 
-    $customField = Custom::createField($params, $fields);
+    $fields = [
+      'custom_group_id' => $customGroup['id'],
+      'data_type' => 'String',
+      'html_type' => 'Text',
+    ];
 
-    $params = array(
+    $customField = $this->customFieldCreate($fields);
+
+    $params = [
       'entityID' => $contactID,
-      'custom_' . $customField->id . '_-1' => 'First String',
-    );
+      'custom_' . $customField['id'] . '_-1' => 'First String',
+    ];
     $error = CRM_Core_BAO_CustomValueTable::setValues($params);
 
-    $newParams = array(
+    $newParams = [
       'entityID' => $contactID,
-      'custom_' . $customField->id => 1,
-    );
+      'custom_' . $customField['id'] => 1,
+    ];
     $result = CRM_Core_BAO_CustomValueTable::getValues($newParams);
 
-    $this->assertEquals($params['custom_' . $customField->id . '_-1'], $result['custom_' . $customField->id]);
+    $this->assertEquals($params['custom_' . $customField['id'] . '_-1'], $result['custom_' . $customField['id']]);
     $this->assertEquals($params['entityID'], $result['entityID']);
 
-    Custom::deleteField($customField);
-    Custom::deleteGroup($customGroup);
+    $this->customFieldDelete($customField['id']);
+    $this->customGroupDelete($customGroup['id']);
     $this->contactDelete($contactID);
   }