You are here

class oa_corePermissionWeb in Open Atrium Core 7.2

@file Tests the public interface of the oa_core_section_is_public function

Hierarchy

Expanded class hierarchy of oa_corePermissionWeb

File

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

View source
class oa_corePermissionWeb extends oa_coreBaseWebTest {
  static function getInfo() {
    return array(
      'name' => 'Test permissioning',
      'description' => 'Test space permissioning',
      'group' => 'OA',
    );
  }
  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)'));
  }

}

Members