diff --git a/core/modules/system/src/Tests/Update/StableBaseThemeUpdateTest.php b/core/modules/system/src/Tests/Update/StableBaseThemeUpdateTest.php new file mode 100644 index 0000000..565fa0d --- /dev/null +++ b/core/modules/system/src/Tests/Update/StableBaseThemeUpdateTest.php @@ -0,0 +1,53 @@ +databaseDumpFiles = [ + __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.bare.standard.php.gz', + __DIR__ . '/../../../../system/tests/fixtures/update/drupal-8.stable-base-theme-2575421.php', + ]; + } + + /** + * {@inheritdoc} + */ + protected function setUp() { + parent::setUp(); + /** @var \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler */ + $theme_handler = \Drupal::service('theme_handler'); + $theme_handler->refreshInfo(); + } + + /** + * Tests that the Stable base theme is installed if necessary. + */ + public function testUpdateHookN() { + $theme_handler = \Drupal::service('theme_handler'); + $this->assertTrue($theme_handler->themeExists('test_stable')); + $this->assertFalse($theme_handler->themeExists('stable')); + + $this->runUpdates(); + + $theme_handler->refreshInfo(); + $this->assertTrue($theme_handler->themeExists('stable')); + } + +} diff --git a/core/modules/system/tests/fixtures/update/drupal-8.stable-base-theme-2575421.php b/core/modules/system/tests/fixtures/update/drupal-8.stable-base-theme-2575421.php new file mode 100644 index 0000000..7b658b4 --- /dev/null +++ b/core/modules/system/tests/fixtures/update/drupal-8.stable-base-theme-2575421.php @@ -0,0 +1,25 @@ +select('config') + ->fields('config', ['data']) + ->condition('name', 'core.extension') + ->execute() + ->fetchField(); +$extensions = unserialize($extensions); +$connection->update('config') + ->fields([ + 'data' => serialize(array_merge_recursive($extensions, ['theme' => ['test_stable' => 0]])) + ]) + ->condition('name', 'core.extension') + ->execute();