public function CommentFieldsTest::testCommentFieldLinksNonDefaultName in Drupal 9
Same name and namespace in other branches
- 8 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 101
Class
- CommentFieldsTest
- Tests fields on comments.
Namespace
Drupal\Tests\comment\FunctionalCode
public function testCommentFieldLinksNonDefaultName() {
$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 webuser2 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']);
}