You are here

public function NodeAccessPagerTest::testForumPager in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/node/tests/src/Functional/NodeAccessPagerTest.php \Drupal\Tests\node\Functional\NodeAccessPagerTest::testForumPager()

Tests the forum node pager for nodes with multiple grants per realm.

File

core/modules/node/tests/src/Functional/NodeAccessPagerTest.php, line 80

Class

NodeAccessPagerTest
Tests access controlled node views have the right amount of comment pages.

Namespace

Drupal\Tests\node\Functional

Code

public function testForumPager() {

  // Look up the forums vocabulary ID.
  $vid = $this
    ->config('forum.settings')
    ->get('vocabulary');
  $this
    ->assertNotEmpty($vid, 'Forum navigation vocabulary ID is set.');

  // Look up the general discussion term.
  $tree = \Drupal::entityTypeManager()
    ->getStorage('taxonomy_term')
    ->loadTree($vid, 0, 1);
  $tid = reset($tree)->tid;
  $this
    ->assertNotEmpty($tid, 'General discussion term is found in the forum vocabulary.');

  // Create 30 nodes.
  for ($i = 0; $i < 30; $i++) {
    $this
      ->drupalCreateNode([
      'nid' => NULL,
      'type' => 'forum',
      'taxonomy_forums' => [
        [
          'target_id' => $tid,
        ],
      ],
    ]);
  }

  // View the general discussion forum page. With the default 25 nodes per
  // page there should be two pages for 30 nodes, no more.
  $this
    ->drupalLogin($this->webUser);
  $this
    ->drupalGet('forum/' . $tid);
  $this
    ->assertSession()
    ->responseContains('page=1');
  $this
    ->assertSession()
    ->responseNotContains('page=2');
}