function DrupalWebTestCase::curlInitialize

Initializes the cURL connection.

If the simpletest_httpauth_credentials variable is set, this function will add HTTP authentication headers. This is necessary for testing sites that are protected by login credentials from public access. See the description of $curl_options for other options.

3 calls to DrupalWebTestCase::curlInitialize()
DrupalWebTestCase::curlExec in modules/simpletest/drupal_web_test_case.php
Initializes and executes a cURL request.
UpdatePathTestCase::prepareD7Session in modules/simpletest/tests/upgrade/upgrade.test
Overrides UpgradePathTestCase::prepareD7Session().
UpgradePathTestCase::prepareD7Session in modules/simpletest/tests/upgrade/upgrade.test
Prepares the appropriate session for the release of Drupal being upgraded.

File

modules/simpletest/drupal_web_test_case.php, line 2035

Class

DrupalWebTestCase
Test case for typical Drupal tests.

Code

protected function curlInitialize() {
    global $base_url;
    if (!isset($this->curlHandle)) {
        $this->curlHandle = curl_init();
        // Some versions/configurations of cURL break on a NULL cookie jar, so
        // supply a real file.
        if (empty($this->cookieFile)) {
            $this->cookieFile = $this->public_files_directory . '/cookie.jar';
        }
        $curl_options = array(
            CURLOPT_COOKIEJAR => $this->cookieFile,
            CURLOPT_URL => $base_url,
            CURLOPT_FOLLOWLOCATION => FALSE,
            CURLOPT_RETURNTRANSFER => TRUE,
            CURLOPT_SSL_VERIFYPEER => FALSE,
            // Required to make the tests run on HTTPS.
CURLOPT_SSL_VERIFYHOST => FALSE,
            // Required to make the tests run on HTTPS.
CURLOPT_HEADERFUNCTION => array(
                &$this,
                'curlHeaderCallback',
            ),
            CURLOPT_USERAGENT => $this->databasePrefix,
        );
        if (isset($this->httpauth_credentials)) {
            $curl_options[CURLOPT_HTTPAUTH] = $this->httpauth_method;
            $curl_options[CURLOPT_USERPWD] = $this->httpauth_credentials;
        }
        // curl_setopt_array() returns FALSE if any of the specified options
        // cannot be set, and stops processing any further options.
        $result = curl_setopt_array($this->curlHandle, $this->additionalCurlOptions + $curl_options);
        if (!$result) {
            throw new Exception('One or more cURL options could not be set.');
        }
        // By default, the child session name should be the same as the parent.
        $this->session_name = session_name();
    }
    // We set the user agent header on each request so as to use the current
    // time and a new uniqid.
    if (preg_match('/simpletest\\d+/', $this->databasePrefix, $matches)) {
        curl_setopt($this->curlHandle, CURLOPT_USERAGENT, drupal_generate_test_ua($matches[0]));
    }
}

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