class AccessAnnouncementTest

Same name and namespace in other branches
  1. 11.x core/modules/announcements_feed/tests/src/FunctionalJavascript/AccessAnnouncementTest.php \Drupal\Tests\announcements_feed\FunctionalJavascript\AccessAnnouncementTest

Test the access announcement permissions to get access announcement icon.

@group announcements_feed

Hierarchy

Expanded class hierarchy of AccessAnnouncementTest

File

core/modules/announcements_feed/tests/src/FunctionalJavascript/AccessAnnouncementTest.php, line 15

Namespace

Drupal\Tests\announcements_feed\FunctionalJavascript
View source
class AccessAnnouncementTest extends OffCanvasTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'user',
    'toolbar',
    'announcements_feed',
    'announce_feed_test',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * {@inheritdoc}
   */
  public function setUp() : void {
    parent::setUp();
    AnnounceTestHttpClientMiddleware::setAnnounceTestEndpoint('/announce-feed-json/community-feeds');
  }
  
  /**
   * Test of viewing announcements by a user with appropriate permission.
   */
  public function testAnnounceFirstLogin() : void {
    $this->drupalLogin($this->drupalCreateUser([
      'access toolbar',
      'access announcements',
    ]));
    $this->drupalGet('<front>');
    // Check that the user can see the toolbar.
    $this->assertSession()
      ->elementExists('css', '#toolbar-bar');
    // And the announcements.
    $this->assertSession()
      ->elementExists('css', '.toolbar-icon-announce');
  }
  
  /**
   * Testing announce icon without announce permission.
   */
  public function testAnnounceWithoutPermission() : void {
    // User without "access announcements" permission.
    $account = $this->drupalCreateUser([
      'access toolbar',
    ]);
    $this->drupalLogin($account);
    $this->drupalGet('<front>');
    // Check that the user can see the toolbar.
    $this->assertSession()
      ->elementExists('css', '#toolbar-bar');
    // But not the announcements.
    $this->assertSession()
      ->elementNotExists('css', '.toolbar-icon-announce');
    $this->drupalGet('admin/announcements_feed');
    $this->assertSession()
      ->responseContains('You are not authorized to access this page.');
  }

}

Members

Title Sort descending Modifiers Object type Summary
AccessAnnouncementTest::$defaultTheme protected property The theme to install as the default for testing.
AccessAnnouncementTest::$modules protected static property Modules to install.
AccessAnnouncementTest::setUp public function
AccessAnnouncementTest::testAnnounceFirstLogin public function Test of viewing announcements by a user with appropriate permission.
AccessAnnouncementTest::testAnnounceWithoutPermission public function Testing announce icon without announce permission.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.