diff --git a/core/includes/form.inc b/core/includes/form.inc index dfc1cb5..395cca7 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -3178,10 +3178,6 @@ function form_process_checkbox($element, $form_state) { * Processes a checkboxes form element. */ function form_process_checkboxes($element) { - // The #type checkboxes element itself does not need validation. - // @todo Fix handling of values for checkboxes in programmed form submissions. - unset($element['#needs_validation']); - $value = is_array($element['#value']) ? $element['#value'] : array(); $element['#tree'] = TRUE; if (count($element['#options']) > 0) { diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php index b762889..912364e 100644 --- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php +++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php @@ -644,9 +644,11 @@ abstract class WebTestBase extends TestBase { 'pass2' => $this->root_user->pass_raw, ), ), + // form_type_checkboxes_value() requires NULL instead of FALSE values + // for programmatic form submissions to disable a checkbox. 'update_status_module' => array( - 1 => FALSE, - 2 => FALSE, + 1 => NULL, + 2 => NULL, ), ), ), @@ -660,21 +662,18 @@ abstract class WebTestBase extends TestBase { $batch = &batch_get(); $batch = array(); - // The installer sets/overrides some services to Null implementations, since - // there is no database yet. Thus, backup and restore the current $conf. - $originalConf = $conf; - // Execute the non-interactive installer. require_once DRUPAL_ROOT . '/core/includes/install.core.inc'; install_drupal($settings); - // Restore global $conf from before install_begin_request(). - $conf = $originalConf; - // Restore the original Simpletest batch. $batch = &batch_get(); $batch = $this->originalBatch; + // Revert install_begin_request() cache and lock service overrides. + unset($conf['cache_classes']); + unset($conf['lock_backend']); + // Set path variables. variable_set('file_public_path', $this->public_files_directory); variable_set('file_private_path', $this->private_files_directory);