protected function LayoutBuilderNestedFormUiTest::addFormBlock in Drupal 10
Same name and namespace in other branches
- 8 core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderNestedFormUiTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderNestedFormUiTest::addFormBlock()
- 9 core/modules/layout_builder/tests/src/FunctionalJavascript/LayoutBuilderNestedFormUiTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\LayoutBuilderNestedFormUiTest::addFormBlock()
Adds a form block specified by label layout and checks it can be saved.
Need to test saving and resaving, because nested forms can cause issues on the second save.
Parameters
string $label: The form block label that will be used to identify link to add block.
string $path: Root path of the entity (i.e. node/{NID) or the entity view display path.
string $expected_save_message: The message that should be displayed after successful layout save.
File
- core/
modules/ layout_builder/ tests/ src/ FunctionalJavascript/ LayoutBuilderNestedFormUiTest.php, line 137
Class
- LayoutBuilderNestedFormUiTest
- Tests placing blocks containing forms in theLayout Builder UI.
Namespace
Drupal\Tests\layout_builder\FunctionalJavascriptCode
protected function addFormBlock($label, $path, $expected_save_message) {
$assert_session = $this
->assertSession();
$page = $this
->getSession()
->getPage();
// Go to edit the layout.
$this
->drupalGet($path . '/layout');
// Add the form block.
$assert_session
->linkExists('Add block');
$this
->clickLink('Add block');
$assert_session
->waitForElementVisible('named', [
'link',
$label,
]);
$assert_session
->linkExists($label);
$this
->clickLink($label);
$assert_session
->waitForElementVisible('named', [
'button',
'Add block',
]);
$page
->pressButton('Add block');
$assert_session
->assertWaitOnAjaxRequest();
$assert_session
->pageTextContains($label);
$assert_session
->addressEquals($path . '/layout');
// Save the defaults.
$page
->pressButton('Save layout');
$assert_session
->pageTextContains($expected_save_message);
$assert_session
->addressEquals($path);
// Go back to edit layout and try to re-save.
$this
->drupalGet($path . '/layout');
$page
->pressButton('Save layout');
$assert_session
->pageTextContains($expected_save_message);
$assert_session
->addressEquals($path);
}