Skip to content
Snippets Groups Projects
Verified Commit 5e778473 authored by Dave Long's avatar Dave Long
Browse files

Issue #2972153 by dimitriskr, alexpott, smustgrave, andypost, kostyashupenko:...

Issue #2972153 by dimitriskr, alexpott, smustgrave, andypost, kostyashupenko: Deprecate ThemeHandlerInterface::getBaseThemes and remove usages from core

(cherry picked from commit 1e80a22b)
parent 1837cf5b
No related branches found
No related tags found
26 merge requests!11185Issue #3477324 by andypost, alexpott: Fix usage of str_getcsv() and fgetcsv() for PHP 8.4,!10602Issue #3438769 by vinmayiswamy, antonnavi, michelle, amateescu: Sub workspace does not clear,!10301Issue #3469309 by mstrelan, smustgrave, moshe weitzman: Use one-time login...,!10187Issue #3487488 by dakwamine: ExtensionMimeTypeGuesser::guessMimeType must support file names with "0" (zero) like foo.0.zip,!9944Issue #3483353: Consider making the createCopy config action optionally fail...,!9929Issue #3445469 by pooja_sharma, smustgrave: Add additional test coverage for...,!9787Resolve issue 3479427 - bootstrap barrio issue under Windows,!9742Issue #3463908 by catch, quietone: Split OptionsFieldUiTest into two,!9526Issue #3458177 by mondrake, catch, quietone, godotislate, longwave, larowlan,...,!8738Issue #3424162 by camilledavis, dineshkumarbollu, smustgrave: Claro...,!8704Make greek characters available in ckeditor5,!8597Draft: Issue #3442259 by catch, quietone, dww: Reduce time of Migrate Upgrade tests...,!8533Issue #3446962 by kim.pepper: Remove incorrectly added...,!8517Issue #3443748 by NexusNovaz, smustgrave: Testcase creates false positive,!8325Update file Sort.php,!8095Expose document root on install,!7930Resolve #3427374 "Taxonomytid viewsargumentdefault plugin",!7627Issue #3439440 by nicxvan, Binoli Lalani, longwave: Remove country support from DateFormatter,!7445Issue #3440169: When using drupalGet(), provide an associative array for $headers,!7401#3271894 Fix documented StreamWrapperInterface return types for realpath() and dirname(),!7384Add constraints to system.advisories,!7078Issue #3320569 by Spokje, mondrake, smustgrave, longwave, quietone, Lendude,...,!6622Issue #2559833 by piggito, mohit_aghera, larowlan, guptahemant, vakulrai,...,!6502Draft: Resolve #2938524 "Plach testing issue",!38582585169-10.1.x,!3226Issue #2987537: Custom menu link entity type should not declare "bundle" entity key
Pipeline #120370 passed
Pipeline: drupal

#120384

    Pipeline: drupal

    #120380

      Pipeline: drupal

      #120376

        +1
        ......@@ -210,8 +210,14 @@ protected function fillInSubThemeData(array &$themes, array $sub_themes) {
        * @return array
        * Returns an array of all of the theme's ancestors; the first element's
        * value will be NULL if an error occurred.
        *
        * @deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. There
        * is no direct replacement.
        *
        * @see https://www.drupal.org/node/3413187
        */
        public function getBaseThemes(array $themes, $theme) {
        @trigger_error("\Drupal\Core\Extension\ThemeExtensionList::getBaseThemes() is deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. There is no direct replacement. See https://www.drupal.org/node/3413187", E_USER_DEPRECATED);
        return $this->doGetBaseThemes($themes, $theme);
        }
        ......
        ......@@ -133,6 +133,7 @@ public function rebuildThemeData() {
        * {@inheritdoc}
        */
        public function getBaseThemes(array $themes, $theme) {
        @trigger_error("\Drupal\Core\Extension\ThemeHandlerInterface::getBaseThemes() is deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. There is no direct replacement. See https://www.drupal.org/node/3413187", E_USER_DEPRECATED);
        return $this->themeList->getBaseThemes($themes, $theme);
        }
        ......
        ......@@ -98,6 +98,11 @@ public function rebuildThemeData();
        * @return array
        * Returns an array of all of the theme's ancestors; the first element's
        * value will be NULL if an error occurred.
        *
        * @deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. There
        * is no direct replacement.
        *
        * @see https://www.drupal.org/node/3413187
        */
        public function getBaseThemes(array $themes, $theme);
        ......
        ......@@ -116,7 +116,9 @@ public function testRebuildThemeDataWithThemeParents() {
        * @param array $expected
        * The expected base themes.
        *
        * @dataProvider providerTestGetBaseThemes
        * @dataProvider providerTestDoGetBaseThemes
        *
        * @group legacy
        */
        public function testGetBaseThemes(array $themes, $theme, array $expected) {
        // Mocks and stubs.
        ......@@ -126,18 +128,45 @@ public function testGetBaseThemes(array $themes, $theme, array $expected) {
        $theme_engine_list = $this->prophesize(ThemeEngineExtensionList::class);
        $theme_listing = new ThemeExtensionList($this->root, 'theme', new NullBackend('test'), new InfoParser($this->root), $module_handler->reveal(), $state, $config_factory, $theme_engine_list->reveal(), 'test');
        $this->expectDeprecation("\Drupal\Core\Extension\ThemeExtensionList::getBaseThemes() is deprecated in drupal:10.3.0 and is removed from drupal:12.0.0. There is no direct replacement. See https://www.drupal.org/node/3413187");
        $base_themes = $theme_listing->getBaseThemes($themes, $theme);
        $this->assertEquals($expected, $base_themes);
        }
        /**
        * Provides test data for testGetBaseThemes.
        * Tests getting the base themes for a set of defined themes.
        *
        * @param array $themes
        * An array of available themes, keyed by the theme name.
        * @param string $theme
        * The theme name to find all its base themes.
        * @param array $expected
        * The expected base themes.
        *
        * @dataProvider providerTestDoGetBaseThemes
        */
        public function testDoGetBaseThemes(array $themes, $theme, array $expected): void {
        // Mocks and stubs.
        $module_handler = $this->prophesize(ModuleHandlerInterface::class);
        $state = new State(new KeyValueMemoryFactory());
        $config_factory = $this->getConfigFactoryStub([]);
        $theme_engine_list = $this->prophesize(ThemeEngineExtensionList::class);
        $theme_listing = new ThemeExtensionList($this->root, 'theme', new NullBackend('test'), new InfoParser($this->root), $module_handler->reveal(), $state, $config_factory, $theme_engine_list->reveal(), 'test');
        $method_to_test = (new \ReflectionObject($theme_listing))->getMethod('doGetBaseThemes');
        $base_themes = $method_to_test->invoke($theme_listing, $themes, $theme);
        $this->assertEquals($expected, $base_themes);
        }
        /**
        * Provides test data for testDoGetBaseThemes.
        *
        * @return array
        * An array of theme test data.
        */
        public static function providerTestGetBaseThemes() {
        public static function providerTestDoGetBaseThemes() {
        $data = [];
        // Tests a theme without any base theme.
        ......
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Finish editing this message first!
        Please register or to comment