You are here

public function ModerationInformationTest::testHasPendingRevision in Drupal 8

Same name and namespace in other branches
  1. 9 core/modules/content_moderation/tests/src/Kernel/ModerationInformationTest.php \Drupal\Tests\content_moderation\Kernel\ModerationInformationTest::testHasPendingRevision()

@covers ::hasPendingRevision

File

core/modules/content_moderation/tests/src/Kernel/ModerationInformationTest.php, line 218

Class

ModerationInformationTest
@coversDefaultClass \Drupal\content_moderation\ModerationInformation @group content_moderation

Namespace

Drupal\Tests\content_moderation\Kernel

Code

public function testHasPendingRevision() {
  $entity = EntityTestMulRevPub::create([
    'moderation_state' => 'published',
  ]);
  $entity
    ->save();

  // Add a translation as a new revision.
  $translated = $entity
    ->addTranslation('de');
  $translated->moderation_state = 'published';
  $translated
    ->setNewRevision(TRUE);

  // Test a scenario where the default revision exists with the default
  // language in a published state and a non-default language in an unsaved
  // state.
  $this
    ->assertFalse($this->moderationInformation
    ->hasPendingRevision($translated));

  // Save the translation and assert there is no pending revision.
  $translated
    ->save();
  $this
    ->assertFalse($this->moderationInformation
    ->hasPendingRevision($translated));

  // Create a new draft for the translation and assert there is a pending
  // revision.
  $translated->moderation_state = 'draft';
  $translated
    ->setNewRevision(TRUE);
  $translated
    ->save();
  $this
    ->assertTrue($this->moderationInformation
    ->hasPendingRevision($translated));
}