protected function KernelTestBase::disableModules in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/KernelTests/KernelTestBase.php \Drupal\KernelTests\KernelTestBase::disableModules()
Disables modules for this test.
Parameters
string[] $modules: A list of modules to disable. Dependencies are not resolved; i.e., multiple modules have to be specified with dependent modules first. Code of previously enabled modules is still loaded. The modules are only removed from the active module list.
Throws
\LogicException If any module in $modules is already disabled.
\RuntimeException If a module is not disabled after disabling it.
5 calls to KernelTestBase::disableModules()
- EntityDefaultLanguageTest::testEntityTranslationDefaultLanguageViaCode in core/
modules/ language/ tests/ src/ Kernel/ EntityDefaultLanguageTest.php - Tests that default language code is properly set for new nodes.
- EntityDisplayTest::testComponentDependencies in core/
modules/ field_ui/ tests/ src/ Kernel/ EntityDisplayTest.php - Tests components dependencies additions.
- EntityKernelTestBase::uninstallModule in core/
tests/ Drupal/ KernelTests/ Core/ Entity/ EntityKernelTestBase.php - Uninstalls a module and refreshes services.
- MigrationPluginListTest::testGetDefinitions in core/
modules/ migrate/ tests/ src/ Kernel/ Plugin/ MigrationPluginListTest.php - @covers ::getDefinitions
- UserRoleDeleteTest::testDependenciesRemoval in core/
modules/ user/ tests/ src/ Kernel/ UserRoleDeleteTest.php - Tests the removal of user role dependencies.
File
- core/
tests/ Drupal/ KernelTests/ KernelTestBase.php, line 871
Class
- KernelTestBase
- Base class for functional integration tests.
Namespace
Drupal\KernelTestsCode
protected function disableModules(array $modules) {
// Unset the list of modules in the extension handler.
$module_handler = $this->container
->get('module_handler');
$module_filenames = $module_handler
->getModuleList();
$extension_config = $this
->config('core.extension');
foreach ($modules as $module) {
if (!$module_handler
->moduleExists($module)) {
throw new \LogicException("{$module} module cannot be disabled because it is not enabled.");
}
unset($module_filenames[$module]);
$extension_config
->clear('module.' . $module);
}
$extension_config
->save();
$module_handler
->setModuleList($module_filenames);
$module_handler
->resetImplementations();
// Update the kernel to remove their services.
$this->container
->get('kernel')
->updateModules($module_filenames, $module_filenames);
// Ensure isLoaded() is TRUE in order to make
// \Drupal\Core\Theme\ThemeManagerInterface::render() work.
// Note that the kernel has rebuilt the container; this $module_handler is
// no longer the $module_handler instance from above.
$module_handler = $this->container
->get('module_handler');
$module_handler
->reload();
foreach ($modules as $module) {
if ($module_handler
->moduleExists($module)) {
throw new \RuntimeException("{$module} module is not disabled after disabling it.");
}
}
}