You are here

function LdapAuthorizationOg1Tests::testFlags in Lightweight Directory Access Protocol (LDAP) 8.2

authorization configuration flags tests clumped together

File

ldap_authorization/tests/Og1Tests.test, line 296

Class

LdapAuthorizationOg1Tests

Code

function testFlags() {
  $sid = 'activedirectory1';
  $this
    ->prepTestData(LDAP_TEST_LDAP_NAME, array(
    $sid,
  ), 'provisionToDrupal', 'default', 'og_group15');
  $og_group_consumer = ldap_authorization_get_consumers('og_group', TRUE, TRUE);
  list($og_gryffindor_group, $og_gryffindor_node) = ldap_authorization_og1_get_group('gryffindor', 'group_name');
  list($og_students_group, $og_students_node) = ldap_authorization_og1_get_group('students', 'group_name');
  list($og_faculty_group, $og_faculty_node) = ldap_authorization_og1_get_group('faculty', 'group_name');
  list($og_users_group, $og_users_node) = ldap_authorization_og1_get_group('users', 'group_name');
  list($og_slytherin_group, $og_slytherin_node) = ldap_authorization_og1_get_group('slytherin', 'group_name');
  $anonymous_rid = ldap_authorization_og_rid_from_role_name(OG_ANONYMOUS_ROLE);
  $member_rid = ldap_authorization_og_rid_from_role_name(OG_AUTHENTICATED_ROLE);
  $admin_rid = ldap_authorization_og_rid_from_role_name(OG_ADMINISTRATOR_ROLE);
  $dungeon_master_rid = ldap_authorization_og_rid_from_role_name('dungeon-master');
  $time_keeper = ldap_authorization_og_rid_from_role_name('time-keeper');
  $students_membership_consumer_id = $og_students_group->gid . '-' . $member_rid;
  $gryffindor_membership_consumer_id = $og_gryffindor_group->gid . '-' . $member_rid;

  /**
   * LDAP_authorz.Flags.status=0: Disable ldap_authorization_drupal_role configuration and make sure no authorizations performed
   */
  list($props_set_display, $props_set_correctly) = $this
    ->checkConsumerConfSetup('og_group15');
  $this
    ->assertTrue($props_set_correctly, 'Authorization Configuration set correctly in test setup', 'LDAP_authorz.Flags.setup.0');
  if (!$props_set_correctly) {
    debug('LDAP_authorz.Flags.setup.0 properties not set correctly');
    debug($props_set_display);
  }
  $test_id = 'LDAP_authorz.Flags.status.0';
  $this->consumerAdminConf['og_group']->useFirstAttrAsGroupId = 0;
  $this->consumerAdminConf['og_group']->status = 0;
  $this->consumerAdminConf['og_group']
    ->save();
  $og_group_consumer = ldap_authorization_get_consumer_object('og_group');
  $hpotter = $this
    ->deleteAndRecreateUser('hpotter');
  list($new_authorizations, $notifications) = ldap_authorizations_user_authorizations($hpotter, 'test_query', 'og_group');

  // just see if the correct ones are derived.
  $groups1 = $new_authorizations['og_group'];
  $this
    ->assertTrue(count($new_authorizations['og_group']) == 0, 'disabled consumer configuration disallows authorizations.', $test_id);
  $test_id = 'LDAP_authorz.Flags.status.1';
  $this->consumerAdminConf['og_group']->status = 1;
  $this->consumerAdminConf['og_group']
    ->save();
  $og_group_consumer = ldap_authorization_get_consumer_object('og_group');
  list($new_authorizations, $notifications) = ldap_authorizations_user_authorizations($hpotter, 'test_query', 'og_group');

  // just see if the correct ones are derived.
  $correct_groups = !empty($new_authorizations['og_group'][$students_membership_consumer_id]) && !empty($new_authorizations['og_group'][$gryffindor_membership_consumer_id]);
  $this
    ->assertTrue($correct_groups, 'enabled consumer configuration allows authorizations.', $test_id);
  if (!$correct_groups) {
    debug($test_id . "new_authorizations {$gryffindor_membership_consumer_id} and {$students_membership_consumer_id} not found in:");
    debug($new_authorizations['og_group']);
    debug($notifications);
  }
}