function ModerationStateNodeTest::testFormSaveDestination
Same name in other branches
- 9 core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTest.php \Drupal\Tests\content_moderation\Functional\ModerationStateNodeTest::testFormSaveDestination()
- 8.9.x core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTest.php \Drupal\Tests\content_moderation\Functional\ModerationStateNodeTest::testFormSaveDestination()
- 11.x core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTest.php \Drupal\Tests\content_moderation\Functional\ModerationStateNodeTest::testFormSaveDestination()
Tests edit form destinations.
File
-
core/
modules/ content_moderation/ tests/ src/ Functional/ ModerationStateNodeTest.php, line 89
Class
- ModerationStateNodeTest
- Tests general content moderation workflow for nodes.
Namespace
Drupal\Tests\content_moderation\FunctionalCode
public function testFormSaveDestination() : void {
// Create new moderated content in draft.
$this->drupalGet('node/add/moderated_content');
$this->submitForm([
'title[0][value]' => 'Some moderated content',
'body[0][value]' => 'First version of the content.',
'moderation_state[0][state]' => 'draft',
], 'Save');
$node = $this->drupalGetNodeByTitle('Some moderated content');
$edit_path = sprintf('node/%d/edit', $node->id());
// After saving, we should be at the canonical URL and viewing the first
// revision.
$this->assertSession()
->addressEquals(Url::fromRoute('entity.node.canonical', [
'node' => $node->id(),
]));
$this->assertSession()
->pageTextContains('First version of the content.');
// Create a new draft; after saving, we should still be on the canonical
// URL, but viewing the second revision.
$this->drupalGet($edit_path);
$this->submitForm([
'body[0][value]' => 'Second version of the content.',
'moderation_state[0][state]' => 'draft',
], 'Save');
$this->assertSession()
->addressEquals(Url::fromRoute('entity.node.canonical', [
'node' => $node->id(),
]));
$this->assertSession()
->pageTextContains('Second version of the content.');
// Make a new published revision; after saving, we should be at the
// canonical URL.
$this->drupalGet($edit_path);
$this->submitForm([
'body[0][value]' => 'Third version of the content.',
'moderation_state[0][state]' => 'published',
], 'Save');
$this->assertSession()
->addressEquals(Url::fromRoute('entity.node.canonical', [
'node' => $node->id(),
]));
$this->assertSession()
->pageTextContains('Third version of the content.');
// Make a new pending revision; after saving, we should be on the "Latest
// version" tab.
$this->drupalGet($edit_path);
$this->submitForm([
'body[0][value]' => 'Fourth version of the content.',
'moderation_state[0][state]' => 'draft',
], 'Save');
$this->assertSession()
->addressEquals(Url::fromRoute('entity.node.latest_version', [
'node' => $node->id(),
]));
$this->assertSession()
->pageTextContains('Fourth version of the content.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.