public function DelegatableRolesTest::testAssignableRoles in Role Delegation 8
Test the roles that can be assigned by a given user.
@covers ::getAssignableRoles
File
- tests/
src/ Kernel/ DelegatableRolesTest.php, line 51
Class
- DelegatableRolesTest
- @coversDefaultClass \Drupal\role_delegation\DelegatableRoles
Namespace
Drupal\Tests\role_delegation\KernelCode
public function testAssignableRoles() {
$rid1 = $this
->createRole([]);
$rid2 = $this
->createRole([]);
$rid3 = $this
->createRole([]);
// Test the 'assign all roles permission'. We have to merge in the roles of
// the account as well because createUser() creates a new role.
$account = $this
->createUser([
'assign all roles',
]);
$this
->assertEquals(array_merge([
$rid1,
$rid2,
$rid3,
], $account
->getRoles(TRUE)), array_keys($this->delegatableRoles
->getAssignableRoles($account)));
// If they have these two roles, they can assign exactly those two roles.
$account = $this
->createUser([
"assign {$rid1} role",
"assign {$rid2} role",
]);
$this
->assertEquals([
$rid1,
$rid2,
], array_keys($this->delegatableRoles
->getAssignableRoles($account)));
// Doesn't matter what permissions they have here, they can never assign
// anonymous or authenticated roles.
$account = $this
->createUser([
'administer users',
'administer permissions',
]);
$this
->assertEquals([], $this->delegatableRoles
->getAssignableRoles($account));
}