CommentFieldsTest.php

Namespace

Drupal\Tests\history\Functional

File

core/modules/history/tests/src/Functional/CommentFieldsTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\history\Functional;

use Drupal\Tests\comment\Functional\CommentTestBase;
use PHPUnit\Framework\Attributes\Group;

/**
 * Tests fields on comments.
 */
class CommentFieldsTest extends CommentTestBase {
  
  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'field_ui',
  ];
  
  /**
   * {@inheritdoc}
   */
  protected $defaultTheme = 'stark';
  
  /**
   * Tests link building with non-default comment field names.
   */
  public function testCommentFieldLinksNonDefaultName() : void {
    $this->drupalCreateContentType([
      'type' => 'test_node_type',
    ]);
    $this->addDefaultCommentField('node', 'test_node_type', 'comment2');
    $web_user = $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',
      'promote' => TRUE,
    ]);
    // Go to the node first so that web_user2 see new comments.
    $this->drupalLogin($web_user);
    $this->drupalGet($node->toUrl());
    $this->postComment($node, 'Here is a comment', '', NULL, 'comment2');
    // We want to check the attached drupalSettings of
    // \Drupal\history\HistoryCommentLinkBuilder::buildCommentedEntityLinks.
    // Therefore we need a node listing, let's use views for that.
    $this->container
      ->get('module_installer')
      ->install([
      'views',
      'history',
    ], 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']);
  }

}

Classes

Title Deprecated Summary
CommentFieldsTest Tests fields on comments.

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