You are here

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\simpletest

Code

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),
  ]));
}