<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.4 |
+ | CiviCRM version 4.5 |
+--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013 |
+ | Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
| This file is a part of CiviCRM. |
| |
$this->callAPISuccess($entity, 'delete', array( 'id' => $id));
}
}
+ $this->quickCleanup(array('civicrm_grant'));
}
public function testCreateGrant() {
$this->getAndCheck($this->params, $result['id'], $this->_entity);
}
+ /**
+ * Check checkbox type custom fields are created correctly
+ * We want to ensure they are saved with separators as appropriate
+ */
+ public function testCreateCustomCheckboxGrant() {
+ $ids = array();
+ $result = $this->customGroupCreate(array('extends' => 'Grant'));
+ $ids['custom_group_id'] = $result['id'];
+ $customTable = $result['values'][$result['id']]['table_name'];
+ $result = $this->customFieldCreate(array(
+ 'html_type' => 'CheckBox',
+ 'custom_group_id' => $ids['custom_group_id'],
+ 'option_values' => array(
+ array('label' => 'my valley', 'value' => 'valley', 'is_active' => TRUE, 'weight' => 1),
+ array('label' => 'my goat', 'value' => 'goat', 'is_active' => TRUE, 'weight' => 2),
+ array('label' => 'mohair', 'value' => 'wool', 'is_active' => TRUE, 'weight' => 3),
+ array('label' => 'hungry', 'value' => '', 'is_active' => TRUE, 'weight' => 3),
+ )));
+ $columnName = $result['values'][$result['id']]['column_name'];
+ $ids['custom_field_id'] = $result['id'];
+ $customFieldLabel = 'custom_' . $ids['custom_field_id'];
+ $expectedValue = CRM_Core_DAO::VALUE_SEPARATOR . 'valley' . CRM_Core_DAO::VALUE_SEPARATOR;
+ //first we pass in the core separators ourselves
+ $this->params[$customFieldLabel] = $expectedValue;
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $this->params['id'] = $result['id'];
+
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+
+ $this->assertEquals($expectedValue, $savedValue);
+
+ // now we ask CiviCRM to add the separators
+ $this->params[$customFieldLabel] = "valley";
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+ $this->assertEquals($expectedValue, $savedValue);
+
+ //let's try with 2 params already separated
+ $expectedValue = CRM_Core_DAO::VALUE_SEPARATOR . 'valley' . CRM_Core_DAO::VALUE_SEPARATOR . 'goat' . CRM_Core_DAO::VALUE_SEPARATOR;
+ $this->params[$customFieldLabel] = $expectedValue;
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+ $this->assertEquals($expectedValue, $savedValue);
+
+ // & check it will do the separating
+ $this->params[$customFieldLabel] = 'valley,goat';
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+ $this->assertEquals($expectedValue, $savedValue);
+
+ //& here is the odd but previously supported (form-oriented) format
+ //& an array for good measure
+ $this->params[$customFieldLabel] = array('valley' => 1, 'goat' => 1);
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+ $this->assertEquals($expectedValue, $savedValue);
+
+ //& an array for good measure
+ $this->params[$customFieldLabel] = array('valley', 'goat');
+ $result = $this->callAPISuccess($this->_entity, 'create', $this->params);
+ $savedValue = CRM_Core_DAO::singleValueQuery("SELECT {$columnName} FROM $customTable WHERE entity_id = {$result['id']}");
+ $this->assertEquals($expectedValue, $savedValue);
+
+ $this->customFieldDelete($ids['custom_field_id']);
+ $this->customGroupDelete($ids['custom_group_id']);
+ }
+
public function testGetGrant() {
$result = $this->callAPISuccess($this->_entity, 'create', $this->params);
$this->ids['grant'][0] = $result['id'];