Updates following review by Eileen including using get_options_from_params and adding...
authorSeamus Lee <seamuslee001@gmail.com>
Tue, 9 May 2017 10:13:20 +0000 (20:13 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Tue, 9 May 2017 21:22:55 +0000 (07:22 +1000)
api/v3/Extension.php
tests/phpunit/api/v3/ExtensionTest.php

index 672980c420df64646dc994e2236f3c2664a08bf3..8ffb723928d0083b557854fd9fbfa30b5f1692e6 100644 (file)
@@ -332,7 +332,7 @@ function _civicrm_api3_extension_refresh_spec(&$fields) {
  *   API result
  */
 function civicrm_api3_extension_get($params) {
-  $keys = (array) $params['key'];
+  $keys = isset($params['key']) ? (array) $params['key'] : NULL;
   $statuses = CRM_Extension_System::singleton()->getManager()->getStatuses();
   $mapper = CRM_Extension_System::singleton()->getMapper();
   $result = array();
@@ -356,7 +356,8 @@ function civicrm_api3_extension_get($params) {
       $result[] = $info;
     }
   }
-  $returnFields = !empty($params['return']) ? (array) $params['return'] : array();
+  $options = _civicrm_api3_get_options_from_params($params);
+  $returnFields = !empty($options['return']) ? $options['return'] : array();
   return _civicrm_api3_basic_array_get('Extension', $params, $result, 'id', $returnFields);
 }
 
index c6be9eed6f7f42c990366a015eb01f05211dfc7a..cd260116173037dd1f2b02ce403ecb332ee213cc 100644 (file)
@@ -58,9 +58,10 @@ class api_v3_ExtensionTest extends CiviUnitTestCase {
   }
 
   /**
-   * Test retunging a single extension
+   * Test getting a single extension
+   * CRM-20532
    */
-  public function testSingleExtesnionGet() {
+  public function testExtesnionGetSingleExtension() {
     $result = $this->callAPISuccess('extension', 'get', array('key' => 'test.extension.manager.moduletest'));
     $this->assertEquals('test.extension.manager.moduletest', $result['values'][$result['id']]['key']);
     $this->assertEquals('module', $result['values'][$result['id']]['type']);
@@ -68,23 +69,25 @@ class api_v3_ExtensionTest extends CiviUnitTestCase {
   }
 
   /**
-   * Test single get with specific fields in return
+   * Test single Extension get with specific fields in return
+   * CRM-20532
    */
   public function testSingleExtesnionGetWithReturnFields() {
     $result = $this->callAPISuccess('extension', 'get', array('key' => 'test.extension.manager.moduletest', 'return' => array('name', 'status', 'key')));
     $this->assertEquals('test.extension.manager.moduletest', $result['values'][$result['id']]['key']);
-    $this->assertNull($result['values'][$result['id']]['type']);
+    $this->assertFalse(isset($result['values'][$result['id']]['type']));
     $this->assertEquals('test_extension_manager_moduletest', $result['values'][$result['id']]['name']);
     $this->assertEquals('uninstalled', $result['values'][$result['id']]['status']);
   }
 
   /**
    * Test Extension Get resturns detailed information
+   * CRM-20532
    */
-  public function testeExtesnionGet() {
+  public function testExtesnionGet() {
     $result = $this->callAPISuccess('extension', 'get', array());
-    $angularResult = $this->callAPISuccess('extension', 'get', array('key' => 'org.civicrm.angularprofiles'));
-    $this->assertNotNull($result['values'][$angularResult['id']]['comments']);
+    $testExtensionResult = $this->callAPISuccess('extension', 'get', array('key' => 'test.extension.manager.paymenttest'));
+    $this->assertNotNull($result['values'][$testExtensionResult['id']]['typeInfo']);
     $this->assertEquals(11, $result['count']);
   }