function CommentAdminTest::testCommentedTranslationDeletion

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

Tests commented translation deletion admin view.

File

core/modules/comment/tests/src/Functional/CommentAdminTest.php, line 247

Class

CommentAdminTest
Tests comment approval functionality.

Namespace

Drupal\Tests\comment\Functional

Code

public function testCommentedTranslationDeletion() : void {
  \Drupal::service('module_installer')->install([
    'language',
    'locale',
  ]);
  \Drupal::service('router.builder')->rebuildIfNeeded();
  ConfigurableLanguage::createFromLangcode('ur')->save();
  // Rebuild the container to update the default language container variable.
  $this->rebuildContainer();
  // Ensure that doesn't require contact info.
  $this->setCommentAnonymous(CommentInterface::ANONYMOUS_MAYNOT_CONTACT);
  $this->drupalLogin($this->webUser);
  $count_query = \Drupal::entityTypeManager()->getStorage('comment')
    ->getQuery()
    ->accessCheck(FALSE)
    ->count();
  $before_count = $count_query->execute();
  // Post 2 anonymous comments without contact info.
  $comment1 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName(), TRUE);
  $comment2 = $this->postComment($this->node, $this->randomMachineName(), $this->randomMachineName(), TRUE);
  $comment1->addTranslation('ur', [
    'subject' => 'ur ' . $comment1->label(),
  ])
    ->save();
  $comment2->addTranslation('ur', [
    'subject' => 'ur ' . $comment1->label(),
  ])
    ->save();
  $this->drupalLogout();
  $this->drupalLogin($this->adminUser);
  // Delete multiple comments in one operation.
  $edit = [
    'operation' => 'delete',
    "comments[{$comment1->id()}]" => 1,
    "comments[{$comment2->id()}]" => 1,
  ];
  $this->drupalGet('admin/content/comment');
  $this->submitForm($edit, 'Update');
  $this->assertSession()
    ->responseContains(new FormattableMarkup('@label (Original translation) - <em>The following comment translations will be deleted:</em>', [
    '@label' => $comment1->label(),
  ]));
  $this->assertSession()
    ->responseContains(new FormattableMarkup('@label (Original translation) - <em>The following comment translations will be deleted:</em>', [
    '@label' => $comment2->label(),
  ]));
  $this->assertSession()
    ->pageTextContains('English');
  $this->assertSession()
    ->pageTextContains('Urdu');
  $this->submitForm([], 'Delete');
  $after_count = $count_query->execute();
  $this->assertEquals($before_count, $after_count, 'No comment or translation found.');
}

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