You are here

function BootstrapOverrideServerVariablesTestCase::testDrupalOverrideServerVariablesProvidedURL in Drupal 7

Test providing a direct URL to to drupal_override_server_variables().

File

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

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