1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <?php
- namespace Drupal\KernelTests\Core\Form;
- use Drupal\Core\Form\FormInterface;
- use Drupal\Core\Form\FormState;
- use Drupal\Core\Form\FormStateInterface;
- use Drupal\KernelTests\KernelTestBase;
- /**
- * Tests form validation mesages are displayed in the same order as the fields.
- *
- * @group Form
- */
- class FormValidationMessageOrderTest extends KernelTestBase implements FormInterface {
- /**
- * {@inheritdoc}
- */
- public function getFormId() {
- return 'form_validation_error_message_order_test';
- }
- /**
- * {@inheritdoc}
- */
- public function buildForm(array $form, FormStateInterface $form_state) {
- // Prepare fields with weights specified.
- $form['one'] = [
- '#type' => 'textfield',
- '#title' => 'One',
- '#required' => TRUE,
- '#weight' => 40,
- ];
- $form['two'] = [
- '#type' => 'textfield',
- '#title' => 'Two',
- '#required' => TRUE,
- '#weight' => 30,
- ];
- $form['three'] = [
- '#type' => 'textfield',
- '#title' => 'Three',
- '#required' => TRUE,
- '#weight' => 10,
- ];
- $form['four'] = [
- '#type' => 'textfield',
- '#title' => 'Four',
- '#required' => TRUE,
- '#weight' => 20,
- ];
- $form['actions'] = [
- '#type' => 'actions',
- 'submit' => [
- '#type' => 'submit',
- '#value' => 'Submit',
- ],
- ];
- return $form;
- }
- /**
- * {@inheritdoc}
- */
- public function validateForm(array &$form, FormStateInterface $form_state) {
- }
- /**
- * {@inheritdoc}
- */
- public function submitForm(array &$form, FormStateInterface $form_state) {
- }
- /**
- * Tests that fields validation messages are sorted in the fields order.
- */
- public function testLimitValidationErrors() {
- $form_state = new FormState();
- $form_builder = $this->container->get('form_builder');
- $form_builder->submitForm($this, $form_state);
- $messages = drupal_get_messages();
- $this->assertTrue(isset($messages['error']));
- $error_messages = $messages['error'];
- $this->assertEqual($error_messages[0], 'Three field is required.');
- $this->assertEqual($error_messages[1], 'Four field is required.');
- $this->assertEqual($error_messages[2], 'Two field is required.');
- $this->assertEqual($error_messages[3], 'One field is required.');
- }
- }
|