summaryrefslogtreecommitdiff
path: root/modules/simpletest
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2010-10-04 18:00:46 +0000
committerDries Buytaert <dries@buytaert.net>2010-10-04 18:00:46 +0000
commitf85a37c3076a3145aa291439b713e33825adfd83 (patch)
tree2b6b7890dab3817e20c99860d634979640a91696 /modules/simpletest
parent5a23b3fdb970bb0c3e79f47ba9296455d237d9f0 (diff)
downloadbrdo-f85a37c3076a3145aa291439b713e33825adfd83.tar.gz
brdo-f85a37c3076a3145aa291439b713e33825adfd83.tar.bz2
- Patch #140783 by sun, chx, effulgentsia, David_Rothstein, webchick: a select list without #default_value() always passes form validation.
Diffstat (limited to 'modules/simpletest')
-rw-r--r--modules/simpletest/tests/form.test5
-rw-r--r--modules/simpletest/tests/form_test.module37
2 files changed, 33 insertions, 9 deletions
diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test
index 70cf19b86..4661ad25f 100644
--- a/modules/simpletest/tests/form.test
+++ b/modules/simpletest/tests/form.test
@@ -164,6 +164,8 @@ class FormsTestCase extends DrupalWebTestCase {
// Posting without any values should throw validation errors.
$this->drupalPost(NULL, array(), 'Submit');
$this->assertNoText(t($error, array('!name' => $form['select']['#title'])));
+ $this->assertNoText(t($error, array('!name' => $form['select_required']['#title'])));
+ $this->assertNoText(t($error, array('!name' => $form['select_optional']['#title'])));
$this->assertNoText(t($error, array('!name' => $form['empty_value']['#title'])));
$this->assertNoText(t($error, array('!name' => $form['empty_value_one']['#title'])));
$this->assertText(t($error, array('!name' => $form['no_default']['#title'])));
@@ -194,7 +196,8 @@ class FormsTestCase extends DrupalWebTestCase {
'empty_value' => 'one',
'empty_value_one' => 'one',
'no_default' => 'three',
- 'no_default_optional' => '',
+ 'no_default_optional' => 'one',
+ 'no_default_optional_empty_value' => '',
'no_default_empty_option' => 'three',
'no_default_empty_option_optional' => '',
'no_default_empty_value' => 'three',
diff --git a/modules/simpletest/tests/form_test.module b/modules/simpletest/tests/form_test.module
index 57a96863c..0e704d25c 100644
--- a/modules/simpletest/tests/form_test.module
+++ b/modules/simpletest/tests/form_test.module
@@ -789,44 +789,65 @@ function form_test_select($form, &$form_state) {
'#title' => '#default_value one',
'#default_value' => 'one',
);
+ $form['select_required'] = $base + array(
+ '#title' => '#default_value one, #required',
+ '#required' => TRUE,
+ '#default_value' => 'one',
+ );
+ $form['select_optional'] = $base + array(
+ '#title' => '#default_value one, not #required',
+ '#required' => FALSE,
+ '#default_value' => 'one',
+ );
$form['empty_value'] = $base + array(
- '#title' => '#default_value one, #empty_value 0',
+ '#title' => '#default_value one, #required, #empty_value 0',
+ '#required' => TRUE,
'#default_value' => 'one',
'#empty_value' => 0,
);
$form['empty_value_one'] = $base + array(
- '#title' => '#default_value = #empty_value',
+ '#title' => '#default_value = #empty_value, #required',
+ '#required' => TRUE,
'#default_value' => 'one',
'#empty_value' => 'one',
);
$form['no_default'] = $base + array(
- '#title' => 'No #default_value',
+ '#title' => 'No #default_value, #required',
+ '#required' => TRUE,
);
$form['no_default_optional'] = $base + array(
'#title' => 'No #default_value, not #required',
'#required' => FALSE,
- '#description' => 'Should result in an empty string (default of #empty_value), because it is optional.',
+ '#description' => 'Should result in "one", because it is not required and there is no #empty_value requested, so default browser behavior of preselecting first option is in effect.',
+ );
+ $form['no_default_optional_empty_value'] = $base + array(
+ '#title' => 'No #default_value, not #required, #empty_value empty string',
+ '#empty_value' => '',
+ '#required' => FALSE,
+ '#description' => 'Should result in an empty string (due to #empty_value), because it is optional.',
);
$form['no_default_empty_option'] = $base + array(
- '#title' => 'No #default_value, #empty_option',
+ '#title' => 'No #default_value, #required, #empty_option',
+ '#required' => TRUE,
'#empty_option' => '- Choose -',
);
$form['no_default_empty_option_optional'] = $base + array(
'#title' => 'No #default_value, not #required, #empty_option',
- '#required' => FALSE,
'#empty_option' => '- Dismiss -',
'#description' => 'Should result in an empty string (default of #empty_value), because it is optional.',
);
$form['no_default_empty_value'] = $base + array(
- '#title' => 'No #default_value, #empty_value 0',
+ '#title' => 'No #default_value, #required, #empty_value 0',
+ '#required' => TRUE,
'#empty_value' => 0,
'#description' => 'Should never result in 0.',
);
$form['no_default_empty_value_one'] = $base + array(
- '#title' => 'No #default_value, #empty_value one',
+ '#title' => 'No #default_value, #required, #empty_value one',
+ '#required' => TRUE,
'#empty_value' => 'one',
'#description' => 'A mistakenly assigned #empty_value contained in #options should not be valid.',
);