1 form.test FormValidationTestCase::testCustomRequiredMessage()

Tests #required with custom validation errors.

See also

form_test_validate_required_form()

File

core/modules/simpletest/tests/form.test, line 874
Unit tests for the Backdrop Form API.

Class

FormValidationTestCase
Test form validation handlers.

Code

function testCustomRequiredMessage() {
  $form = $form_state = array();
  $form = form_test_validate_required_form($form, $form_state);

  // Verify that a custom #required error can be set.
  $edit = array();
  $this->backdropPost('form-test/validate-required', $edit, 'Submit');

  foreach (element_children($form) as $key) {
    if (isset($form[$key]['#required_message'])) {
      $this->assertNoText(t('!name field is required.', array('!name' => $form[$key]['#title'])));
      $this->assertText($form[$key]['#required_message']);
    }
    elseif (isset($form[$key]['#form_test_expected_message'])) {
      $this->assertText($form[$key]['#form_test_expected_message']);
    }
  }
  $this->assertNoText(t('An illegal choice has been detected. Please contact the site administrator.'));

  // Verify that no custom validation error appears with valid values.
  $edit = array(
    'textfield' => $this->randomString(),
    'checkboxes[foo]' => TRUE,
    'select' => 'foo',
    'radios' => 'foo',
  );
  $this->backdropPost('form-test/validate-required', $edit, 'Submit');

  foreach (element_children($form) as $key) {
    if (isset($form[$key]['#required_message'])) {
      $this->assertNoText($form[$key]['#required_message']);
    }
    elseif (isset($form[$key]['#form_test_expected_message'])) {
      $this->assertNoText($form[$key]['#form_test_expected_message']);
    }
  }
  $this->assertNoText(t('An illegal choice has been detected. Please contact the site administrator.'));
}