protected function KernelTestBase::disableModules in SimpleTest 8.3
Disables modules for this test.
Parameters
array $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 active modules is still loaded. The modules are only removed from the active module list.
1 call to KernelTestBase::disableModules()
- KernelTestBaseTest::testEnableModulesTheme in src/
Tests/ KernelTestBaseTest.php - Tests that ThemeManager works right after loading a module.
File
- src/
KernelTestBase.php, line 583
Class
- KernelTestBase
- Base class for functional integration tests.
Namespace
Drupal\simpletestCode
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) {
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->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();
$this
->pass(new FormattableMarkup('Disabled modules: %modules.', [
'%modules' => implode(', ', $modules),
]));
}