You are here

protected function MasqueradeWebTestBase::setUp in Masquerade 8.2

Overrides BrowserTestBase::setUp

File

tests/src/Functional/MasqueradeWebTestBase.php, line 76

Class

MasqueradeWebTestBase
Base test class for Masquerade module web tests.

Namespace

Drupal\Tests\masquerade\Functional

Code

protected function setUp() {
  parent::setUp();

  // Create and configure User module's admin role.
  $this->admin_role = Role::create([
    'id' => 'administrator',
    'label' => 'Administrator',
  ]);

  // Users in this role get all permissions assigned by default.
  $this->admin_role
    ->set('is_admin', TRUE)
    ->save();

  // Create a 'masquerade' role to masquerade as users without roles.
  $this->masquerade_role = Role::create([
    'id' => 'masquerade',
    'label' => 'Masquerade',
  ]);
  $this->masquerade_role
    ->grantPermission('masquerade as authenticated')
    ->save();

  // Create an additional 'editor' role to masquerade as basic users.
  $this->editor_role = Role::create([
    'id' => 'editor',
    'label' => 'Editor',
  ]);
  $this->editor_role
    ->grantPermission('masquerade as masquerade')
    ->grantPermission('masquerade as authenticated')
    ->save();

  // Create a 'lead' role to masquerade as editors.
  $this->leadRole = Role::create([
    'id' => 'lead',
    'label' => 'Lead Editor',
  ]);
  $this->leadRole
    ->grantPermission('masquerade as editor')
    ->grantPermission('masquerade as authenticated')
    ->save();

  // Create an additional 'moderator' role to check 'masquerade as any user'.
  $this->moderator_role = Role::create([
    'id' => 'moderator',
    'label' => 'Moderator',
  ]);
  $this->moderator_role
    ->grantPermission('masquerade as any user')
    ->save();

  // Create test users with varying privilege levels.
  // Administrative user with User module's admin role *only*.
  $this->admin_user = $this
    ->drupalCreateUser();
  $this->admin_user
    ->setUsername('admin_user');
  $this->admin_user
    ->addRole($this->admin_role
    ->id());
  $this->admin_user
    ->save();

  // Moderator user.
  $this->moderator_user = $this
    ->drupalCreateUser();
  $this->moderator_user
    ->setUsername('moderator_user');
  $this->moderator_user
    ->addRole($this->moderator_role
    ->id());
  $this->moderator_user
    ->save();

  // Editor user.
  $this->editor_user = $this
    ->drupalCreateUser();
  $this->editor_user
    ->setUsername('editor_user');
  $this->editor_user
    ->addRole($this->editor_role
    ->id());
  $this->editor_user
    ->save();

  // Lead editor user.
  $this->leadEditorUser = $this
    ->drupalCreateUser();
  $this->leadEditorUser
    ->setUsername('lead_editor_user');
  $this->leadEditorUser
    ->addRole($this->leadRole
    ->id());
  $this->leadEditorUser
    ->save();

  // Super user.
  $this->superUser = $this
    ->drupalCreateUser();
  $this->superUser
    ->setUsername('super_user');
  $this->superUser
    ->addRole($this->editor_role
    ->id());
  $this->superUser
    ->addRole($this->admin_role
    ->id());
  $this->superUser
    ->save();

  // Masquerade user.
  $this->masquerade_user = $this
    ->drupalCreateUser();
  $this->masquerade_user
    ->setUsername('masquerade_user');
  $this->masquerade_user
    ->addRole($this->masquerade_role
    ->id());
  $this->masquerade_user
    ->save();

  // Authenticated user.
  $this->auth_user = $this
    ->drupalCreateUser();

  // Place block to allow unmasquerade link accessible.
  $this
    ->drupalPlaceBlock('system_menu_block:account');
}