diff --git c/core/modules/system/tests/modules/form_test/form_test.module w/core/modules/system/tests/modules/form_test/form_test.module index 3895379..161fedd 100644 --- c/core/modules/system/tests/modules/form_test/form_test.module +++ w/core/modules/system/tests/modules/form_test/form_test.module @@ -214,14 +214,6 @@ function form_test_menu() { 'access callback' => TRUE, ); - $items['form-test/input-forgery-old'] = array( - 'title' => t('Form test'), - 'page callback' => 'drupal_get_form', - 'page arguments' => array('_form_test_input_forgery'), - 'access callback' => TRUE, - 'type' => MENU_CALLBACK, - ); - $items['form-test/form-rebuild-preserve-values'] = array( 'title' => 'Form values preservation during rebuild test', 'page callback' => 'drupal_get_form', @@ -352,7 +344,6 @@ function form_test_menu() { return $items; } - /** * Implements hook_permission(). */ @@ -1132,75 +1123,6 @@ function form_test_form_state_values_clean_advanced_form_submit($form, &$form_st } /** - * Build a form to test a checkbox. - */ -function _form_test_checkbox($form, &$form_state) { - $form['#submit'] = array('_form_test_submit_values_json'); - - // A required checkbox. - $form['required_checkbox'] = array( - '#type' => 'checkbox', - '#required' => TRUE, - '#title' => 'required_checkbox', - ); - - // A disabled checkbox should get its default value back. - $form['disabled_checkbox_on'] = array( - '#type' => 'checkbox', - '#disabled' => TRUE, - '#return_value' => 'disabled_checkbox_on', - '#default_value' => 'disabled_checkbox_on', - '#title' => 'disabled_checkbox_on', - ); - $form['disabled_checkbox_off'] = array( - '#type' => 'checkbox', - '#disabled' => TRUE, - '#return_value' => 'disabled_checkbox_off', - '#default_value' => NULL, - '#title' => 'disabled_checkbox_off', - ); - - // A checkbox is active when #default_value == #return_value. - $form['checkbox_on'] = array( - '#type' => 'checkbox', - '#return_value' => 'checkbox_on', - '#default_value' => 'checkbox_on', - '#title' => 'checkbox_on', - ); - - // But inactive in any other case. - $form['checkbox_off'] = array( - '#type' => 'checkbox', - '#return_value' => 'checkbox_off', - '#default_value' => 'checkbox_on', - '#title' => 'checkbox_off', - ); - - // Checkboxes with a #return_value of '0' are supported. - $form['zero_checkbox_on'] = array( - '#type' => 'checkbox', - '#return_value' => '0', - '#default_value' => '0', - '#title' => 'zero_checkbox_on', - ); - - // In that case, passing a #default_value != '0' means that the checkbox is off. - $form['zero_checkbox_off'] = array( - '#type' => 'checkbox', - '#return_value' => '0', - '#default_value' => '1', - '#title' => 'zero_checkbox_off', - ); - - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Submit') - ); - - return $form; -} - -/** * Builds a form to test #type 'select' validation. */ function form_test_select($form, &$form_state) { @@ -1685,227 +1607,6 @@ function form_test_url($form, &$form_state) { } /** - * Build a form to test disabled elements. - */ -function _form_test_disabled_elements($form, &$form_state) { - $form['#submit'] = array('_form_test_submit_values_json'); - - // Elements that take a simple default value. - foreach (array('textfield', 'textarea', 'search', 'tel', 'hidden') as $type) { - $form[$type] = array( - '#type' => $type, - '#title' => $type, - '#default_value' => $type, - '#test_hijack_value' => 'HIJACK', - '#disabled' => TRUE, - ); - } - - // Multiple values option elements. - foreach (array('checkboxes', 'select') as $type) { - $form[$type . '_multiple'] = array( - '#type' => $type, - '#title' => $type . ' (multiple)', - '#options' => array( - 'test_1' => 'Test 1', - 'test_2' => 'Test 2', - ), - '#multiple' => TRUE, - '#default_value' => array('test_2' => 'test_2'), - // The keys of #test_hijack_value need to match the #name of the control. - // @see FormsTestCase::testDisabledElements() - '#test_hijack_value' => $type == 'select' ? array('' => 'test_1') : array('test_1' => 'test_1'), - '#disabled' => TRUE, - ); - } - - // Single values option elements. - foreach (array('radios', 'select') as $type) { - $form[$type . '_single'] = array( - '#type' => $type, - '#title' => $type . ' (single)', - '#options' => array( - 'test_1' => 'Test 1', - 'test_2' => 'Test 2', - ), - '#multiple' => FALSE, - '#default_value' => 'test_2', - '#test_hijack_value' => 'test_1', - '#disabled' => TRUE, - ); - } - - // Checkbox and radio. - foreach (array('checkbox', 'radio') as $type) { - $form[$type . '_unchecked'] = array( - '#type' => $type, - '#title' => $type . ' (unchecked)', - '#return_value' => 1, - '#default_value' => 0, - '#test_hijack_value' => 1, - '#disabled' => TRUE, - ); - $form[$type . '_checked'] = array( - '#type' => $type, - '#title' => $type . ' (checked)', - '#return_value' => 1, - '#default_value' => 1, - '#test_hijack_value' => NULL, - '#disabled' => TRUE, - ); - } - - // Weight, number, range. - foreach (array('weight', 'number', 'range') as $type) { - $form[$type] = array( - '#type' => $type, - '#title' => $type, - '#default_value' => 10, - '#test_hijack_value' => 5, - '#disabled' => TRUE, - ); - } - - // Color. - $form['color'] = array( - '#type' => 'color', - '#title' => 'color', - '#default_value' => '#0000ff', - '#test_hijack_value' => '#ff0000', - '#disabled' => TRUE, - ); - - // The #disabled state should propagate to children. - $form['disabled_container'] = array( - '#disabled' => TRUE, - ); - foreach (array('textfield', 'textarea', 'hidden', 'tel', 'url') as $type) { - $form['disabled_container']['disabled_container_' . $type] = array( - '#type' => $type, - '#title' => $type, - '#default_value' => $type, - '#test_hijack_value' => 'HIJACK', - ); - } - - // Date. - $date = new DrupalDateTime('1978-11-01 10:30:00', 'Europe/Berlin'); - $expected = array('date' => '1978-11-01 10:30:00', 'timezone_type' => 3, 'timezone' => 'Europe/Berlin',); - $form['disabled_container']['disabled_container_datetime'] = array( - '#type' => 'datetime', - '#title' => 'datetime', - '#default_value' => $date, - '#expected_value' => $expected, - '#test_hijack_value' => new DrupalDateTime('1978-12-02 11:30:00', 'Europe/Berlin'), - '#date_timezone' => 'Europe/Berlin', - ); - - - // Try to hijack the email field with a valid email. - $form['disabled_container']['disabled_container_email'] = array( - '#type' => 'email', - '#title' => 'email', - '#default_value' => 'foo@example.com', - '#test_hijack_value' => 'bar@example.com', - ); - - // Try to hijack the URL field with a valid URL. - $form['disabled_container']['disabled_container_url'] = array( - '#type' => 'url', - '#title' => 'url', - '#default_value' => 'http://example.com', - '#test_hijack_value' => 'http://example.com/foo', - ); - - // Text format. - $form['text_format'] = array( - '#type' => 'text_format', - '#title' => 'Text format', - '#disabled' => TRUE, - '#default_value' => 'Text value', - '#format' => 'plain_text', - '#expected_value' => array( - 'value' => 'Text value', - 'format' => 'plain_text', - ), - '#test_hijack_value' => array( - 'value' => 'HIJACK', - 'format' => 'filtered_html', - ), - ); - - // Password fields. - $form['password'] = array( - '#type' => 'password', - '#title' => 'Password', - '#disabled' => TRUE, - ); - $form['password_confirm'] = array( - '#type' => 'password_confirm', - '#title' => 'Password confirm', - '#disabled' => TRUE, - ); - - // Files. - $form['file'] = array( - '#type' => 'file', - '#title' => 'File', - '#disabled' => TRUE, - ); - $form['managed_file'] = array( - '#type' => 'managed_file', - '#title' => 'Managed file', - '#disabled' => TRUE, - ); - - // Buttons. - $form['image_button'] = array( - '#type' => 'image_button', - '#value' => 'Image button', - '#disabled' => TRUE, - ); - $form['button'] = array( - '#type' => 'button', - '#value' => 'Button', - '#disabled' => TRUE, - ); - $form['submit_disabled'] = array( - '#type' => 'submit', - '#value' => 'Submit', - '#disabled' => TRUE, - ); - - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Submit'), - ); - - return $form; -} - -/** - * Build a form to test input forgery of enabled elements. - */ -function _form_test_input_forgery($form, &$form_state) { - $form['#submit'] = array('_form_test_submit_values_json'); - - // For testing that a user can't submit a value not matching one of the - // allowed options. - $form['checkboxes'] = array( - '#type' => 'checkboxes', - '#options' => array( - 'one' => 'One', - 'two' => 'Two', - ), - ); - $form['submit'] = array( - '#type' => 'submit', - '#value' => t('Submit'), - ); - return $form; -} - -/** * Form builder for testing preservation of values during a rebuild. */ function form_test_form_rebuild_preserve_values_form($form, &$form_state) { diff --git c/core/modules/system/tests/modules/form_test/form_test.routing.yml w/core/modules/system/tests/modules/form_test/form_test.routing.yml index 17dc131..80812cf 100644 --- c/core/modules/system/tests/modules/form_test/form_test.routing.yml +++ w/core/modules/system/tests/modules/form_test/form_test.routing.yml @@ -72,6 +72,7 @@ form_test.checkbox: pattern: '/form-test/checkbox' defaults: _form: '\Drupal\form_test\FormTestCheckboxForm' + _title: 'Form test' requirements: _access: 'TRUE' @@ -79,6 +80,7 @@ form_test.disabled_elements: pattern: '/form-test/disabled-elements' defaults: _form: '\Drupal\form_test\FormTestDisabledElementsForm' + _title: 'Form test' requirements: _access: 'TRUE' @@ -86,5 +88,6 @@ form_test.input_forgery: pattern: '/form-test/input-forgery' defaults: _form: '\Drupal\form_test\FormTestInputForgery' + _title: 'Form test' requirements: _access: 'TRUE'