You are here

public function WorkspaceViewTest::testViewAnyWorkspace in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/workspaces/tests/src/Functional/WorkspaceViewTest.php \Drupal\Tests\workspaces\Functional\WorkspaceViewTest::testViewAnyWorkspace()

Verifies that a user can view any workspace.

File

core/modules/workspaces/tests/src/Functional/WorkspaceViewTest.php, line 68

Class

WorkspaceViewTest
Tests permission controls on workspaces.

Namespace

Drupal\Tests\workspaces\Functional

Code

public function testViewAnyWorkspace() {
  $permissions = [
    'access administration pages',
    'administer site configuration',
    'create workspace',
    'edit own workspace',
    'view any workspace',
  ];
  $editor1 = $this
    ->drupalCreateUser($permissions);

  // Login as a limited-access user and create a workspace.
  $this
    ->drupalLogin($editor1);
  $this
    ->createWorkspaceThroughUi('Bears', 'bears');
  $bears = Workspace::load('bears');

  // Now login as a different user and create a workspace.
  $editor2 = $this
    ->drupalCreateUser($permissions);
  $this
    ->drupalLogin($editor2);
  $this
    ->createWorkspaceThroughUi('Packers', 'packers');
  $packers = Workspace::load('packers');

  // Load the activate form for the Bears workspace. This user should be
  // able to see both workspaces because of the "view any" permission.
  $this
    ->drupalGet("admin/config/workflow/workspaces/manage/{$bears->id()}/activate");
  $this
    ->assertSession()
    ->statusCodeEquals(200);

  // But editor 2 should be able to activate the Packers workspace.
  $this
    ->drupalGet("admin/config/workflow/workspaces/manage/{$packers->id()}/activate");
  $this
    ->assertSession()
    ->statusCodeEquals(200);
}