CRM-12133 - api/v3/ReportTemplate - Fix option_group_id and component_id errors
authorCiviCRM <info@civicrm.org>
Wed, 20 Mar 2013 12:42:25 +0000 (08:42 -0400)
committerCiviCRM <info@civicrm.org>
Wed, 20 Mar 2013 12:42:25 +0000 (08:42 -0400)
api/v3/ReportTemplate.php
tests/phpunit/api/v3/ReportTemplateTest.php

index 1ad88c2a4717d6b8c3c236b63bbf8bc4db778ecf..84cb499a259e50e034b8c03f9c455c35cf890dbe 100644 (file)
@@ -38,6 +38,9 @@ function civicrm_api3_report_template_create($params) {
   $params['option_group_id'] = CRM_Core_DAO::getFieldValue(
     'CRM_Core_DAO_OptionGroup', 'report_template', 'id', 'name'
   );
+  if (!empty($params['component_id']) && !is_numeric($params['component_id'])) {
+    $params['component_id'] = array_search($params['component_id'], CRM_Core_PseudoConstant::component());
+  }
   return civicrm_api3_option_value_create($params);
 }
 
@@ -52,6 +55,9 @@ function _civicrm_api3_report_template_create_spec(&$params) {
   _civicrm_api3_option_value_create_spec($params);
   $params['value']['api.aliases'] = array('report_url');
   $params['name']['api.aliases'] = array('class_name');
+  $params['option_group_id']['api.default'] = CRM_Core_DAO::getFieldValue(
+    'CRM_Core_DAO_OptionGroup', 'report_template', 'id', 'name'
+  );
   // $params['component']['api.required'] = TRUE;
 }
 
index d190ec1b13b8dd831b819af758b730ecf04b0be6..c6601e85f237243a6ab894cb0a014d2d695a661a 100644 (file)
@@ -54,7 +54,7 @@ class api_v3_ReportTemplateTest extends CiviUnitTestCase {
       'report_url' => 'example/path',
       'component' => 'CiviCase',
     ));
-    $this->assertEquals(0, $result['is_error'], 'In line ' . __LINE__);
+    $this->assertAPISuccess($result);
     $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
     $entityId = $result['id'];
     $this->assertTrue(is_numeric($entityId), 'In line ' . __LINE__);
@@ -71,7 +71,7 @@ class api_v3_ReportTemplateTest extends CiviUnitTestCase {
       'id' => $entityId,
       'component' => '',
     ));
-    $this->assertEquals(0, $result['is_error'], 'In line ' . __LINE__);
+    $this->assertAPISuccess($result);
     $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
     $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_option_value
       WHERE name = "CRM_Report_Form_Examplez"
@@ -86,7 +86,7 @@ class api_v3_ReportTemplateTest extends CiviUnitTestCase {
       'id' => $entityId,
       'is_active' => 0,
     ));
-    $this->assertEquals(0, $result['is_error'], 'In line ' . __LINE__);
+    $this->assertAPISuccess($result);
     $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
     $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_option_value
       WHERE name = "CRM_Report_Form_Examplez"
@@ -100,7 +100,7 @@ class api_v3_ReportTemplateTest extends CiviUnitTestCase {
       'id' => $entityId,
       'is_active' => 1,
     ));
-    $this->assertEquals(0, $result['is_error'], 'In line ' . __LINE__);
+    $this->assertAPISuccess($result);
     $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
     $this->assertDBQuery(1, 'SELECT count(*) FROM civicrm_option_value
       WHERE name = "CRM_Report_Form_Examplez"
@@ -112,7 +112,7 @@ class api_v3_ReportTemplateTest extends CiviUnitTestCase {
       'version' => $this->_apiversion,
       'id' => $entityId,
     ));
-    $this->assertEquals(0, $result['is_error'], 'In line ' . __LINE__);
+    $this->assertAPISuccess($result);
     $this->assertEquals(1, $result['count'], 'In line ' . __LINE__);
     $this->assertDBQuery(0, 'SELECT count(*) FROM civicrm_option_value
       WHERE name = "CRM_Report_Form_Examplez"