public function ModulesDisabledUpgradePathTest::testDisabledUpgrade

Tests an upgrade with all non-required modules installed but disabled.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Upgrade/ModulesDisabledUpgradePathTest.php, line 36
Definition of Drupal\system\Tests\Upgrade\ModulesDisabledUpgradePathTest.

Class

ModulesDisabledUpgradePathTest
Tests upgrading with all non-required modules installed but disabled.

Namespace

Drupal\system\Tests\Upgrade

Code

public function testDisabledUpgrade() {
  $this
    ->assertTrue($this
    ->performUpgrade(), 'The upgrade was completed successfully.');

  // Get enabled modules.
  $enabled = \Drupal::moduleHandler()
    ->getModuleList();

  // Get all available modules.
  $available = system_rebuild_module_data();

  // Filter out hidden test modules.
  foreach ($available as $module => $data) {
    if (!empty($data->info['hidden'])) {
      unset($available[$module]);
    }
  }
  $to_enable = array_diff_key($available, $enabled);
  module_enable(array_keys($to_enable));

  // Check for updates.
  require_once DRUPAL_ROOT . '/core/includes/update.inc';
  require_once DRUPAL_ROOT . '/core/includes/install.inc';
  $updates = update_get_update_list();
  $this
    ->assertEqual($updates, array(), 'No pending updates after enabling all modules.');
  $this
    ->assertTrue(\Drupal::state()
    ->get('update_test_1_update_dependencies_run'), 'Module update dependencies resolved for disabled modules');
}