Merge pull request #17253 from mattwire/utf8convertblocksize
[civicrm-core.git] / tests / phpunit / CRM / Core / BAO / CustomFieldTest.php
index e0a1cf9b62ccb6bf2e6f8108e5a7574d6419dddd..8b55cfe182e8f7f58975861e6ccf834e6fe61583 100644 (file)
@@ -461,12 +461,52 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => NULL,
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '0',
+        'is_required' => 0,
+        'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
+        'column_name' => $this->getCustomFieldColumnName('country'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('country'),
+        'extends_table' => 'civicrm_contact',
+        'search_table' => 'contact_a',
+        'serialize' => NULL,
+        'pseudoconstant' => [
+          'table' => 'civicrm_country',
+          'keyColumn' => 'id',
+          'labelColumn' => 'name',
+          'nameColumn' => 'iso_code',
+        ],
+      ],
+      $this->getCustomFieldName('multi_country') => [
+        'name' => $this->getCustomFieldName('multi_country'),
+        'type' => 1,
+        'title' => 'Country-multi',
+        'headerPattern' => '//',
+        'import' => 1,
+        'custom_field_id' => $this->getCustomFieldID('multi_country'),
+        'options_per_line' => NULL,
+        'text_length' => NULL,
+        'data_type' => 'Country',
+        'html_type' => 'Select Country',
+        'is_search_range' => '0',
+        'id' => $this->getCustomFieldID('multi_country'),
+        'label' => 'Country-multi',
+        'groupTitle' => 'Custom Group',
+        'default_value' => NULL,
+        'custom_group_id' => $customGroupID,
+        'extends' => 'Contact',
+        'extends_entity_column_value' => NULL,
+        'extends_entity_column_id' => NULL,
+        'is_view' => '0',
+        'is_multiple' => '0',
+        'option_group_id' => NULL,
+        'date_format' => NULL,
+        'time_format' => NULL,
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
-        'column_name' => 'country_' . $this->getCustomFieldID('country'),
-        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.country_' . $this->getCustomFieldID('country'),
+        'column_name' => $this->getCustomFieldColumnName('multi_country'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('multi_country'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => 1,
         'pseudoconstant' => [
           'table' => 'civicrm_country',
           'keyColumn' => 'id',
@@ -477,7 +517,7 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
       $this->getCustomFieldName('file') => [
         'name' => $this->getCustomFieldName('file'),
         'type' => 2,
-        'title' => 'Custom Field',
+        'title' => 'My file',
         'headerPattern' => '//',
         'import' => 1,
         'custom_field_id' => $this->getCustomFieldID('file'),
@@ -487,7 +527,7 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'html_type' => 'File',
         'is_search_range' => '0',
         'id' => $this->getCustomFieldID('file'),
-        'label' => 'Custom Field',
+        'label' => 'My file',
         'groupTitle' => 'Custom Group',
         'default_value' => NULL,
         'custom_group_id' => $customGroupID,
@@ -499,12 +539,13 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => NULL,
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '0',
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
-        'column_name' => 'custom_field_' . $this->getCustomFieldID('file'),
-        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.custom_field_' . $this->getCustomFieldID('file'),
+        'column_name' => 'my_file_' . $this->getCustomFieldID('file'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.my_file_' . $this->getCustomFieldID('file'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => NULL,
       ],
       $this->getCustomFieldName('text') => [
         'name' => $this->getCustomFieldName('text'),
@@ -531,13 +572,14 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => NULL,
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '1',
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
         'column_name' => 'enter_text_here_' . $this->getCustomFieldID('text'),
         'where' => 'civicrm_value_custom_group_' . $customGroupID . '.enter_text_here_' . $this->getCustomFieldID('text'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
         'maxlength' => 300,
+        'serialize' => NULL,
       ],
       $this->getCustomFieldName('select_string') => [
         'name' => $this->getCustomFieldName('select_string'),
@@ -564,12 +606,13 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => $this->callAPISuccessGetValue('CustomField', ['id' => $this->getCustomFieldID('select_string'), 'return' => 'option_group_id']),
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '1',
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
         'column_name' => 'pick_color_' . $this->getCustomFieldID('select_string'),
         'where' => 'civicrm_value_custom_group_' . $customGroupID . '.pick_color_' . $this->getCustomFieldID('select_string'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => NULL,
         'pseudoconstant' => [
           'optionGroupName' => $this->callAPISuccessGetValue('CustomField', ['id' => $this->getCustomFieldID('select_string'), 'return' => 'option_group_id.name']),
           'optionEditPath' => 'civicrm/admin/options/' . $this->callAPISuccessGetValue('CustomField', ['id' => $this->getCustomFieldID('select_string'), 'return' => 'option_group_id.name']),
@@ -606,6 +649,7 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'where' => 'civicrm_value_custom_group_' . $customGroupID . '.test_date_' . $this->getCustomFieldID('select_date'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => NULL,
       ],
       $this->getCustomFieldName('link') => [
         'name' => $this->getCustomFieldName('link'),
@@ -632,12 +676,13 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => NULL,
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '1',
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
         'column_name' => 'test_link_' . $this->getCustomFieldID('link'),
         'where' => 'civicrm_value_custom_group_' . $customGroupID . '.test_link_' . $this->getCustomFieldID('link'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => NULL,
       ],
       $this->getCustomFieldName('int') => [
         'name' => $this->getCustomFieldName('int'),
@@ -664,12 +709,158 @@ class CRM_Core_BAO_CustomFieldTest extends CiviUnitTestCase {
         'option_group_id' => NULL,
         'date_format' => NULL,
         'time_format' => NULL,
-        'is_required' => '1',
+        'is_required' => 0,
         'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
         'column_name' => $this->getCustomFieldColumnName('int'),
         'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('int'),
         'extends_table' => 'civicrm_contact',
         'search_table' => 'contact_a',
+        'serialize' => NULL,
+      ],
+      $this->getCustomFieldName('contact_reference') => [
+        'name' => $this->getCustomFieldName('contact_reference'),
+        'type' => CRM_Utils_Type::T_INT,
+        'title' => 'Contact reference field',
+        'headerPattern' => '//',
+        'import' => 1,
+        'custom_field_id' => $this->getCustomFieldID('contact_reference'),
+        'options_per_line' => NULL,
+        'text_length' => NULL,
+        'data_type' => 'ContactReference',
+        'html_type' => 'Autocomplete-Select',
+        'is_search_range' => '0',
+        'id' => $this->getCustomFieldID('contact_reference'),
+        'label' => 'Contact reference field',
+        'groupTitle' => 'Custom Group',
+        'default_value' => NULL,
+        'custom_group_id' => $customGroupID,
+        'extends' => 'Contact',
+        'extends_entity_column_value' => NULL,
+        'extends_entity_column_id' => NULL,
+        'is_view' => '0',
+        'is_multiple' => '0',
+        'option_group_id' => NULL,
+        'date_format' => NULL,
+        'time_format' => NULL,
+        'is_required' => 0,
+        'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
+        'column_name' => $this->getCustomFieldColumnName('contact_reference'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('contact_reference'),
+        'extends_table' => 'civicrm_contact',
+        'search_table' => 'contact_a',
+        'serialize' => NULL,
+      ],
+      $this->getCustomFieldName('state') => [
+        'name' => $this->getCustomFieldName('state'),
+        'id' => $this->getCustomFieldID('state'),
+        'label' => 'State',
+        'headerPattern' => '//',
+        'title' => 'State',
+        'custom_field_id' => $this->getCustomFieldID('state'),
+        'groupTitle' => 'Custom Group',
+        'default_value' => NULL,
+        'custom_group_id' => $customGroupID,
+        'extends' => 'Contact',
+        'extends_entity_column_value' => NULL,
+        'extends_entity_column_id' => NULL,
+        'is_view' => '0',
+        'is_multiple' => '0',
+        'option_group_id' => NULL,
+        'date_format' => NULL,
+        'time_format' => NULL,
+        'is_required' => 0,
+        'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
+        'column_name' => $this->getCustomFieldColumnName('state'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('state'),
+        'extends_table' => 'civicrm_contact',
+        'search_table' => 'contact_a',
+        'serialize' => NULL,
+        'pseudoconstant' => [
+          'table' => 'civicrm_state_province',
+          'keyColumn' => 'id',
+          'labelColumn' => 'name',
+        ],
+        'import' => 1,
+        'data_type' => 'StateProvince',
+        'type' => 1,
+        'html_type' => 'Select State/Province',
+        'text_length' => NULL,
+        'options_per_line' => NULL,
+        'is_search_range' => '0',
+      ],
+      $this->getCustomFieldName('multi_state') => [
+        'id' => $this->getCustomFieldID('multi_state'),
+        'label' => 'State-multi',
+        'headerPattern' => '//',
+        'title' => 'State-multi',
+        'custom_field_id' => $this->getCustomFieldID('multi_state'),
+        'groupTitle' => 'Custom Group',
+        'default_value' => NULL,
+        'custom_group_id' => $customGroupID,
+        'extends' => 'Contact',
+        'extends_entity_column_value' => NULL,
+        'extends_entity_column_id' => NULL,
+        'is_view' => '0',
+        'is_multiple' => '0',
+        'option_group_id' => NULL,
+        'date_format' => NULL,
+        'time_format' => NULL,
+        'is_required' => 0,
+        'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
+        'column_name' => $this->getCustomFieldColumnName('multi_state'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('multi_state'),
+        'extends_table' => 'civicrm_contact',
+        'search_table' => 'contact_a',
+        'serialize' => 1,
+        'pseudoconstant' => [
+          'table' => 'civicrm_state_province',
+          'keyColumn' => 'id',
+          'labelColumn' => 'name',
+        ],
+        'import' => 1,
+        'data_type' => 'StateProvince',
+        'name' => $this->getCustomFieldName('multi_state'),
+        'type' => 1,
+        'html_type' => 'Select State/Province',
+        'text_length' => NULL,
+        'options_per_line' => NULL,
+        'is_search_range' => '0',
+      ],
+      $this->getCustomFieldName('boolean') => [
+        'id' => $this->getCustomFieldID('boolean'),
+        'label' => 'Yes No',
+        'headerPattern' => '//',
+        'title' => 'Yes No',
+        'custom_field_id' => $this->getCustomFieldID('boolean'),
+        'groupTitle' => 'Custom Group',
+        'default_value' => NULL,
+        'custom_group_id' => $customGroupID,
+        'extends' => 'Contact',
+        'extends_entity_column_value' => NULL,
+        'extends_entity_column_id' => NULL,
+        'is_view' => '0',
+        'is_multiple' => '0',
+        'option_group_id' => NULL,
+        'date_format' => NULL,
+        'time_format' => NULL,
+        'is_required' => 0,
+        'table_name' => 'civicrm_value_custom_group_' . $customGroupID,
+        'column_name' => $this->getCustomFieldColumnName('boolean'),
+        'where' => 'civicrm_value_custom_group_' . $customGroupID . '.' . $this->getCustomFieldColumnName('boolean'),
+        'extends_table' => 'civicrm_contact',
+        'search_table' => 'contact_a',
+        'import' => 1,
+        'data_type' => 'Boolean',
+        'name' => $this->getCustomFieldName('boolean'),
+        'type' => 16,
+        'html_type' => 'Radio',
+        'text_length' => NULL,
+        'options_per_line' => NULL,
+        'is_search_range' => '0',
+        'serialize' => NULL,
+        'pseudoconstant' => [
+          'callback' => 'CRM_Core_SelectValues::boolean',
+        ],
       ],
     ];
     $this->assertEquals($expected, CRM_Core_BAO_CustomField::getFieldsForImport());