Switch to throwing errrors rather than soft validation
authorSeamus Lee <seamuslee001@gmail.com>
Wed, 13 Jul 2016 07:18:14 +0000 (17:18 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Mon, 8 Aug 2016 06:53:09 +0000 (16:53 +1000)
CRM/Contact/BAO/Group.php
tests/phpunit/api/v3/GroupTest.php

index def29b8dbce5aeb7d1b777757ec08cf7266b2704..f55505fd725266176edbaff7533c39da2dd39672 100644 (file)
@@ -387,15 +387,11 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
     if (isset($params['parents'])) {
       if (is_array($params['parents'])) {
         foreach ($params['parents'] as $parent => $dc) {
-          if (!CRM_Utils_Type::validate($parent, 'Integer', FALSE)) {
-            unset($params['parents'][$parent]);
-          }
+          CRM_Utils_Type::validate($parent, 'Integer');
         }
       }
       else {
-        if (!CRM_Utils_Type::validate($params['parents'], 'Integer', FALSE)) {
-          unset($params['parents']);
-        }
+        CRM_Utils_Type::validate($params['parents'], 'Integer');
       }
     }
     $group = new CRM_Contact_BAO_Group();
@@ -453,7 +449,7 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group {
 
       if (!empty($params['parents'])) {
         foreach ($params['parents'] as $parentId => $dnc) {
-          if (CRM_Utils_Type::validate($parentId, 'Integer', FALSE)) {
+          if (CRM_Utils_Type::validate($parentId, 'Integer')) {
             if ($parentId && !CRM_Contact_BAO_GroupNesting::isParentChild($parentId, $group->id)) {
               CRM_Contact_BAO_GroupNesting::add($parentId, $group->id);
             }
index 77bc349636318baf7f7e53a5988ad028a248deb9..192c3455413f5272f3be99174dc11f68de5d71fa 100644 (file)
@@ -180,6 +180,8 @@ class api_v3_GroupTest extends CiviUnitTestCase {
       'is_active' => 1,
       'parents' => "(SELECT api_key FROM civicrm_contact where id = 1)",
     );
+    $this->callAPIFailure('group', 'create', $params);
+    unset($params['parents']);
     $this->callAPISuccess('group', 'create', $params);
     $group1 = $this->callAPISuccess('group', 'get', array(
       'title' => 'Test illegal Group',
@@ -190,6 +192,8 @@ class api_v3_GroupTest extends CiviUnitTestCase {
     $params['parents'] = array();
     $params['parents'][$this->_groupID] = 'test Group';
     $params['parents']["(SELECT api_key FROM civicrm_contact where id = 1)"] = "Test";
+    $group2 = $this->callAPIFailure('group', 'create', $params);
+    unset($params['parents']["(SELECT api_key FROM civicrm_contact where id = 1)"]);
     $group2 = $this->callAPISuccess('group', 'create', $params);
     $this->assertEquals(count($group2['values'][$group2['id']]['parents']), 1);
   }