You are here

protected function NodeTranslationUITest::doTestPublishedStatus in Drupal 10

Same name and namespace in other branches
  1. 8 core/modules/node/tests/src/Functional/NodeTranslationUITest.php \Drupal\Tests\node\Functional\NodeTranslationUITest::doTestPublishedStatus()
  2. 9 core/modules/node/tests/src/Functional/NodeTranslationUITest.php \Drupal\Tests\node\Functional\NodeTranslationUITest::doTestPublishedStatus()

File

core/modules/node/tests/src/Functional/NodeTranslationUITest.php, line 166

Class

NodeTranslationUITest
Tests the Node Translation UI.

Namespace

Drupal\Tests\node\Functional

Code

protected function doTestPublishedStatus() {
  $storage = $this->container
    ->get('entity_type.manager')
    ->getStorage($this->entityTypeId);
  $storage
    ->resetCache([
    $this->entityId,
  ]);
  $entity = $storage
    ->load($this->entityId);
  $languages = $this->container
    ->get('language_manager')
    ->getLanguages();
  $statuses = [
    TRUE,
    FALSE,
  ];
  foreach ($statuses as $index => $value) {

    // (Un)publish the node translations and check that the translation
    // statuses are (un)published accordingly.
    foreach ($this->langcodes as $langcode) {
      $options = [
        'language' => $languages[$langcode],
      ];
      $url = $entity
        ->toUrl('edit-form', $options);
      $this
        ->drupalGet($url, $options);
      $this
        ->submitForm([
        'status[value]' => $value,
      ], 'Save' . $this
        ->getFormSubmitSuffix($entity, $langcode));
    }
    $storage
      ->resetCache([
      $this->entityId,
    ]);
    $entity = $storage
      ->load($this->entityId);
    foreach ($this->langcodes as $langcode) {

      // The node is created as unpublished thus we switch to the published
      // status first.
      $status = !$index;
      $translation = $entity
        ->getTranslation($langcode);
      $this
        ->assertEquals($status, $this->manager
        ->getTranslationMetadata($translation)
        ->isPublished(), 'The translation has been correctly unpublished.');
    }
  }
}