You are here

function CompatibilityFixTest::testFixCompatibility in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/system/src/Tests/Update/CompatibilityFixTest.php \Drupal\system\Tests\Update\CompatibilityFixTest::testFixCompatibility()

File

core/modules/system/src/Tests/Update/CompatibilityFixTest.php, line 24
Contains \Drupal\system\Tests\Update\CompatibilityFixTest.

Class

CompatibilityFixTest
Tests that extensions that are incompatible with the current core version are disabled.

Namespace

Drupal\system\Tests\Update

Code

function testFixCompatibility() {
  $extension_config = \Drupal::configFactory()
    ->getEditable('core.extension');

  // Add an incompatible/non-existent module to the config.
  $modules = $extension_config
    ->get('module');
  $modules['incompatible_module'] = 0;
  $extension_config
    ->set('module', $modules);
  $modules = $extension_config
    ->get('module');
  $this
    ->assertTrue(in_array('incompatible_module', array_keys($modules)), 'Added incompatible/non-existent module to the config.');

  // Add an incompatible/non-existent theme to the config.
  $themes = $extension_config
    ->get('theme');
  $themes['incompatible_theme'] = 0;
  $extension_config
    ->set('theme', $themes);
  $themes = $extension_config
    ->get('theme');
  $this
    ->assertTrue(in_array('incompatible_theme', array_keys($themes)), 'Added incompatible/non-existent theme to the config.');

  // Fix compatibility.
  update_fix_compatibility();
  $modules = $extension_config
    ->get('module');
  $this
    ->assertFalse(in_array('incompatible_module', array_keys($modules)), 'Fixed modules compatibility.');
  $themes = $extension_config
    ->get('theme');
  $this
    ->assertFalse(in_array('incompatible_theme', array_keys($themes)), 'Fixed themes compatibility.');
}