protected function UpgradePathTestCase::prepareD7Session

Prepares the appropriate session for the release of Drupal being upgraded.

1 call to UpgradePathTestCase::prepareD7Session()
UpgradePathTestCase::setUp in drupal/modules/simpletest/tests/upgrade/upgrade.test
Overrides DrupalWebTestCase::setUp() for upgrade testing.
1 method overrides UpgradePathTestCase::prepareD7Session()
UpdatePathTestCase::prepareD7Session in drupal/modules/simpletest/tests/upgrade/upgrade.test
Overrides UpgradePathTestCase::prepareD7Session().

File

drupal/modules/simpletest/tests/upgrade/upgrade.test, line 55

Class

UpgradePathTestCase
Perform end-to-end tests of the upgrade path.

Code

protected function prepareD7Session() {

  // Generate and set a D6-compatible session cookie.
  $this
    ->curlInitialize();
  $sid = drupal_hash_base64(uniqid(mt_rand(), TRUE) . drupal_random_bytes(55));
  $session_name = update_get_d6_session_name();
  curl_setopt($this->curlHandle, CURLOPT_COOKIE, rawurlencode($session_name) . '=' . rawurlencode($sid));

  // Force our way into the session of the child site.
  drupal_save_session(TRUE);

  // A session cannot be written without the ssid column which is missing on
  // Drupal 6 sites.
  db_add_field('sessions', 'ssid', array(
    'description' => "Secure session ID. The value is generated by Drupal's session handlers.",
    'type' => 'varchar',
    'length' => 128,
    'not null' => TRUE,
    'default' => '',
  ));
  _drupal_session_write($sid, '');

  // Remove the temporarily added ssid column.
  db_drop_field('sessions', 'ssid');
  drupal_save_session(FALSE);
}