function _drupal_initialize_db_test_prefix

In a test environment, get the test db prefix and set it in $databases.

1 call to _drupal_initialize_db_test_prefix()
_drupal_bootstrap_configuration in drupal/core/includes/bootstrap.inc
Sets up the script environment and loads settings.php.

File

drupal/core/includes/bootstrap.inc, line 2082
Functions that need to be loaded on every Drupal request.

Code

function _drupal_initialize_db_test_prefix() {

  // The user agent header is used to pass a database prefix in the request when
  // running tests. However, for security reasons, it is imperative that we
  // validate we ourselves made the request.
  if ($test_prefix = drupal_valid_test_ua()) {

    // Set the test run id for use in other parts of Drupal.
    $test_info =& $GLOBALS['drupal_test_info'];
    $test_info['test_run_id'] = $test_prefix;
    $test_info['in_child_site'] = TRUE;
    foreach ($GLOBALS['databases']['default'] as &$value) {

      // Extract the current default database prefix.
      if (!isset($value['prefix'])) {
        $current_prefix = '';
      }
      elseif (is_array($value['prefix'])) {
        $current_prefix = $value['prefix']['default'];
      }
      else {
        $current_prefix = $value['prefix'];
      }

      // Remove the current database prefix and replace it by our own.
      $value['prefix'] = array(
        'default' => $current_prefix . $test_prefix,
      );
    }
  }
}