function CommentFieldsTest::testCommentFieldLinksNonDefaultName

Same name and namespace in other branches
  1. 9 core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldLinksNonDefaultName()
  2. 8.9.x core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldLinksNonDefaultName()
  3. 11.x core/modules/comment/tests/src/Functional/CommentFieldsTest.php \Drupal\Tests\comment\Functional\CommentFieldsTest::testCommentFieldLinksNonDefaultName()

Tests link building with non-default comment field names.

File

core/modules/comment/tests/src/Functional/CommentFieldsTest.php, line 100

Class

CommentFieldsTest
Tests fields on comments.

Namespace

Drupal\Tests\comment\Functional

Code

public function testCommentFieldLinksNonDefaultName() : void {
  $this->drupalCreateContentType([
    'type' => 'test_node_type',
  ]);
  $this->addDefaultCommentField('node', 'test_node_type', 'comment2');
  $web_user2 = $this->drupalCreateUser([
    'access comments',
    'post comments',
    'create article content',
    'edit own comments',
    'skip comment approval',
    'access content',
  ]);
  // Create a sample node.
  $node = $this->drupalCreateNode([
    'title' => 'Baloney',
    'type' => 'test_node_type',
  ]);
  // Go to the node first so that web_user2 see new comments.
  $this->drupalLogin($web_user2);
  $this->drupalGet($node->toUrl());
  $this->drupalLogout();
  // Test that buildCommentedEntityLinks() does not break when the 'comment'
  // field does not exist. Requires at least one comment.
  $this->drupalLogin($this->webUser);
  $this->postComment($node, 'Here is a comment', '', NULL, 'comment2');
  $this->drupalLogout();
  $this->drupalLogin($web_user2);
  // We want to check the attached drupalSettings of
  // \Drupal\comment\CommentLinkBuilder::buildCommentedEntityLinks. Therefore
  // we need a node listing, let's use views for that.
  $this->container
    ->get('module_installer')
    ->install([
    'views',
  ], TRUE);
  $this->drupalGet('node');
  $link_info = $this->getDrupalSettings()['comment']['newCommentsLinks']['node']['comment2']['2'];
  $this->assertSame(1, $link_info['new_comment_count']);
  $this->assertSame($node->toUrl('canonical', [
    'fragment' => 'new',
  ])
    ->toString(), $link_info['first_new_comment_link']);
}

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