function ModerationContentTranslationTest::testModerationWithExistingContent

Same name in other branches
  1. 9 core/modules/content_moderation/tests/src/Functional/ModerationContentTranslationTest.php \Drupal\Tests\content_moderation\Functional\ModerationContentTranslationTest::testModerationWithExistingContent()
  2. 8.9.x core/modules/content_moderation/tests/src/Functional/ModerationContentTranslationTest.php \Drupal\Tests\content_moderation\Functional\ModerationContentTranslationTest::testModerationWithExistingContent()
  3. 10 core/modules/content_moderation/tests/src/Functional/ModerationContentTranslationTest.php \Drupal\Tests\content_moderation\Functional\ModerationContentTranslationTest::testModerationWithExistingContent()

Tests existing translations being edited after enabling content moderation.

File

core/modules/content_moderation/tests/src/Functional/ModerationContentTranslationTest.php, line 67

Class

ModerationContentTranslationTest
Test content_moderation functionality with content_translation.

Namespace

Drupal\Tests\content_moderation\Functional

Code

public function testModerationWithExistingContent() : void {
    // Create a published article in English.
    $edit = [
        'title[0][value]' => 'Published English node',
        'langcode[0][value]' => 'en',
    ];
    $this->drupalGet('node/add/article');
    $this->submitForm($edit, 'Save');
    $this->assertSession()
        ->pageTextContains('Article Published English node has been created.');
    $english_node = $this->drupalGetNodeByTitle('Published English node');
    // Add a French translation.
    $this->drupalGet('node/' . $english_node->id() . '/translations');
    $this->clickLink('Add');
    $edit = [
        'title[0][value]' => 'Published French node',
    ];
    $this->submitForm($edit, 'Save (this translation)');
    $this->assertSession()
        ->pageTextContains('Article Published French node has been updated.');
    // Install content moderation and enable moderation on Article node type.
    \Drupal::service('module_installer')->install([
        'content_moderation',
    ]);
    $workflow = $this->createEditorialWorkflow();
    $workflow->getTypePlugin()
        ->addEntityTypeAndBundle('node', 'article');
    $workflow->save();
    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), [
        'use editorial transition publish',
    ]);
    // Edit the English node.
    $this->drupalGet('node/' . $english_node->id() . '/edit');
    $this->assertSession()
        ->statusCodeEquals(200);
    $edit = [
        'title[0][value]' => 'Published English new node',
    ];
    $this->submitForm($edit, 'Save');
    $this->assertSession()
        ->statusCodeEquals(200);
    $this->assertSession()
        ->pageTextContains('Article Published English new node has been updated.');
    // Edit the French translation.
    $this->drupalGet('fr/node/' . $english_node->id() . '/edit');
    $this->assertSession()
        ->statusCodeEquals(200);
    $edit = [
        'title[0][value]' => 'Published French new node',
    ];
    $this->submitForm($edit, 'Save (this translation)');
    $this->assertSession()
        ->statusCodeEquals(200);
    $this->assertSession()
        ->pageTextContains('Article Published French new node has been updated.');
}

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