function BootstrapOverrideServerVariablesTestCase::testDrupalOverrideServerVariablesProvidedURL

Test providing a direct URL to to drupal_override_server_variables().

File

modules/simpletest/tests/bootstrap.test, line 795

Class

BootstrapOverrideServerVariablesTestCase
Tests for overriding server variables via the API.

Code

function testDrupalOverrideServerVariablesProvidedURL() {
    $tests = array(
        'http://example.com' => array(
            'HTTP_HOST' => 'example.com',
            'SCRIPT_NAME' => isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : NULL,
        ),
        'http://example.com/index.php' => array(
            'HTTP_HOST' => 'example.com',
            'SCRIPT_NAME' => '/index.php',
        ),
        'http://example.com/subdirectory/index.php' => array(
            'HTTP_HOST' => 'example.com',
            'SCRIPT_NAME' => '/subdirectory/index.php',
        ),
    );
    foreach ($tests as $url => $expected_server_values) {
        // Remember the original value of $_SERVER, since the function call below
        // will modify it.
        $original_server = $_SERVER;
        // Call drupal_override_server_variables() and ensure that all expected
        // $_SERVER variables were modified correctly.
        drupal_override_server_variables(array(
            'url' => $url,
        ));
        foreach ($expected_server_values as $key => $value) {
            $this->assertIdentical($_SERVER[$key], $value);
        }
        // Restore the original value of $_SERVER.
        $_SERVER = $original_server;
    }
}

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