protected function KernelTestBase::disableModules in Zircon Profile 8
Same name in this branch
- 8 core/tests/Drupal/KernelTests/KernelTestBase.php \Drupal\KernelTests\KernelTestBase::disableModules()
- 8 core/modules/simpletest/src/KernelTestBase.php \Drupal\simpletest\KernelTestBase::disableModules()
Same name and namespace in other branches
- 8.0 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.
File
- core/
tests/ Drupal/ KernelTests/ KernelTestBase.php, line 867 - Contains \Drupal\KernelTests\KernelTestBase.
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 _theme() 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.");
}
}
}