public function OpenAtriumAccessTestCase::testGetSetGroupPermissions in Open Atrium Core 7.2
File
- modules/
oa_access/ tests/ oa_access.test, line 452 - Functional tests for the Open Atrium Access module.
Class
- OpenAtriumAccessTestCase
- Functional tests for the Open Atrium Access module.
Code
public function testGetSetGroupPermissions() {
$group_a = $this
->oaCreateGroupWithUser(array(
'title' => 'Group A',
), array(
'access content',
));
$group_b = $this
->oaCreateGroupWithUser(array(
'title' => 'Group B',
), array(
'access content',
));
$group_permissions = array(
$group_a['group']->nid => array(
'oa_access_test' => array(
'access oa_access_test',
'administer oa_access_test',
),
),
$group_b['group']->nid => array(
'oa_access_test' => array(
'access oa_access_test',
),
),
);
// First, verify that there are no permissions set.
$this
->assertEqual(oa_access_get_group_permissions(array_keys($group_permissions)), array(
$group_a['group']->nid => array(),
$group_b['group']->nid => array(),
));
// Set the permissions in the database, then get them back out and make
// sure they are the same.
oa_access_set_group_permissions($group_permissions);
$this
->assertEqual(oa_access_get_group_permissions(array_keys($group_permissions)), $group_permissions);
// We'll update only one of the groups permissions, but get both and make
// sure that we don't overwrite the wrong one.
$group_permissions[$group_b['group']->nid]['oa_access_test'] = array(
'administer oa_access_test',
);
$group_permissions_partial = $group_permissions;
unset($group_permissions_partial[$group_a['group']->nid]);
oa_access_set_group_permissions($group_permissions_partial);
$this
->assertEqual(oa_access_get_group_permissions(array_keys($group_permissions)), $group_permissions);
// Now, clear the static cache on 'oa_access_get_group_permissions' and
// try it again - this will pull from the database.
drupal_static_reset('oa_access_get_group_permissions');
$this
->assertEqual(oa_access_get_group_permissions(array_keys($group_permissions)), $group_permissions);
}