function UpgradePathTestCase::prepareD7Session

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

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

File

modules/simpletest/tests/upgrade/upgrade.test, line 62

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.