function FormsElementsValidationTestCase::testMaxlengthValidation
Tests #maxlength validation.
File
-
modules/
simpletest/ tests/ form.test, line 792
Class
- FormsElementsValidationTestCase
- Tests validation of additional Form API properties.
Code
public function testMaxlengthValidation() {
$max_length = 5;
// The field types that support #maxlength.
$form = array(
'textfield' => array(
'#type' => 'textfield',
'#title' => 'Textfield',
'#required' => FALSE,
'#maxlength' => $max_length,
),
'password' => array(
'#type' => 'password',
'#title' => 'Password',
'#maxlength' => $max_length,
),
);
$edit = array(
'textfield' => $this->randomString($max_length + 1),
'password' => $this->randomString($max_length + 1),
);
list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, $edit);
$this->assertFalse(empty($errors), 'Form with overly long inputs returned errors.');
$this->assertTrue(isset($errors['textfield']) && strpos($errors['textfield'], 'cannot be longer than') !== FALSE, 'Long input error in textfield.');
$this->assertTrue(isset($errors['password']) && strpos($errors['password'], 'cannot be longer than') !== FALSE, 'Long input error in password.');
// This test for NULL inputs cannot be performed using the drupalPost() method.
$edit['textfield'] = NULL;
$edit['password'] = NULL;
list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, $edit);
$this->assertTrue(empty($errors), 'Form with NULL inputs did not return errors.');
$edit['textfield'] = $this->randomString($max_length);
$edit['password'] = $this->randomString($max_length);
list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, $edit);
$this->assertTrue(empty($errors), 'Form with maxlength inputs did not return errors.');
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.