You are here

public function CommentNodeChangesTest::testNodeDeletion in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/comment/tests/src/Functional/CommentNodeChangesTest.php \Drupal\Tests\comment\Functional\CommentNodeChangesTest::testNodeDeletion()

Tests that comments are deleted with the node.

File

core/modules/comment/tests/src/Functional/CommentNodeChangesTest.php, line 24

Class

CommentNodeChangesTest
Tests that comments behave correctly when the node is changed.

Namespace

Drupal\Tests\comment\Functional

Code

public function testNodeDeletion() {
  $this
    ->drupalLogin($this->webUser);
  $comment = $this
    ->postComment($this->node, $this
    ->randomMachineName(), $this
    ->randomMachineName());
  $this
    ->assertInstanceOf(Comment::class, $comment);
  $this->node
    ->delete();
  $this
    ->assertNull(Comment::load($comment
    ->id()), 'The comment could not be loaded after the node was deleted.');

  // Make sure the comment field storage and all its fields are deleted when
  // the node type is deleted.
  $this
    ->assertNotNull(FieldStorageConfig::load('node.comment'), 'Comment field storage exists');
  $this
    ->assertNotNull(FieldConfig::load('node.article.comment'), 'Comment field exists');

  // Delete the node type.
  $this->node
    ->get('type')->entity
    ->delete();
  $this
    ->assertNull(FieldStorageConfig::load('node.comment'), 'Comment field storage deleted');
  $this
    ->assertNull(FieldConfig::load('node.article.comment'), 'Comment field deleted');
}