public function LayoutBuilderContentModerationIntegrationTest::testModeratedInlineBlockBundles in Drupal 9
Test placing inline blocks that belong to a moderated custom block bundle.
File
- core/
modules/ content_moderation/ tests/ src/ Functional/ LayoutBuilderContentModerationIntegrationTest.php, line 158
Class
- LayoutBuilderContentModerationIntegrationTest
- Tests Content Moderation's integration with Layout Builder.
Namespace
Drupal\Tests\content_moderation\FunctionalCode
public function testModeratedInlineBlockBundles() {
$page = $this
->getSession()
->getPage();
$assert_session = $this
->assertSession();
$node = $this
->createNode([
'type' => 'bundle_with_section_field',
'title' => 'The first node title',
'moderation_state' => 'published',
]);
$this
->drupalGet("node/{$node->id()}/layout");
$page
->clickLink('Add block');
$this
->clickLink('Create custom block');
$assert_session
->fieldNotExists('settings[block_form][moderation_state][0][state]');
$this
->submitForm([
'settings[label]' => 'Test inline block',
'settings[block_form][body][0][value]' => 'Example block body',
], 'Add block');
// Save a draft of the page with the inline block and ensure the drafted
// content appears on the latest version page.
$this
->assertSession()
->pageTextContains('Example block body');
$this
->submitForm([
'moderation_state[0][state]' => 'draft',
], 'Save layout');
$assert_session
->pageTextContains('The layout override has been saved.');
$assert_session
->pageTextContains('Example block body');
// Publish the draft of the page ensure the draft inline block content
// appears on the published page.
$this
->submitForm([
'new_state' => 'published',
], 'Apply');
$assert_session
->pageTextContains('The moderation state has been updated.');
$assert_session
->pageTextContains('Example block body');
}