You are here

private function CustomFieldSubmissionTest::createCustomFields in Webform CiviCRM Integration 8.5

1 call to CustomFieldSubmissionTest::createCustomFields()
CustomFieldSubmissionTest::testSubmitWebform in tests/src/FunctionalJavascript/CustomFieldSubmissionTest.php
Test submitting Custom Fields

File

tests/src/FunctionalJavascript/CustomFieldSubmissionTest.php, line 14

Class

CustomFieldSubmissionTest
Tests submitting a Webform with CiviCRM: single contact + custom fields.

Namespace

Drupal\Tests\webform_civicrm\FunctionalJavascript

Code

private function createCustomFields() {
  $this->_customFields = [];
  $result = $this
    ->createCustomGroup();
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $customgroup_id = $result['id'];
  $params = [
    'custom_group_id' => $customgroup_id,
    'label' => 'Text',
    'name' => 'text',
    'data_type' => 'String',
    'html_type' => 'Text',
    'is_active' => 1,
  ];
  $result = $this->utils
    ->wf_civicrm_api('CustomField', 'create', $params);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['text'] = $result['id'];
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "DateTime",
    'name' => 'date_time',
    'data_type' => "Date",
    'html_type' => "Select Date",
    'date_format' => "yy-mm-dd",
    'time_format' => 2,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['date_time'] = $result['id'];
  $result = civicrm_api3('OptionGroup', 'create', [
    'name' => "radio_1",
    'title' => "Label for custom radio field",
    'data_type' => "String",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "radio_1",
    'name' => "Yes",
    'label' => "Yes",
    'value' => 1,
    'is_default' => 0,
    'weight' => 1,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);

  // Add Radio options for empty submission.
  $result = civicrm_api3('OptionGroup', 'create', [
    'name' => "test_radio_2",
    'title' => "Test Radio 2",
    'data_type' => "String",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "test_radio_2",
    'name' => "radiooptionone",
    'label' => "Radio Option One",
    'value' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "test_radio_2",
    'name' => "radiooptiontwo",
    'label' => "Radio Option Two",
    'value' => 2,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "test_radio_2",
    'name' => "radiooptionthree",
    'label' => "Radio Option Three",
    'value' => 3,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "Custom Radio Field test for empty submission",
    'name' => 'test_radio_2',
    'html_type' => "Radio",
    'data_type' => "String",
    'option_group_id' => "test_radio_2",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['test_radio_2'] = $result['id'];
  $result = civicrm_api3('OptionGroup', 'create', [
    'name' => "checkboxes_1",
    'title' => "Checkboxes",
    'data_type' => "String",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "checkboxes_1",
    'name' => "Red",
    'label' => "Red",
    'value' => 1,
    'is_default' => 0,
    'weight' => 1,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "checkboxes_1",
    'name' => "Green",
    'label' => "Green",
    'value' => 2,
    'is_default' => 0,
    'weight' => 2,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "Checkboxes",
    'name' => 'color_checkboxes',
    'html_type' => "CheckBox",
    'data_type' => "String",
    'option_group_id' => "checkboxes_1",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['color_checkboxes'] = $result['id'];
  $result = civicrm_api3('OptionGroup', 'create', [
    'name' => "fruits_1",
    'title' => "Fruits",
    'data_type' => "String",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "fruits_1",
    'name' => "Apple",
    'label' => "Apple",
    'value' => "Apple",
    'is_default' => 0,
    'weight' => 1,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "fruits_1",
    'name' => "Mango",
    'label' => "Mango",
    'value' => "Mango",
    'is_default' => 0,
    'weight' => 2,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "fruits_1",
    'name' => "Orange",
    'label' => "Orange",
    'value' => "Orange",
    'is_default' => 0,
    'weight' => 3,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "Fruits",
    'name' => 'fruits',
    'html_type' => "CheckBox",
    'data_type' => "String",
    'option_group_id' => "fruits_1",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['fruits'] = $result['id'];
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "Label for custom radio field",
    'name' => 'single_radio',
    'html_type' => "Radio",
    'data_type' => "String",
    'option_group_id' => "radio_1",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['single_radio'] = $result['id'];

  // Add OptionGroup for Select element
  $result = civicrm_api3('OptionGroup', 'create', [
    'name' => "list_1",
    'title' => "Select",
    'data_type' => "String",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);

  // Add First OptionValue to OptionGroup for Select element
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "list_1",
    'name' => "Option A",
    'label' => "Option A",
    'value' => 'OptionA',
    'is_default' => 0,
    'weight' => 1,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);

  // Add Second OptionValue to OptionGroup for Select element
  $result = civicrm_api3('OptionValue', 'create', [
    'option_group_id' => "list_1",
    'name' => "Option B",
    'label' => "Option B",
    'value' => 'OptionB',
    'is_default' => 0,
    'weight' => 1,
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);

  // Add Field of type Select
  $result = civicrm_api3('CustomField', 'create', [
    'custom_group_id' => "Custom",
    'label' => "List",
    'name' => 'select_list',
    'html_type' => "Select",
    'data_type' => "String",
    'option_group_id' => "list_1",
    'is_active' => 1,
  ]);
  $this
    ->assertEquals(0, $result['is_error']);
  $this
    ->assertEquals(1, $result['count']);
  $this->_customFields['select_list'] = $result['id'];
}