Upgraded drupal core with security updates
[yaffs-website] / web / core / tests / Drupal / KernelTests / Core / Update / CompatibilityFixTest.php
1 <?php
2
3 namespace Drupal\KernelTests\Core\Update;
4
5 use Drupal\KernelTests\KernelTestBase;
6
7 /**
8  * Tests that extensions that are incompatible with the current core version are disabled.
9  *
10  * @group Update
11  */
12 class CompatibilityFixTest extends KernelTestBase {
13
14   /**
15    * {@inheritdoc}
16    */
17   public static $modules = ['system'];
18
19   protected function setUp() {
20     parent::setUp();
21     require_once \Drupal::root() . '/core/includes/update.inc';
22   }
23
24   public function testFixCompatibility() {
25     $extension_config = \Drupal::configFactory()->getEditable('core.extension');
26
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.');
33
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.');
40
41     // Fix compatibility.
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.');
47   }
48
49 }