You are here

public function CommentUninstallTest::testCommentUninstallWithoutField in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/comment/tests/src/Kernel/CommentUninstallTest.php \Drupal\Tests\comment\Kernel\CommentUninstallTest::testCommentUninstallWithoutField()

Tests if uninstallation succeeds if the field has been deleted beforehand.

File

core/modules/comment/tests/src/Kernel/CommentUninstallTest.php, line 70

Class

CommentUninstallTest
Tests comment module uninstall.

Namespace

Drupal\Tests\comment\Kernel

Code

public function testCommentUninstallWithoutField() {

  // Tests if uninstall succeeds if the field has been deleted beforehand.
  // Manually delete the comment_body field before module uninstall.
  FieldStorageConfig::loadByName('comment', 'comment_body')
    ->delete();

  // Check that the field is now deleted.
  $field_storage = FieldStorageConfig::loadByName('comment', 'comment_body');
  $this
    ->assertNull($field_storage);

  // Manually delete the comment field on the node before module uninstall.
  $field_storage = FieldStorageConfig::loadByName('node', 'comment');
  $this
    ->assertNotNull($field_storage);
  $field_storage
    ->delete();

  // Check that the field is now deleted.
  $field_storage = FieldStorageConfig::loadByName('node', 'comment');
  $this
    ->assertNull($field_storage);
  field_purge_batch(10);

  // Ensure that uninstall succeeds even if the field has already been deleted
  // manually beforehand.
  $this->container
    ->get('module_installer')
    ->uninstall([
    'comment',
  ]);
}