function DrupalKernelTest::testClassLoaderAutoDetect

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

Tests class_loader_auto_detect setting.

This test runs in a separate process since it registers class loaders and results in statics being set.

@runInSeparateProcess @preserveGlobalState disabled @covers ::boot @dataProvider providerClassLoaderAutoDetect

Parameters

bool $value: The value to set class_loader_auto_detect to.

File

core/tests/Drupal/KernelTests/Core/DrupalKernel/DrupalKernelTest.php, line 229

Class

DrupalKernelTest
Tests DIC compilation to disk.

Namespace

Drupal\KernelTests\Core\DrupalKernel

Code

public function testClassLoaderAutoDetect($value) : void {
    // Create a virtual file system containing items that should be
    // excluded. Exception being modules directory.
    vfsStream::setup('root', NULL, [
        'sites' => [
            'default' => [],
        ],
        'core' => [
            'lib' => [
                'Drupal' => [
                    'Core' => [],
                    'Component' => [],
                ],
            ],
        ],
    ]);
    $this->setSetting('class_loader_auto_detect', $value);
    $classloader = $this->prophesize(ClassLoader::class);
    // Assert that we call the setApcuPrefix on the classloader if
    // class_loader_auto_detect is set to TRUE;
    if ($value) {
        $classloader->setApcuPrefix(Argument::type('string'))
            ->shouldBeCalled();
    }
    else {
        $classloader->setApcuPrefix(Argument::type('string'))
            ->shouldNotBeCalled();
    }
    // Create a kernel suitable for testing.
    $kernel = new DrupalKernel('test', $classloader->reveal(), FALSE, vfsStream::url('root'));
    $kernel->setSitePath(vfsStream::url('root/sites/default'));
    $kernel->boot();
}

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