You are here

public function UserProtectionTest::testRolesProtection in User protect 8

Tests if the user's roles field has the expected protection.

File

tests/src/Functional/UserProtectionTest.php, line 74

Class

UserProtectionTest
Tests each UserProtection plugin in action.

Namespace

Drupal\Tests\userprotect\Functional

Code

public function testRolesProtection() {
  $protected_account = $this
    ->createProtectedUser([
    'user_roles',
  ]);

  // Add a role to the protected account.
  $rid1 = $this
    ->drupalCreateRole([]);
  $protected_account
    ->addRole($rid1);
  $protected_account
    ->save();

  // Add another role. We try to add this role to the user form later.
  $rid2 = $this
    ->drupalCreateRole([]);

  // Reload the user and check its roles.
  $protected_account = $this
    ->reloadEntity($protected_account);

  // Assert the protected account's roles.
  $this
    ->assertTrue($protected_account
    ->hasRole($rid1));
  $this
    ->assertFalse($protected_account
    ->hasRole($rid2));

  // Ensure a checkbox for the second role is not available.
  $this
    ->assertSession()
    ->fieldNotExists(sprintf('roles[%s]', $rid2));
}