function AccessResultTest::testAllowedIfHasPermissions

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAllowedIfHasPermissions()
  2. 8.9.x core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAllowedIfHasPermissions()
  3. 10 core/tests/Drupal/Tests/Core/Access/AccessResultTest.php \Drupal\Tests\Core\Access\AccessResultTest::testAllowedIfHasPermissions()

Tests allowedIfHasPermissions().

@covers ::allowedIfHasPermissions

@dataProvider providerTestAllowedIfHasPermissions

Parameters

string[] $permissions: The permissions to check for.

string $conjunction: The conjunction to use when checking for permission. 'AND' or 'OR'.

\Drupal\Core\Access\AccessResult $expected_access: The expected access check result.

File

core/tests/Drupal/Tests/Core/Access/AccessResultTest.php, line 923

Class

AccessResultTest
@coversDefaultClass <a href="/api/drupal/core%21lib%21Drupal%21Core%21Access%21AccessResult.php/class/AccessResult/11.x" title="Value object for passing an access result with cacheability metadata." class="local">\Drupal\Core\Access\AccessResult</a> @group Access

Namespace

Drupal\Tests\Core\Access

Code

public function testAllowedIfHasPermissions($permissions, $conjunction, AccessResult $expected_access) : void {
    $account = $this->createMock('\\Drupal\\Core\\Session\\AccountInterface');
    $account->expects($this->any())
        ->method('hasPermission')
        ->willReturnMap([
        [
            'allowed',
            TRUE,
        ],
        [
            'denied',
            FALSE,
        ],
    ]);
    if ($permissions) {
        $expected_access->cachePerPermissions();
    }
    $access_result = AccessResult::allowedIfHasPermissions($account, $permissions, $conjunction);
    $this->assertEquals($expected_access, $access_result);
}

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