You are here

public function AuthcacheEnumKeysTestCase::testKeyEnumKeys in Authenticated User Page Caching (Authcache) 7.2

Test enumeration of anonymous and authenticated keys.

File

modules/authcache_enum/lib/Drupal/authcache_enum/Tests/AuthcacheEnumKeysTestCase.php, line 53
Defines a test case covering _authcache_enum_cartesian.

Class

AuthcacheEnumKeysTestCase
Unit tests for _authcache_enum_comb.

Namespace

Drupal\authcache_enum\Tests

Code

public function testKeyEnumKeys() {
  global $base_root;
  variable_set('authcache_roles', array());
  $expect = array(
    $base_root,
  );
  $result = authcache_enum_keys();
  $this
    ->assertEqual($expect, $result);
  drupal_static_reset();

  // Test anonymous and authenticated roles.
  variable_set('authcache_roles', array(
    DRUPAL_ANONYMOUS_RID => DRUPAL_ANONYMOUS_RID,
    DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID,
  ));
  $result = authcache_enum_keys();
  $anonymous_key = array_pop($result);
  $this
    ->assertEqual($base_root, $anonymous_key);

  // Expect 1 additional key for authenticated users.
  $this
    ->assertEqual(1, count($result));
  drupal_static_reset();

  // Test additional roles.
  $rid1 = $this
    ->drupalCreateRole(array());
  $rid2 = $this
    ->drupalCreateRole(array());
  variable_set('authcache_roles', array(
    DRUPAL_ANONYMOUS_RID => DRUPAL_ANONYMOUS_RID,
    DRUPAL_AUTHENTICATED_RID => DRUPAL_AUTHENTICATED_RID,
    $rid1 => $rid1,
    $rid2 => $rid2,
  ));
  $result = authcache_enum_keys();
  $anonymous_key = array_pop($result);
  $this
    ->assertEqual($base_root, $anonymous_key);

  // Expect 4 keys for authenticated users:
  // * Only authenticated rid
  // * Only rid1
  // * Only rid2
  // * rid1 and rid2
  $this
    ->assertEqual(4, count($result));
}