function CalculatedPermissionsTest::testConstructor

Same name and namespace in other branches
  1. 10 core/tests/Drupal/Tests/Core/Session/CalculatedPermissionsTest.php \Drupal\Tests\Core\Session\CalculatedPermissionsTest::testConstructor()

Tests that the object values were set in the constructor.

File

core/tests/Drupal/Tests/Core/Session/CalculatedPermissionsTest.php, line 24

Class

CalculatedPermissionsTest
Tests the CalculatedPermissions value object.

Namespace

Drupal\Tests\Core\Session

Code

public function testConstructor() : void {
    $item_a = new CalculatedPermissionsItem([
        'baz',
    ], FALSE, 'scope_a', 'foo');
    $item_b = new CalculatedPermissionsItem([
        'bob',
        'charlie',
    ], FALSE, 'scope_b', 1);
    $calculated_permissions = $this->prophesize(CalculatedPermissionsInterface::class);
    $calculated_permissions->getItems()
        ->willReturn([
        $item_a,
        $item_b,
    ]);
    $calculated_permissions->getCacheTags()
        ->willReturn([
        '24',
    ]);
    $calculated_permissions->getCacheContexts()
        ->willReturn([
        'Oct',
    ]);
    $calculated_permissions->getCacheMaxAge()
        ->willReturn(1986);
    $calculated_permissions = new CalculatedPermissions($calculated_permissions->reveal());
    $this->assertSame($item_a, $calculated_permissions->getItem('scope_a', 'foo'), 'Managed to retrieve the calculated permissions item by scope and identifier.');
    $this->assertFalse($calculated_permissions->getItem('scope_a', '404-id-not-found'), 'Requesting a non-existent identifier fails correctly.');
    $this->assertSame([
        $item_a,
        $item_b,
    ], $calculated_permissions->getItems(), 'Successfully retrieved all items regardless of scope.');
    $this->assertSame([
        'scope_a',
        'scope_b',
    ], $calculated_permissions->getScopes(), 'Successfully retrieved all scopes.');
    $this->assertSame([
        $item_a,
    ], $calculated_permissions->getItemsByScope('scope_a'), 'Successfully retrieved all items by scope.');
    $this->assertSame([
        '24',
    ], $calculated_permissions->getCacheTags(), 'Successfully inherited all cache tags.');
    $this->assertSame([], $calculated_permissions->getCacheContexts(), 'All cache contexts were cleared so they do not bubble up.');
    $this->assertSame(1986, $calculated_permissions->getCacheMaxAge(), 'Successfully inherited cache max-age.');
}

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