Verified Commit 878e5055 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3020387 by Sam152, luisnicg, bahuma20, jungle: Moderation state is the...

Issue #3020387 by Sam152, luisnicg, bahuma20, jungle: Moderation state is the same for all node's translations in edit page

(cherry picked from commit 685f3a06)
parent df3e7a58
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ protected function loadContentModerationStateRevision(ContentEntityInterface $en
      // being reverted.
      ->condition('content_entity_revision_id', $entity->isNewRevision() ? $entity->getLoadedRevisionId() : $entity->getRevisionId())
      ->condition('workflow', $moderation_info->getWorkflowForEntity($entity)->id())
      ->condition('langcode', $entity->language()->getId())
      ->allRevisions()
      ->sort('revision_id', 'DESC')
      ->execute();
+29 −0
Original line number Diff line number Diff line
@@ -401,4 +401,33 @@ public function testWithExistingUnmoderatedContent() {
    $this->assertEquals('published', $translation->moderation_state->value);
  }

  /**
   * Tests field item list translation support with unmoderated content.
   */
  public function testTranslationWithExistingUnmoderatedContent() {
    $node = Node::create([
      'title' => 'Published en',
      'langcode' => 'en',
      'type' => 'unmoderated',
    ]);
    $node->setPublished();
    $node->save();

    $workflow = Workflow::load('editorial');
    $workflow->getTypePlugin()->addEntityTypeAndBundle('node', 'unmoderated');
    $workflow->save();

    $translation = $node->addTranslation('de');
    $translation->moderation_state = 'draft';
    $translation->save();

    $node_storage = $this->container->get('entity_type.manager')->getStorage('node');
    $node = $node_storage->loadRevision($node_storage->getLatestRevisionId($node->id()));

    $this->assertEquals('published', $node->moderation_state->value);
    $this->assertEquals('draft', $translation->moderation_state->value);
    $this->assertTrue($node->isPublished());
    $this->assertFalse($translation->isPublished());
  }

}