You are here

public function DrupalKernelTest::testFindSitePath in Drupal 8

Same name and namespace in other branches
  1. 9 core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php \Drupal\Tests\Core\DrupalKernel\DrupalKernelTest::testFindSitePath()
  2. 10 core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php \Drupal\Tests\Core\DrupalKernel\DrupalKernelTest::testFindSitePath()

Tests site path finding.

This test is run in a separate process since it defines DRUPAL_ROOT. This stops any possible pollution of other tests.

@covers ::findSitePath @runInSeparateProcess

File

core/tests/Drupal/Tests/Core/DrupalKernel/DrupalKernelTest.php, line 172

Class

DrupalKernelTest
@coversDefaultClass \Drupal\Core\DrupalKernel @group DrupalKernel

Namespace

Drupal\Tests\Core\DrupalKernel

Code

public function testFindSitePath() {
  $vfs_root = vfsStream::setup('drupal_root');
  $sites_php = <<<'EOD'
<?php
$sites['8888.www.example.org'] = 'example';
EOD;

  // Create the expected directory structure.
  vfsStream::create([
    'sites' => [
      'sites.php' => $sites_php,
      'example' => [
        'settings.php' => 'test',
      ],
    ],
  ]);
  $request = new Request();
  $request->server
    ->set('SERVER_NAME', 'www.example.org');
  $request->server
    ->set('SERVER_PORT', '8888');
  $request->server
    ->set('SCRIPT_NAME', '/index.php');
  $this
    ->assertEquals('sites/example', DrupalKernel::findSitePath($request, TRUE, $vfs_root
    ->url('drupal_root')));
  $this
    ->assertEquals('sites/example', DrupalKernel::findSitePath($request, FALSE, $vfs_root
    ->url('drupal_root')));
}