You are here

public function UpdatePathTestBaseTest::testModuleListChange in Drupal 9

Same name and namespace in other branches
  1. 8 core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBaseTest.php \Drupal\FunctionalTests\Update\UpdatePathTestBaseTest::testModuleListChange()

Tests that test running environment is updated when module list changes.

See also

update_test_schema_update_8003()

File

core/tests/Drupal/FunctionalTests/Update/UpdatePathTestBaseTest.php, line 164

Class

UpdatePathTestBaseTest
Tests the update path base class.

Namespace

Drupal\FunctionalTests\Update

Code

public function testModuleListChange() {

  // Set a value in the cache to prove caches are cleared.
  \Drupal::service('cache.default')
    ->set(__CLASS__, 'Test');

  // Ensure that modules are installed and uninstalled as expected prior to
  // running updates.
  $extension_config = $this
    ->config('core.extension')
    ->get();
  $this
    ->assertArrayHasKey('page_cache', $extension_config['module']);
  $this
    ->assertArrayNotHasKey('module_test', $extension_config['module']);
  $module_list = \Drupal::moduleHandler()
    ->getModuleList();
  $this
    ->assertArrayHasKey('page_cache', $module_list);
  $this
    ->assertArrayNotHasKey('module_test', $module_list);
  $namespaces = \Drupal::getContainer()
    ->getParameter('container.namespaces');
  $this
    ->assertArrayHasKey('Drupal\\page_cache', $namespaces);
  $this
    ->assertArrayNotHasKey('Drupal\\module_test', $namespaces);

  // Increment the schema version so that update_test_schema_update_8003()
  // runs.
  \Drupal::state()
    ->set('update_test_schema_version', 8003);
  $this
    ->runUpdates();

  // Ensure that test running environment has been updated with the changes to
  // the module list.
  $extension_config = $this
    ->config('core.extension')
    ->get();
  $this
    ->assertArrayNotHasKey('page_cache', $extension_config['module']);
  $this
    ->assertArrayHasKey('module_test', $extension_config['module']);
  $module_list = \Drupal::moduleHandler()
    ->getModuleList();
  $this
    ->assertArrayNotHasKey('page_cache', $module_list);
  $this
    ->assertArrayHasKey('module_test', $module_list);
  $namespaces = \Drupal::getContainer()
    ->getParameter('container.namespaces');
  $this
    ->assertArrayNotHasKey('Drupal\\page_cache', $namespaces);
  $this
    ->assertArrayHasKey('Drupal\\module_test', $namespaces);

  // Ensure the test runners cache has been cleared.
  $this
    ->assertFalse(\Drupal::service('cache.default')
    ->get(__CLASS__));
}