diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-08-27 11:54:32 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-08-27 11:54:32 +0000 |
commit | 83c52c3b1a39a10d3f0624ea640f7e211c2061a2 (patch) | |
tree | 3f14360514e8f216ac3bee97f4e79883b0eb4cb1 /modules/simpletest | |
parent | d7d9587d6a0c977079cea05f973b28cca27ef066 (diff) | |
download | brdo-83c52c3b1a39a10d3f0624ea640f7e211c2061a2.tar.gz brdo-83c52c3b1a39a10d3f0624ea640f7e211c2061a2.tar.bz2 |
#763376 by fago, sun, noahb, effulgentsia, ksenzee, jhodgdon: Fixed Not validated form values appear in ().
Diffstat (limited to 'modules/simpletest')
-rw-r--r-- | modules/simpletest/tests/form.test | 16 | ||||
-rw-r--r-- | modules/simpletest/tests/form_test.module | 13 |
2 files changed, 23 insertions, 6 deletions
diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test index 525a8a291..d628f488b 100644 --- a/modules/simpletest/tests/form.test +++ b/modules/simpletest/tests/form.test @@ -42,7 +42,10 @@ class FormsTestCase extends DrupalWebTestCase { $elements['password']['empty_values'] = $empty_strings; $elements['password_confirm']['element'] = array('#title' => $this->randomName(), '#type' => 'password_confirm'); - $elements['password_confirm']['empty_values'] = $empty_strings; + // Provide empty values for both password fields. + foreach ($empty_strings as $key => $value) { + $elements['password_confirm']['empty_values'][$key] = array('pass1' => $value, 'pass2' => $value); + } $elements['textarea']['element'] = array('#title' => $this->randomName(), '#type' => 'textarea'); $elements['textarea']['empty_values'] = $empty_strings; @@ -77,8 +80,7 @@ class FormsTestCase extends DrupalWebTestCase { $element = $data['element']['#title']; $form[$element] = $data['element']; $form[$element]['#required'] = $required; - $form_state['values'][$element] = $empty; - $form_state['input'] = $form_state['values']; + $form_state['input'][$element] = $empty; $form_state['input']['form_id'] = $form_id; $form_state['method'] = 'post'; drupal_prepare_form($form_id, $form, $form_state); @@ -405,6 +407,10 @@ class FormValidationTestCase extends DrupalWebTestCase { $this->assertNoText(t('!name field is required.', array('!name' => 'Title'))); $this->assertText('Test element is invalid'); + // Ensure not validated values are not available to submit handlers. + $this->drupalPost($path, array('title' => '', 'test' => 'valid'), t('Partial validate')); + $this->assertText('Only validated values appear in the form values.'); + // Now test full form validation and ensure that the #element_validate // handler is still triggered. $this->drupalPost($path, $edit, t('Full validate')); @@ -616,11 +622,11 @@ class FormsElementsTableSelectFunctionalTest extends DrupalWebTestCase { ); // Test with a valid value. - list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, array('tableselect' => 'row1')); + list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, array('tableselect' => array('row1' => 'row1'))); $this->assertFalse(isset($errors['tableselect']), t('Option checker allows valid values for checkboxes.')); // Test with an invalid value. - list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, array('tableselect' => 'non_existing_value')); + list($processed_form, $form_state, $errors) = $this->formSubmitHelper($form, array('tableselect' => array('non_existing_value' => 'non_existing_value'))); $this->assertTrue(isset($errors['tableselect']), t('Option checker disallows invalid values for checkboxes.')); } diff --git a/modules/simpletest/tests/form_test.module b/modules/simpletest/tests/form_test.module index ab0642fee..17988cdaf 100644 --- a/modules/simpletest/tests/form_test.module +++ b/modules/simpletest/tests/form_test.module @@ -313,7 +313,7 @@ function form_test_limit_validation_errors_form($form, &$form_state) { $form['actions']['partial'] = array( '#type' => 'submit', '#limit_validation_errors' => array(array('test')), - '#submit' => array(), + '#submit' => array('form_test_limit_validation_errors_form_partial_submit'), '#value' => t('Partial validate'), ); $form['actions']['full'] = array( @@ -333,6 +333,17 @@ function form_test_limit_validation_errors_element_validate_test(&$element, &$fo } /** + * Form submit handler for the partial validation submit button. + */ +function form_test_limit_validation_errors_form_partial_submit($form, $form_state) { + // The title has not been validated, thus its value - in case of the test case + // an empty string - may not be set. + if (!isset($form_state['values']['title']) && isset($form_state['values']['test'])) { + drupal_set_message('Only validated values appear in the form values.'); + } +} + +/** * Create a header and options array. Helper function for callbacks. */ function _form_test_tableselect_get_data() { |