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

Issue #3457863 by grimreaper, catch, pdureau, maboy, longwave: YAML discovery...

Issue #3457863 by grimreaper, catch, pdureau, maboy, longwave: YAML discovery does not take theme inheritance into account

(cherry picked from commit 5e0ff5a8)
parent 730dc82c
No related branches found
No related tags found
9 merge requests!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,!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,!6502Draft: Resolve #2938524 "Plach testing issue",!38582585169-10.1.x,!3226Issue #2987537: Custom menu link entity type should not declare "bundle" entity key
Pipeline #293053 passed with warnings
Pipeline: drupal

#293089

    Pipeline: drupal

    #293079

      Pipeline: drupal

      #293070

        +1
        ......@@ -69,8 +69,10 @@ public function listInfo() {
        $this->list = [];
        $installed_themes = $this->configFactory->get('core.extension')->get('theme');
        if (!empty($installed_themes)) {
        $installed_themes = array_intersect_key($this->themeList->getList(), $installed_themes);
        array_map([$this, 'addTheme'], $installed_themes);
        $list = $this->themeList->getList();
        foreach (array_keys($installed_themes) as $theme_name) {
        $this->addTheme($list[$theme_name]);
        }
        }
        }
        return $this->list;
        ......
        name: 'Theme test child theme'
        type: theme
        version: VERSION
        base theme: test_parent_theme
        theme_parent_provided_layout:
        class: '\Drupal\Core\Layout\LayoutDefault'
        label: Child
        name: 'Theme test parent theme'
        type: theme
        version: VERSION
        base theme: false
        theme_parent_provided_layout:
        class: '\Drupal\Core\Layout\LayoutDefault'
        label: Parent
        <?php
        declare(strict_types=1);
        namespace Drupal\KernelTests\Core\Layout;
        use Drupal\Core\Layout\LayoutDefinition;
        use Drupal\KernelTests\KernelTestBase;
        /**
        * @coversDefaultClass \Drupal\Core\Layout\LayoutPluginManager
        * @group Layout
        */
        class LayoutPluginManagerTest extends KernelTestBase {
        /**
        * {@inheritdoc}
        */
        protected static $modules = ['layout_discovery'];
        /**
        * {@inheritdoc}
        */
        protected function setUp(): void {
        parent::setUp();
        $this->container->get('theme_installer')->install(['test_child_theme']);
        $this->activateTheme('test_child_theme');
        }
        /**
        * Tests that layout plugins are correctly overridden.
        */
        public function testPluginOverride(): void {
        /** @var \Drupal\Core\Layout\LayoutPluginManagerInterface $layouts_manager */
        $layouts_manager = $this->container->get('plugin.manager.core.layout');
        $definitions = $layouts_manager->getDefinitions();
        $this->assertInstanceOf(LayoutDefinition::class, $definitions['theme_parent_provided_layout']);
        $this->assertSame('Child', $definitions['theme_parent_provided_layout']->getLabel()->render());
        }
        /**
        * Activates a specified theme.
        *
        * Installs the theme if not already installed and makes it the active theme.
        *
        * @param string $theme_name
        * The name of the theme to be activated.
        */
        protected function activateTheme(string $theme_name): void {
        $this->container->get('theme_installer')->install([$theme_name]);
        /** @var \Drupal\Core\Theme\ThemeInitializationInterface $theme_initializer */
        $theme_initializer = $this->container->get('theme.initialization');
        /** @var \Drupal\Core\Theme\ThemeManagerInterface $theme_manager */
        $theme_manager = $this->container->get('theme.manager');
        $theme_manager->setActiveTheme($theme_initializer->getActiveThemeByName($theme_name));
        $this->assertSame($theme_name, $theme_manager->getActiveTheme()->getName());
        }
        }
        ......@@ -88,8 +88,8 @@ public function testInstall(): void {
        * Tests installing a sub-theme.
        */
        public function testInstallSubTheme(): void {
        $name = 'test_subtheme';
        $base_name = 'test_basetheme';
        $name = 'test_child_theme';
        $base_name = 'test_parent_theme';
        $themes = $this->themeHandler()->listInfo();
        $this->assertEmpty(array_keys($themes));
        ......@@ -100,6 +100,12 @@ public function testInstallSubTheme(): void {
        $this->assertTrue(isset($themes[$name]));
        $this->assertTrue(isset($themes[$base_name]));
        $expectedOrder = [
        $base_name,
        $name,
        ];
        $this->assertEquals($expectedOrder, array_keys($themes));
        $this->themeInstaller()->uninstall([$name]);
        $themes = $this->themeHandler()->listInfo();
        ......
        0% Loading or .
        You are about to add 0 people to the discussion. Proceed with caution.
        Please register or to comment