You are here

public function OpenAtriumAccessTestCase::testGroupAdminPage in Open Atrium Core 7.2

File

modules/oa_access/tests/oa_access.test, line 669
Functional tests for the Open Atrium Access module.

Class

OpenAtriumAccessTestCase
Functional tests for the Open Atrium Access module.

Code

public function testGroupAdminPage() {

  // Create an admin user and login.
  $account = $this
    ->oaCreateUser(array(
    'administer oa_access permissions',
  ));
  $this
    ->drupalLogin($account);
  $group_a = $this
    ->oaCreateGroupWithUser(array(
    'title' => 'Group A',
  ), array(
    'access content',
  ));
  $group_b = $this
    ->oaCreateGroupWithUser(array(
    'title' => 'Group B',
  ), array(
    'access content',
  ));

  // Configure Group A with both permissions, but Group B only with one.
  $this
    ->drupalGet(OA_ACCESS_GROUP_ADMIN_PATH);
  $this
    ->assertText(t('Used to test Group-only permissions'));
  $this
    ->assertNoText(t('Used to test Team-only permissions'));
  $this
    ->assertText(t('All site users'));
  $this
    ->assertNoText(t('All Space members'));
  $this
    ->assertTrue($this
    ->hasSelectOption('permissions[oa_access_test][permission with all option for oa_access_test][groups][]', 0));
  $this
    ->assertFalse($this
    ->hasSelectOption('permissions[oa_access_test][access oa_access_test][groups][]', 0));
  $this
    ->oaPostPermissions(array(
    'oa_access_test' => array(
      'access oa_access_test' => array(
        $group_a['group']->nid,
        $group_b['group']->nid,
      ),
      'administer oa_access_test' => array(
        $group_a['group']->nid,
      ),
      'group permission for oa_access_test' => array(
        $group_a['group']->nid,
      ),
    ),
  ));

  // Get permissions via the API and make sure they match.
  $group_permissions = array(
    $group_a['group']->nid => array(
      'oa_access_test' => array(
        'access oa_access_test',
        'administer oa_access_test',
        'group permission for oa_access_test',
      ),
    ),
    $group_b['group']->nid => array(
      'oa_access_test' => array(
        'access oa_access_test',
      ),
    ),
  );
  $this
    ->assertEqual(oa_access_get_group_permissions(array_keys($group_permissions)), $group_permissions);
}