diff --git a/core/modules/system/src/Tests/Form/ElementTest.php b/core/modules/system/src/Tests/Form/ElementTest.php index 6555a4f..07cf1e9 100644 --- a/core/modules/system/src/Tests/Form/ElementTest.php +++ b/core/modules/system/src/Tests/Form/ElementTest.php @@ -160,4 +160,13 @@ public function testFormAutocomplete() { $this->assertEqual(count($result), 1, 'Ensure that the user does have access to the autocompletion'); } + /** + * Tests form element error messages. + */ + public function testFormElementErrors() { + $edit = ['error_on_details' => '1']; + $this->drupalPostForm('form-test/group-container', $edit, 'Submit'); + $this->assertText('I am an error on the details element.'); + } + } diff --git a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php index 26a04c4..5ffd00c 100644 --- a/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php +++ b/core/modules/system/tests/modules/form_test/src/Form/FormTestGroupContainerForm.php @@ -39,12 +39,26 @@ public function buildForm(array $form, FormStateInterface $form_state) { '#type' => 'textfield', '#title' => 'Nest in details element', ); + $form['error_on_details'] = array( + '#type' => 'checkbox', + '#title' => 'Show error on details', + ); + $form['submit'] = array('#type' => 'submit', '#value' => 'Submit'); return $form; } /** * {@inheritdoc} */ + public function validateForm(array &$form, FormStateInterface $form_state) { + if ($form_state->getValue('error_on_details') == True) { + $form_state->setErrorByName('meta', 'I am an error on the details element.'); + } + } + + /** + * {@inheritdoc} + */ public function submitForm(array &$form, FormStateInterface $form_state) { }