You are here

function oa_corePermissionWeb::test_oa_sectionsAccess in Open Atrium Core 7.2

File

tests/oa_corePermissionWeb.test, line 16
Tests the public interface of the oa_core_section_is_public function

Class

oa_corePermissionWeb
@file Tests the public interface of the oa_core_section_is_public function

Code

function test_oa_sectionsAccess() {
  extract($this
    ->createOaSpaceAndUsers());
  $space_admin_2 = $this
    ->createUserInOaSpace($space);
  $regular_user = $this
    ->createUserInOaSpace($space);
  $not_a_member = $this
    ->drupalCreateUser();

  // Create as admin.
  $og_roles = og_roles('node', $space->type, $space->nid, FALSE, FALSE);
  $rid = array_search(OG_ADMINISTRATOR_ROLE, $og_roles);
  og_role_grant('node', $space->nid, $space_admin_2->uid, $rid);
  $space_admin_2 = user_load($space_admin_2->uid);
  $this
    ->assertTrue($space->uid == $space_admin->uid, t('Space manager is owner of space'));
  $this
    ->assertTrue(og_user_access('node', $space->nid, 'manage members', $space_admin), t('Space manager can manage members'));
  $this
    ->assertTrue(og_user_access('node', $space->nid, 'manage members', $space_admin_2), t('Space admin can manage members'));
  $this
    ->assertTrue(oa_user_access('node', $space->nid, 'manage members', $space_admin), t('Space manager can manage members (oa)'));
  $this
    ->assertTrue(oa_user_access('node', $space->nid, 'manage members', $space_admin_2), t('Space admin can manage members (oa)'));
  $this
    ->assertTrue(og_user_access('node', $space->nid, 'create oa_discussion_post content', $space_admin_2), t('Space admin can create discussion post'));
  $this
    ->assertTrue(oa_user_access('node', $space->nid, 'create oa_discussion_post content', $space_admin_2), t('Space admin can create discussion post (oa)'));
  $this
    ->oaSetOGPermission('create oa_discussion_post content', 0);
  drupal_static_reset('oa_user_access_nids');
  $this
    ->assertFalse(og_user_access('node', $space->nid, 'create oa_discussion_post content', $regular_user), t('Regular user cannot create discussion post'));
  $this
    ->assertFalse(oa_user_access('node', $space->nid, 'create oa_discussion_post content', $regular_user), t('Regular user cannot create discussion post (oa)'));
  $this
    ->oaSetOGPermission('create oa_discussion_post content', 1);
  drupal_static_reset('oa_user_access_nids');
  $this
    ->assertTrue(og_user_access('node', $space->nid, 'create oa_discussion_post content', $regular_user), t('Regular user can create discussion post'));
  $this
    ->assertTrue(oa_user_access('node', $space->nid, 'create oa_discussion_post content', $regular_user), t('Regular user can create discussion post (oa)'));
  $this
    ->assertFalse(og_user_access('node', $space->nid, 'create oa_discussion_post content', $not_a_member), t('Non-member cannot create discussion post'));
  $this
    ->assertFalse(oa_user_access('node', $space->nid, 'create oa_discussion_post content', $not_a_member), t('Non-member cannot create discussion post (oa)'));
}