X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=tests%2Fphpunit%2Fapi%2Fv3%2FContactTest.php;h=a4e40ca6a2545ba63488044270bc5aa680041aa1;hb=d0e1eff24573414e78109575961c62fb081259b7;hp=3c3603bfcbd5be6db1e756000fbae27ae1170893;hpb=c1c4f1e167414705fbceb41881d8f5cf91ca2d63;p=civicrm-core.git diff --git a/tests/phpunit/api/v3/ContactTest.php b/tests/phpunit/api/v3/ContactTest.php index 3c3603bfcb..a4e40ca6a2 100644 --- a/tests/phpunit/api/v3/ContactTest.php +++ b/tests/phpunit/api/v3/ContactTest.php @@ -171,9 +171,8 @@ class api_v3_ContactTest extends CiviUnitTestCase { 'contact_type' => 'Does not Exist', 'version' => $this->_apiversion, ); - $contact = civicrm_api('contact', 'create', $params); - $this->assertEquals($contact['is_error'], 1, "In line " . __LINE__); - $this->assertEquals('contact_type `Does not Exist` is not valid.', $contact['error_message']); + $result = $this->callAPIFailure('contact', 'create', $params); + $this->assertEquals("'Does not Exist' is not a valid option for field contact_type", $result['error_message']); } /** @@ -353,20 +352,17 @@ class api_v3_ContactTest extends CiviUnitTestCase { $this->assertEquals(1, $contact['id'], "In line " . __LINE__); // delete the contact - civicrm_api('contact', 'delete', $contact); + $this->callAPISuccess('contact', 'delete', $contact); } /** - * Verify that attempt to create organization contact with only - * organization name succeeds + * Verify that attempt to create organization contact without organization name fails */ function testCreateNoNameOrganization() { $params = array( 'first_name' => 'The abc Organization', 'contact_type' => 'Organization', - 'version' => $this->_apiversion, ); - $result = civicrm_api('contact', 'create', $params); - $this->assertEquals(1, $result['is_error'], "In line " . __LINE__); + $result = $this->callAPIFailure('contact', 'create', $params); } /** * check with complete array + custom field @@ -392,6 +388,21 @@ class api_v3_ContactTest extends CiviUnitTestCase { $this->customGroupDelete($ids['custom_group_id']); } + /** + * CRM-12773 - expectation is that civicrm quietly ignores + * fields without values + */ + function testCreateWithNULLCustomCRM12773() { + $ids = $this->entityCustomGroupWithSingleFieldCreate(__FUNCTION__, __FILE__); + $params = $this->_params; + $params['custom_' . $ids['custom_field_id']] = NULL; + $result = civicrm_api('contact', 'create', $params); + $this->assertAPISuccess($result, ' in line ' . __LINE__); + $this->customFieldDelete($ids['custom_field_id']); + $this->customGroupDelete($ids['custom_group_id']); + } + + /* * Test creating a current employer through API */ @@ -773,8 +784,7 @@ class api_v3_ContactTest extends CiviUnitTestCase { 'version' => $this->_apiversion, ); - $result = civicrm_api('contact', 'create', $params); - $this->assertEquals(1, $result['is_error'], "In line " . __LINE__); + $result = $this->callAPIFailure('contact', 'create', $params); } /** * Verify that attempt to create individual contact with first @@ -886,8 +896,7 @@ class api_v3_ContactTest extends CiviUnitTestCase { 'version' => $this->_apiversion, ); - $result = civicrm_api('contact', 'create', $params); - $this->assertEquals(1, $result['is_error'], 'should fail due to missing household name on line ' . __LINE__); + $result = $this->callAPIFailure('contact', 'create', $params); } /** @@ -1720,8 +1729,7 @@ class api_v3_ContactTest extends CiviUnitTestCase { ); $config = CRM_Core_Config::singleton(); $config->userPermissionClass->permissions = array('access CiviCRM'); - $result = civicrm_api('contact', 'create', $params); - $this->assertEquals(1, $result['is_error'], 'lacking permissions should not be enough to create a contact'); + $result = $this->callAPIFailure('contact', 'create', $params); $this->assertEquals('API permission check failed for contact/create call; missing permission: add contacts.', $result['error_message'], 'lacking permissions should not be enough to create a contact'); $config->userPermissionClass->permissions = array('access CiviCRM', 'add contacts', 'import contacts'); @@ -1736,8 +1744,7 @@ class api_v3_ContactTest extends CiviUnitTestCase { $params = array('id' => $result['id'], 'contact_type' => 'Individual', 'last_name' => 'Bar', 'check_permissions' => TRUE, 'version' => $this->_apiversion); $config->userPermissionClass->permissions = array('access CiviCRM'); - $result = civicrm_api('contact', 'update', $params); - $this->assertEquals(1, $result['is_error'], 'lacking permissions should not be enough to update a contact'); + $result = $this->callAPIFailure('contact', 'update', $params); $this->assertEquals('API permission check failed for contact/update call; missing permission: edit all contacts.', $result['error_message'], 'lacking permissions should not be enough to update a contact'); $config->userPermissionClass->permissions = array('access CiviCRM', 'add contacts', 'view all contacts', 'edit all contacts', 'import contacts');