You are here

public function OpenAtriumAccessTestCase::testTeamAdminPage in Open Atrium Core 7.2

File

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

Class

OpenAtriumAccessTestCase
Functional tests for the Open Atrium Access module.

Code

public function testTeamAdminPage() {

  // Create an admin user and login.
  $account = $this
    ->oaCreateUser(array(
    'administer oa_access permissions',
  ));
  $this
    ->drupalLogin($account);

  // Create a Space that all our users are going to belong to.
  $space1 = $this
    ->oaCreateNode(array(
    'title' => 'Space A',
    'type' => 'oa_space',
    'uid' => $account->uid,
  ));
  $team_a = $this
    ->oaCreateTeamWithUser(array(
    'title' => 'Team A',
  ), array(
    'access content',
  ), $space1);
  $team_b = $this
    ->oaCreateTeamWithUser(array(
    'title' => 'Team B',
  ), array(
    'access content',
  ), $space1);

  // Configure Team A with both permissions, but Team B only with one.
  $parts = explode('/', OA_ACCESS_TEAM_ADMIN_PATH);
  $parts[1] = 'node';
  $parts[2] = $space1->nid;
  $this
    ->drupalGet(implode('/', $parts));
  $this
    ->assertNoText(t('Used to test Group-only permissions'));
  $this
    ->assertText(t('Used to test Team-only permissions'));
  $this
    ->assertNoText(t('All site users'));
  $this
    ->assertText(t('All Space members'));
  $this
    ->assertTrue($this
    ->hasSelectOption('permissions[oa_access_test][permission with all option for oa_access_test][groups][]', $space1->nid));
  $this
    ->assertFalse($this
    ->hasSelectOption('permissions[oa_access_test][access oa_access_test][groups][]', $space1->nid));
  $this
    ->oaPostPermissions(array(
    'oa_access_test' => array(
      'access oa_access_test' => array(
        $team_a['team']->nid,
        $team_b['team']->nid,
      ),
      'administer oa_access_test' => array(
        $team_a['team']->nid,
      ),
      'team permission for oa_access_test' => array(
        $team_a['team']->nid,
      ),
    ),
  ));

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