function SettingsTest::testDatabaseInfoInitialization
Same name in other branches
- 9 core/tests/Drupal/Tests/Core/Site/SettingsTest.php \Drupal\Tests\Core\Site\SettingsTest::testDatabaseInfoInitialization()
- 10 core/tests/Drupal/Tests/Core/Site/SettingsTest.php \Drupal\Tests\Core\Site\SettingsTest::testDatabaseInfoInitialization()
Tests initialization performed for the $databases variable.
@dataProvider providerTestDatabaseInfoInitialization
File
-
core/
tests/ Drupal/ Tests/ Core/ Site/ SettingsTest.php, line 323
Class
- SettingsTest
- @coversDefaultClass \Drupal\Core\Site\Settings @runTestsInSeparateProcesses @group Site
Namespace
Drupal\Tests\Core\SiteCode
public function testDatabaseInfoInitialization(string $driver, ?string $namespace, ?string $autoload, string $expected_namespace, ?string $expected_autoload) : void {
$databases['mock'][$driver] = [
'driver' => $driver,
'prefix' => '',
];
if (!is_null($namespace)) {
$databases['mock'][$driver]['namespace'] = $namespace;
}
if (!is_null($autoload)) {
$databases['mock'][$driver]['autoload'] = $autoload;
}
$settings_file_content = "<?php\n\$databases = " . var_export($databases, TRUE) . ";\n";
$vfs_root = vfsStream::setup('root');
$sites_directory = vfsStream::newDirectory('sites')->at($vfs_root);
vfsStream::newFile('settings.php')->at($sites_directory)
->setContent($settings_file_content);
$class_loader = $this->createMock(ClassLoader::class);
if (!empty($expected_autoload)) {
$class_loader->expects($this->once())
->method('addPsr4')
->with($expected_namespace . '\\', vfsStream::url('root') . '/' . $expected_autoload);
}
else {
$class_loader->expects($this->never())
->method('addPsr4');
}
Settings::initialize(vfsStream::url('root'), 'sites', $class_loader);
$expected = [
$driver => [
'driver' => $driver,
'namespace' => $expected_namespace,
'prefix' => '',
],
];
if (!is_null($expected_autoload)) {
$expected[$driver]['autoload'] = $expected_autoload;
}
$this->assertEquals($expected, Database::getConnectionInfo('mock'));
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.