$this->assertEquals(array('Student', 'Staff'), $contact['values'][$cid]['contact_sub_type']);
}
+ /**
+ * Verify that we can retreive contacts of different sub types
+ */
+ public function testGetMultipleContactSubTypes() {
+
+ // This test presumes that there are no parents or students in the dataset
+
+ // create a student
+ $student = $this->callAPISuccess('contact', 'create', array(
+ 'email' => 'student@example.com',
+ 'contact_type' => 'Individual',
+ 'contact_sub_type' => 'Student',
+ ));
+
+ // create a parent
+ $parent = $this->callAPISuccess('contact', 'create', array(
+ 'email' => 'parent@example.com',
+ 'contact_type' => 'Individual',
+ 'contact_sub_type' => 'Parent',
+ ));
+
+ // create a parent
+ $contact = $this->callAPISuccess('contact', 'create', array(
+ 'email' => 'parent@example.com',
+ 'contact_type' => 'Individual',
+ ));
+
+ // get all students and parents
+ $getParams = array('contact_sub_type' => array('IN' => array('Parent', 'Student')));
+ $result = civicrm_api3('contact', 'get', $getParams);
+
+ // check that we retrieved the student and the parent
+ $this->assertArrayHasKey($student['id'], $result['values']);
+ $this->assertArrayHasKey($parent['id'], $result['values']);
+ $this->assertEquals(2, $result['count']);
+
+ }
+
+
/**
* Verify that attempt to create contact with empty params fails.
*/
$this->callAPISuccess('contact', 'create', $params);
}
+ /**
+ * Test that delete with skip undelete respects permissions.
+ */
+ public function testContactDeletePermissions() {
+ $contactID = $this->individualCreate();
+ CRM_Core_Config::singleton()->userPermissionClass->permissions = array('access CiviCRM');
+ $this->callAPIFailure('Contact', 'delete', array(
+ 'id' => $contactID,
+ 'check_permissions' => 1,
+ 'skip_undelete' => 1,
+ ));
+ $this->callAPISuccess('Contact', 'delete', array(
+ 'id' => $contactID,
+ 'check_permissions' => 0,
+ 'skip_undelete' => 1,
+ ));
+ }
+
/**
* Test update with check permissions set.
*/