class KernelTestBaseDatabaseDriverModuleTest
Same name and namespace in other branches
- 11.x core/tests/Drupal/KernelTests/KernelTestBaseDatabaseDriverModuleTest.php \Drupal\KernelTests\KernelTestBaseDatabaseDriverModuleTest
- 10 core/tests/Drupal/KernelTests/KernelTestBaseDatabaseDriverModuleTest.php \Drupal\KernelTests\KernelTestBaseDatabaseDriverModuleTest
@coversDefaultClass \Drupal\KernelTests\KernelTestBase
@group PHPUnit @group Test @group KernelTests
Hierarchy
- class \Drupal\KernelTests\KernelTestBase implements \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\KernelTests\AssertLegacyTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\KernelTests\KernelTestBaseDatabaseDriverModuleTest extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of KernelTestBaseDatabaseDriverModuleTest
File
-
core/
tests/ Drupal/ KernelTests/ KernelTestBaseDatabaseDriverModuleTest.php, line 14
Namespace
Drupal\KernelTestsView source
class KernelTestBaseDatabaseDriverModuleTest extends KernelTestBase {
/**
* {@inheritdoc}
*/
protected function getDatabaseConnectionInfo() {
// If the test is run with argument SIMPLETEST_DB then use it.
$db_url = getenv('SIMPLETEST_DB');
if (empty($db_url)) {
throw new \Exception('There is no database connection so no tests can be run. You must provide a SIMPLETEST_DB environment variable to run PHPUnit based functional tests outside of run-tests.sh. See https://www.drupal.org/node/2116263#skipped-tests for more information.');
}
else {
$database = Database::convertDbUrlToConnectionInfo($db_url, $this->root);
if (in_array($database['driver'], [
'mysql',
'pgsql',
])) {
// Change the used database driver to the one provided by the module
// "driver_test".
$driver = 'Drivertest' . ucfirst($database['driver']);
$database['driver'] = $driver;
$database['namespace'] = 'Drupal\\driver_test\\Driver\\Database\\' . $driver;
$database['autoload'] = "core/modules/system/tests/modules/driver_test/src/Driver/Database/{$driver}/";
}
Database::addConnectionInfo('default', 'default', $database);
}
// Clone the current connection and replace the current prefix.
$connection_info = Database::getConnectionInfo('default');
if (!empty($connection_info)) {
Database::renameConnection('default', 'simpletest_original_default');
foreach ($connection_info as $target => $value) {
// Replace the full table prefix definition to ensure that no table
// prefixes of the test runner leak into the test.
$connection_info[$target]['prefix'] = [
'default' => $this->databasePrefix,
];
}
}
return $connection_info;
}
/**
* @covers ::bootEnvironment
*/
public function testDatabaseDriverModuleEnabled() : void {
$driver = Database::getConnection()->driver();
if (!in_array($driver, [
'DrivertestMysql',
'DrivertestPgsql',
])) {
$this->markTestSkipped("This test does not support the {$driver} database driver.");
}
// Test that the module that is providing the database driver is enabled.
$this->assertSame(1, \Drupal::service('extension.list.module')->get('driver_test')->status);
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.