public function BlockFormMessagesTest::testValidationMessage in Drupal 9
Same name and namespace in other branches
- 8 core/modules/layout_builder/tests/src/FunctionalJavascript/BlockFormMessagesTest.php \Drupal\Tests\layout_builder\FunctionalJavascript\BlockFormMessagesTest::testValidationMessage()
Tests that validation messages are shown on the block form.
File
- core/
modules/ layout_builder/ tests/ src/ FunctionalJavascript/ BlockFormMessagesTest.php, line 45
Class
- BlockFormMessagesTest
- Tests that messages appear in the off-canvas dialog with configuring blocks.
Namespace
Drupal\Tests\layout_builder\FunctionalJavascriptCode
public function testValidationMessage() {
// @todo Work out why this fixes random fails in this test.
// https://www.drupal.org/project/drupal/issues/3055982
$this
->getSession()
->resizeWindow(800, 1000);
$assert_session = $this
->assertSession();
$page = $this
->getSession()
->getPage();
$this
->drupalLogin($this
->drupalCreateUser([
'access contextual links',
'configure any layout',
'administer node display',
'administer node fields',
]));
$field_ui_prefix = 'admin/structure/types/manage/bundle_with_section_field';
// Enable layout builder.
$this
->drupalGet($field_ui_prefix . '/display/default');
$this
->submitForm([
'layout[enabled]' => TRUE,
], 'Save');
$this
->clickElementWhenClickable($page
->findLink('Manage layout'));
$assert_session
->addressEquals($field_ui_prefix . '/display/default/layout');
$this
->clickElementWhenClickable($page
->findLink('Add block'));
$this
->assertNotEmpty($assert_session
->waitForElementVisible('css', '#drupal-off-canvas .block-categories'));
$this
->clickElementWhenClickable($page
->findLink('Powered by Drupal'));
$this
->assertNotEmpty($assert_session
->waitForElementVisible('css', '#drupal-off-canvas [name="settings[label]"]'));
$page
->findField('Title')
->setValue('');
$this
->clickElementWhenClickable($page
->findButton('Add block'));
$this
->assertMessagesDisplayed();
$page
->findField('Title')
->setValue('New title');
$page
->pressButton('Add block');
$block_css_locator = '#layout-builder .block-system-powered-by-block';
$this
->assertNotEmpty($assert_session
->waitForElementVisible('css', $block_css_locator));
$assert_session
->assertNoElementAfterWait('css', '#drupal-off-canvas');
$assert_session
->assertWaitOnAjaxRequest();
$this
->drupalGet($this
->getUrl());
$this
->clickElementWhenClickable($page
->findButton('Save layout'));
$this
->assertNotEmpty($assert_session
->waitForElement('css', 'div:contains("The layout has been saved")'));
// Ensure that message are displayed when configuring an existing block.
$this
->drupalGet($field_ui_prefix . '/display/default/layout');
$assert_session
->assertWaitOnAjaxRequest();
$this
->clickContextualLink($block_css_locator, 'Configure', TRUE);
$this
->assertNotEmpty($assert_session
->waitForElementVisible('css', '#drupal-off-canvas [name="settings[label]"]'));
$page
->findField('Title')
->setValue('');
$this
->clickElementWhenClickable($page
->findButton('Update'));
$this
->assertMessagesDisplayed();
}