3 namespace Drupal\KernelTests\Core\Update;
5 use Drupal\KernelTests\KernelTestBase;
8 * Tests that extensions that are incompatible with the current core version are disabled.
12 class CompatibilityFixTest extends KernelTestBase {
17 public static $modules = ['system'];
19 protected function setUp() {
21 require_once \Drupal::root() . '/core/includes/update.inc';
24 public function testFixCompatibility() {
25 $extension_config = \Drupal::configFactory()->getEditable('core.extension');
27 // Add an incompatible/non-existent module to the config.
28 $modules = $extension_config->get('module');
29 $modules['incompatible_module'] = 0;
30 $extension_config->set('module', $modules);
31 $modules = $extension_config->get('module');
32 $this->assertTrue(in_array('incompatible_module', array_keys($modules)), 'Added incompatible/non-existent module to the config.');
34 // Add an incompatible/non-existent theme to the config.
35 $themes = $extension_config->get('theme');
36 $themes['incompatible_theme'] = 0;
37 $extension_config->set('theme', $themes);
38 $themes = $extension_config->get('theme');
39 $this->assertTrue(in_array('incompatible_theme', array_keys($themes)), 'Added incompatible/non-existent theme to the config.');
42 update_fix_compatibility();
43 $modules = $extension_config->get('module');
44 $this->assertFalse(in_array('incompatible_module', array_keys($modules)), 'Fixed modules compatibility.');
45 $themes = $extension_config->get('theme');
46 $this->assertFalse(in_array('incompatible_theme', array_keys($themes)), 'Fixed themes compatibility.');