CalculatedPermissionsItemTest.php

Same filename and directory in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Session/CalculatedPermissionsItemTest.php

Namespace

Drupal\Tests\Core\Session

File

core/tests/Drupal/Tests/Core/Session/CalculatedPermissionsItemTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\Core\Session;

use Drupal\Core\Session\CalculatedPermissionsItem;
use Drupal\Tests\UnitTestCase;

/**
 * Tests the CalculatedPermissionsItem value object.
 *
 * @coversDefaultClass \Drupal\Core\Session\CalculatedPermissionsItem
 * @group Session
 */
class CalculatedPermissionsItemTest extends UnitTestCase {
  
  /**
   * Tests that the object values were set in the constructor.
   *
   * @covers ::__construct
   * @covers ::getIdentifier
   * @covers ::getScope
   * @covers ::getPermissions
   * @covers ::isAdmin
   */
  public function testConstructor() : void {
    $scope = 'some_scope';
    $item = new CalculatedPermissionsItem([
      'bar',
      'baz',
      'bar',
    ], FALSE, $scope, 'foo');
    $this->assertEquals($scope, $item->getScope(), 'Scope name was set correctly.');
    $this->assertEquals('foo', $item->getIdentifier(), 'Scope identifier was set correctly.');
    $this->assertEquals([
      'bar',
      'baz',
    ], $item->getPermissions(), 'Permissions were made unique and set correctly.');
    $this->assertFalse($item->isAdmin(), 'Admin flag was set correctly');
    $item = new CalculatedPermissionsItem([
      'bar',
      'baz',
      'bar',
    ], TRUE, $scope, 'foo');
    $this->assertEquals([], $item->getPermissions(), 'Permissions were emptied out for an admin item.');
    $this->assertTrue($item->isAdmin(), 'Admin flag was set correctly');
  }
  
  /**
   * Tests the permission check when the admin flag is not set.
   *
   * @covers ::hasPermission
   * @depends testConstructor
   */
  public function testHasPermission() : void {
    $item = new CalculatedPermissionsItem([
      'bar',
    ], FALSE, 'some_scope', 'foo');
    $this->assertFalse($item->hasPermission('baz'), 'Missing permission was not found.');
    $this->assertTrue($item->hasPermission('bar'), 'Existing permission was found.');
  }
  
  /**
   * Tests the permission check when the admin flag is set.
   *
   * @covers ::hasPermission
   * @depends testConstructor
   */
  public function testHasPermissionWithAdminFlag() : void {
    $item = new CalculatedPermissionsItem([
      'bar',
    ], TRUE, 'some_scope', 'foo');
    $this->assertTrue($item->hasPermission('baz'), 'Missing permission was found.');
    $this->assertTrue($item->hasPermission('bar'), 'Existing permission was found.');
  }

}

Classes

Title Deprecated Summary
CalculatedPermissionsItemTest Tests the CalculatedPermissionsItem value object.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.