public function SchedulerScheduledContentListAccessTest::testViewScheduledContentUser in Scheduler 8
Tests the scheduled content tab on the user page.
File
- tests/src/ Functional/ SchedulerScheduledContentListAccessTest.php, line 69 
Class
- SchedulerScheduledContentListAccessTest
- Tests access to the scheduled content overview page and user tab.
Namespace
Drupal\Tests\scheduler\FunctionalCode
public function testViewScheduledContentUser() {
  $assert = $this
    ->assertSession();
  // Access a scheduled content user tab as an anonymous visitor.
  $this
    ->drupalGet("user/{$this->schedulerUser->id()}/scheduled");
  // An anonymous visitor cannot access a user's scheduled content tab.
  $assert
    ->statusCodeEquals(403);
  // Try to access a users own scheduled content tab when they do not have
  // any scheduler permissions. This should give "403 Access Denied".
  $this
    ->drupalLogin($this->editorUser);
  $this
    ->drupalGet("user/{$this->editorUser->id()}/scheduled");
  $assert
    ->statusCodeEquals(403);
  // Access a users own scheduled content tab when they have only
  // 'schedule publishing of nodes' permission. This will give "200 OK".
  $this
    ->drupalLogin($this->schedulerUser);
  $this
    ->drupalGet("user/{$this->schedulerUser->id()}/scheduled");
  $assert
    ->statusCodeEquals(200);
  $assert
    ->pageTextContains('Node created by Scheduler User for publishing');
  $assert
    ->pageTextContains('Node created by Scheduler User for unpublishing');
  $assert
    ->pageTextNotContains('Node created by Scheduler Manager for unpublishing');
  // Access another users scheduled content tab as "Scheduler User". This
  // should not be possible and will give "403 Access Denied".
  $this
    ->drupalGet("user/{$this->schedulerManager->id()}/scheduled");
  $assert
    ->statusCodeEquals(403);
  // Access the users own scheduled content tab as "Scheduler Manager" with
  // only 'view scheduled content' permission.
  $this
    ->drupalLogin($this->schedulerManager);
  $this
    ->drupalGet("user/{$this->schedulerManager->id()}/scheduled");
  $assert
    ->statusCodeEquals(200);
  $assert
    ->pageTextContains('Node created by Scheduler Manager for publishing');
  $assert
    ->pageTextContains('Node created by Scheduler Manager for unpublishing');
  $assert
    ->pageTextNotContains('Node created by Scheduler User for unpublishing');
  // Access another users scheduled content tab as "Scheduler Manager".
  // The published and unpublished content should be listed.
  $this
    ->drupalGet("user/{$this->schedulerUser->id()}/scheduled");
  $assert
    ->statusCodeEquals(200);
  $assert
    ->pageTextContains('Node created by Scheduler User for publishing');
  $assert
    ->pageTextContains('Node created by Scheduler User for unpublishing');
}