api_v4_OAuthContactTokenTest
extends TestCase
in package
implements
HeadlessInterface, HookInterface, TransactionalInterface
uses
ContactTestTrait, Api3TestTrait
Create, read, and destroy contact-specific OAuth tokens
A logged in user who has permission to "manage my OAuth contact tokens" can create tokens associated with their own contact id, and can read/update/delete those tokens if they have at least view access to their own contact record.
A user who has permission to "manage all OAuth contact tokens" can create tokens associated with any contact, and can read/update/delete tokens associated with any contact for whom they have at least view access.
Users who have either of the "manage OAuth contact tokens" permissions can also get basic OAuthClient information, NOT including the client's secret.
Tags
Table of Contents
Interfaces
- HeadlessInterface
- Interface HeadlessInterface
- HookInterface
- TransactionalInterface
- Interface HeadlessInterface
Properties
- $apiversion : int
- API version to use for any api calls.
- $_apiversion : int
- Api version - easier to override than just a define
- $ids : mixed
- $hookEvents : mixed
Methods
- assertAPIArrayComparison() : mixed
- Check that api returned 'is_error' => 1 else provide full message
- assertAPIDeleted() : mixed
- Check that a deleted item has been deleted.
- assertAPIFailure() : void
- Check that api returned 'is_error' => 1.
- assertAPISuccess() : mixed
- Check that api returned 'is_error' => 0.
- callAPIAndDocument() : array<string|int, mixed>|int
- callAPIFailure() : array<string|int, mixed>|int
- This function exists to wrap api functions.
- callAPISuccess() : array<string|int, mixed>|int
- wrap api functions.
- callAPISuccessGetCount() : array<string|int, mixed>|int
- This function exists to wrap api getValue function & check the result so we can ensure they succeed & throw exceptions without littering the test with checks There is a type check in this
- callAPISuccessGetSingle() : array<string|int, mixed>|int
- This function exists to wrap api getsingle function & check the result so we can ensure they succeed & throw exceptions without litterering the test with checks
- callAPISuccessGetValue() : array<string|int, mixed>|int
- This function wraps the getValue api and checks the result.
- civicrm_api() : array<string|int, mixed>|int
- A stub for the API interface. This can be overriden by subclasses to change how the API is called.
- contactDelete() : void
- Delete contact, ensuring it is not the domain contact
- createLoggedInUser() : int
- Emulate a logged in user since certain functions use that.
- groupContactCreate() : int
- Function to add a Group.
- groupCreate() : int
- Add a Group.
- groupDelete() : mixed
- Delete a Group.
- hook_civicrm_post() : mixed
- householdCreate() : int
- Generic function to create Household, to be used in test cases
- individualCreate() : int
- Generic function to create Individual, to be used in test cases
- organizationCreate() : int
- Generic function to create Organisation, to be used in test cases
- runApi4Legacy() : array<string|int, mixed>|int
- Emulate v3 syntax so we can run api3 tests on v4
- sampleContact() : array<string|int, mixed>
- Helper function for getting sample contact properties.
- setUp() : void
- setUpHeadless() : CiviEnvBuilder
- The setupHeadless function runs at the start of each test case, right before the headless environment reboots.
- tearDown() : void
- testCreate() : mixed
- testDelete() : mixed
- testGetByScope() : mixed
- testGetClientDetails() : mixed
- testPostHook() : mixed
- testRead() : mixed
- testUpdate() : mixed
- versionThreeAndFour() : array<string|int, mixed>
- Get the api versions to test.
- runApi4LegacyChain() : array<string|int, mixed>
- _contactCreate() : int
- Private helper function for calling civicrm_contact_add.
- createClient() : array<string|int, mixed>|null
- createOwnAndStrangerTokens() : array<string|int, mixed>
- createTestContactIDs() : array<string|int, mixed>
- getTestTokenCreateValues() : mixed
- makeToken() : array<string|int, mixed>|null
- usePerms() : mixed
Properties
$apiversion
API version to use for any api calls.
public
int
$apiversion
= 4
$_apiversion
Api version - easier to override than just a define
protected
int
$_apiversion
= 3
$ids
protected
mixed
$ids
= []
$hookEvents
private
mixed
$hookEvents
Methods
assertAPIArrayComparison()
Check that api returned 'is_error' => 1 else provide full message
public
assertAPIArrayComparison(array<string|int, mixed> $result, mixed $expected[, array<string|int, mixed> $valuesToExclude = [] ][, string $prefix = '' ]) : mixed
Parameters
- $result : array<string|int, mixed>
- $expected : mixed
- $valuesToExclude : array<string|int, mixed> = []
- $prefix : string = ''
-
Extra test to add to message.
assertAPIDeleted()
Check that a deleted item has been deleted.
public
assertAPIDeleted(mixed $entity, mixed $id) : mixed
Parameters
- $entity : mixed
- $id : mixed
assertAPIFailure()
Check that api returned 'is_error' => 1.
public
assertAPIFailure(array<string|int, mixed> $apiResult[, string $prefix = '' ][, string|null $expectedError = NULL ]) : void
Parameters
- $apiResult : array<string|int, mixed>
-
Api result.
- $prefix : string = ''
-
Extra test to add to message.
- $expectedError : string|null = NULL
assertAPISuccess()
Check that api returned 'is_error' => 0.
public
assertAPISuccess(array<string|int, mixed> $apiResult[, string $prefix = '' ]) : mixed
Parameters
- $apiResult : array<string|int, mixed>
-
Api result.
- $prefix : string = ''
-
Extra test to add to message.
callAPIAndDocument()
public
callAPIAndDocument(string $entity, string $action, array<string|int, mixed> $params) : array<string|int, mixed>|int
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed>
Return values
array<string|int, mixed>|intcallAPIFailure()
This function exists to wrap api functions.
public
callAPIFailure(string $entity, string $action[, array<string|int, mixed> $params = [] ][, string $expectedErrorMessage = NULL ][, null $extraOutput = NULL ]) : array<string|int, mixed>|int
so we can ensure they fail where expected & throw exceptions without litterering the test with checks
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed> = []
- $expectedErrorMessage : string = NULL
-
Error.
- $extraOutput : null = NULL
Return values
array<string|int, mixed>|intcallAPISuccess()
wrap api functions.
public
callAPISuccess(string $entity, string $action[, array<string|int, mixed> $params = [] ][, mixed $checkAgainst = NULL ]) : array<string|int, mixed>|int
so we can ensure they succeed & throw exceptions without litterering the test with checks
Parameters
- $entity : string
- $action : string
- $params : array<string|int, mixed> = []
- $checkAgainst : mixed = NULL
-
Optional value to check result against, implemented for getvalue,. getcount, getsingle. Note that for getvalue the type is checked rather than the value for getsingle the array is compared against an array passed in - the id is not compared (for better or worse )
Return values
array<string|int, mixed>|intcallAPISuccessGetCount()
This function exists to wrap api getValue function & check the result so we can ensure they succeed & throw exceptions without littering the test with checks There is a type check in this
public
callAPISuccessGetCount(string $entity, array<string|int, mixed> $params[, int $count = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $count : int = NULL
Return values
array<string|int, mixed>|intcallAPISuccessGetSingle()
This function exists to wrap api getsingle function & check the result so we can ensure they succeed & throw exceptions without litterering the test with checks
public
callAPISuccessGetSingle(string $entity, array<string|int, mixed> $params[, array<string|int, mixed> $checkAgainst = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $checkAgainst : array<string|int, mixed> = NULL
-
Array to compare result against.
- boolean
- integer
- double
- string
- array
- object
Return values
array<string|int, mixed>|intcallAPISuccessGetValue()
This function wraps the getValue api and checks the result.
public
callAPISuccessGetValue(string $entity, array<string|int, mixed> $params[, string $type = NULL ]) : array<string|int, mixed>|int
Parameters
- $entity : string
- $params : array<string|int, mixed>
- $type : string = NULL
-
Per http://php.net/manual/en/function.gettype.php possible types.
- boolean
- integer
- double
- string
- array
- object
Return values
array<string|int, mixed>|intcivicrm_api()
A stub for the API interface. This can be overriden by subclasses to change how the API is called.
public
civicrm_api(mixed $entity, mixed $action[, array<string|int, mixed> $params = [] ]) : array<string|int, mixed>|int
Parameters
- $entity : mixed
- $action : mixed
- $params : array<string|int, mixed> = []
Return values
array<string|int, mixed>|intcontactDelete()
Delete contact, ensuring it is not the domain contact
public
contactDelete(int $contactID) : void
Parameters
- $contactID : int
-
Contact ID to delete
createLoggedInUser()
Emulate a logged in user since certain functions use that.
public
createLoggedInUser() : int
value to store a record in the DB (like activity)
Tags
Return values
int —Contact ID of the created user.
groupContactCreate()
Function to add a Group.
public
groupContactCreate(int $groupID[, int $totalCount = 10 ][, bool $random = FALSE ]) : int
Parameters
- $groupID : int
- $totalCount : int = 10
- $random : bool = FALSE
Tags
Return values
int —groupId of created group
groupCreate()
Add a Group.
public
groupCreate([array<string|int, mixed> $params = [] ][, string $identifier = 'group' ]) : int
Parameters
- $params : array<string|int, mixed> = []
- $identifier : string = 'group'
Return values
int —groupId of created group
groupDelete()
Delete a Group.
public
groupDelete(int $gid) : mixed
Parameters
- $gid : int
hook_civicrm_post()
public
hook_civicrm_post(mixed $op, mixed $objectName, mixed $objectId, mixed &$objectRef) : mixed
Parameters
- $op : mixed
- $objectName : mixed
- $objectId : mixed
- $objectRef : mixed
householdCreate()
Generic function to create Household, to be used in test cases
public
householdCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'household_0' ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'household_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
Return values
int —id of Household created
individualCreate()
Generic function to create Individual, to be used in test cases
public
individualCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'individual_0' ][, bool $random = FALSE ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'individual_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
- $random : bool = FALSE
-
Random is deprecated.
Return values
int —id of Individual created
organizationCreate()
Generic function to create Organisation, to be used in test cases
public
organizationCreate([array<string|int, mixed> $params = [] ][, int|string $identifier = 'organization_0' ]) : int
Parameters
- $params : array<string|int, mixed> = []
-
parameters for civicrm_contact_add api function call
- $identifier : int|string = 'organization_0'
-
If the identifier is numeric (discouraged) it will affect which contact is loaded. Numeric identifiers and values for random other than FALSE are generally discouraged in favour if specifying data in params where variety is needed.
Return values
int —id of Organisation created
runApi4Legacy()
Emulate v3 syntax so we can run api3 tests on v4
public
runApi4Legacy(mixed $v3Entity, mixed $v3Action[, array<string|int, mixed> $v3Params = [] ]) : array<string|int, mixed>|int
Parameters
- $v3Entity : mixed
- $v3Action : mixed
- $v3Params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>|intsampleContact()
Helper function for getting sample contact properties.
public
sampleContact(string $contact_type[, int $seq = 0 ][, bool $random = FALSE ]) : array<string|int, mixed>
Parameters
- $contact_type : string
-
enum contact type: Individual, Organization
- $seq : int = 0
-
sequence number for the values of this type
- $random : bool = FALSE
Return values
array<string|int, mixed> —properties of sample contact (ie. $params for API call)
setUp()
public
setUp() : void
setUpHeadless()
The setupHeadless function runs at the start of each test case, right before the headless environment reboots.
public
setUpHeadless() : CiviEnvBuilder
It should perform any necessary steps required for putting the database in a consistent baseline -- such as loading schema and extensions.
The utility \Civi\Test::headless()
provides a number of helper functions
for managing this setup, and it includes optimizations to avoid redundant
setup work.
Return values
CiviEnvBuildertearDown()
public
tearDown() : void
testCreate()
public
testCreate() : mixed
testDelete()
public
testDelete() : mixed
testGetByScope()
public
testGetByScope() : mixed
testGetClientDetails()
public
testGetClientDetails() : mixed
testPostHook()
public
testPostHook() : mixed
testRead()
public
testRead() : mixed
testUpdate()
public
testUpdate() : mixed
versionThreeAndFour()
Get the api versions to test.
public
versionThreeAndFour() : array<string|int, mixed>
Return values
array<string|int, mixed>runApi4LegacyChain()
protected
runApi4LegacyChain(string $key, mixed $params, string $mainEntity, array<string|int, mixed> $result, bool $sequential) : array<string|int, mixed>
Parameters
- $key : string
- $params : mixed
- $mainEntity : string
- $result : array<string|int, mixed>
- $sequential : bool
Tags
Return values
array<string|int, mixed>_contactCreate()
Private helper function for calling civicrm_contact_add.
private
_contactCreate(array<string|int, mixed> $params[, string $identifier = 'Contact' ]) : int
Parameters
- $params : array<string|int, mixed>
-
For civicrm_contact_add api function call.
- $identifier : string = 'Contact'
Return values
int —id of contact created
createClient()
private
createClient() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullcreateOwnAndStrangerTokens()
private
createOwnAndStrangerTokens(mixed $client, mixed $loggedInContactID, mixed $notLoggedInContactID) : array<string|int, mixed>
Parameters
- $client : mixed
- $loggedInContactID : mixed
- $notLoggedInContactID : mixed
Return values
array<string|int, mixed>createTestContactIDs()
private
createTestContactIDs() : array<string|int, mixed>
Return values
array<string|int, mixed>getTestTokenCreateValues()
private
getTestTokenCreateValues(mixed $client, mixed $contactId, mixed $prefix) : mixed
Parameters
- $client : mixed
- $contactId : mixed
- $prefix : mixed
makeToken()
private
makeToken(array<string|int, mixed> $values) : array<string|int, mixed>|null
Parameters
- $values : array<string|int, mixed>
Return values
array<string|int, mixed>|nullusePerms()
private
usePerms(array<string|int, mixed> $permissions) : mixed
Parameters
- $permissions : array<string|int, mixed>