Hi,

As requested by Fabianx on IRC and on the related issue #1545964: Do not copy over the owner and engine of a theme if the child theme uses a different engine than the base theme, here's a patch for Drupal 8 that adds some tests for testing themes and subthemes engine inheritance.

Patch will follow.

CommentFileSizeAuthor
#2 issue-2825382-drupal8-2-x.patch2.94 KBpol

Comments

Pol created an issue. See original summary.

pol’s picture

Status: Active » Needs review
StatusFileSize
new2.94 KB

Here's the patch.

dawehner’s picture

This should be IMHO a kernel test, and not yet another old and slow web test. Nothing in this test is really using an HTTP request.

pol’s picture

Hi Daniel,

For these I will need help, I'm not at ease with those tests yet.

Thanks.

fabianx’s picture

Issue summary: View changes

#3: Could you support Pol to implement this, please?

dawehner’s picture

To be clear, there are many more people which are able to answer this question.

+++ b/core/modules/system/src/Tests/Theme/EngineNyanCatSubThemeTest.php
@@ -0,0 +1,54 @@
+    $this->drupalGet('theme-test/template-test');
+    $this->assertText('Success: Template overridden with Nyan Cat theme. All of them', 'Template overridden by Nyan Cat file.');

The controller beneath that (\Drupal\theme_test\ThemeTestController::testTemplate) calls out to \Drupal::theme()->render('theme_test_template_test', array())
You can call out to the same in a kernel test

fabianx’s picture

Status: Needs review » Reviewed & tested by the community

Hm, no other test in the theme system uses KernelTestBase, so I am setting to RTBC as we should maybe just convert the whole test base over instead.

dawehner’s picture

+++ b/core/modules/system/src/Tests/Theme/EngineNyanCatSubThemeTest.php
@@ -0,0 +1,54 @@
+  /**
+   * Ensure the subtheme has inherited of the theme engine of it's base theme.
+   */
+  function testEngineIsCorrectlyInherited() {
+    /** @var ThemeHandler $theme_handler */
+    $infos = \Drupal::service('theme_handler')->listInfo();
+
+    // Get the base theme name from the theme 'test_subtheme_nyan_cat_engine'
+    $base_theme_name = $infos['test_subtheme_nyan_cat_engine']->info['base theme'];
+    // Get the base theme
+    $base_theme = $infos[$base_theme_name];
+
+    // Compare their theme engine.
+    $this->assertEqual($infos['test_subtheme_nyan_cat_engine']->info['engine'], $base_theme->info['engine']);
+  }

At least this could be easily moved to a kernel test, my just moving the code over

Status: Reviewed & tested by the community » Needs work

The last submitted patch, 2: issue-2825382-drupal8-2-x.patch, failed testing.

joelpittet’s picture

Status: Needs work » Reviewed & tested by the community

Looks like a random fail, should the tests be moved @dawehner?

lauriii’s picture

Status: Reviewed & tested by the community » Needs work

This could be moved quite easily to the kernel tests so let's do so

Version: 8.2.x-dev » 8.3.x-dev

Drupal 8.2.6 was released on February 1, 2017 and is the final full bugfix release for the Drupal 8.2.x series. Drupal 8.2.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.3.0 on April 5, 2017. (Drupal 8.3.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.3.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.4.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.3.x-dev » 8.4.x-dev

Drupal 8.3.6 was released on August 2, 2017 and is the final full bugfix release for the Drupal 8.3.x series. Drupal 8.3.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.4.0 on October 4, 2017. (Drupal 8.4.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.4.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.5.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.4.x-dev » 8.5.x-dev

Drupal 8.4.4 was released on January 3, 2018 and is the final full bugfix release for the Drupal 8.4.x series. Drupal 8.4.x will not receive any further development aside from critical and security fixes. Sites should prepare to update to 8.5.0 on March 7, 2018. (Drupal 8.5.0-alpha1 is available for testing.)

Bug reports should be targeted against the 8.5.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.6.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

Version: 8.5.x-dev » 8.6.x-dev

Drupal 8.5.6 was released on August 1, 2018 and is the final bugfix release for the Drupal 8.5.x series. Drupal 8.5.x will not receive any further development aside from security fixes. Sites should prepare to update to 8.6.0 on September 5, 2018. (Drupal 8.6.0-rc1 is available for testing.)

Bug reports should be targeted against the 8.6.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.7.x-dev branch. For more information see the Drupal 8 minor version schedule and the Allowed changes during the Drupal 8 release cycle.

joseph.olstad’s picture

There's a few different kernel tests

which kernel test should this be moved to?

find core -name '*kernel*'

core/modules/system/tests/modules/httpkernel_test
core/modules/system/tests/modules/httpkernel_test/httpkernel_test.services.yml
core/modules/system/tests/modules/httpkernel_test/httpkernel_test.routing.yml
core/modules/system/tests/modules/httpkernel_test/httpkernel_test.info.yml
core/modules/jsonapi/tests/modules/jsonapi_test_normalizers_kernel
core/modules/jsonapi/tests/modules/jsonapi_test_normalizers_kernel/jsonapi_test_normalizers_kernel.services.yml
core/modules/jsonapi/tests/modules/jsonapi_test_normalizers_kernel/jsonapi_test_normalizers_kernel.info.yml

Version: 8.6.x-dev » 8.8.x-dev

Drupal 8.6.x will not receive any further development aside from security fixes. Bug reports should be targeted against the 8.8.x-dev branch from now on, and new development or disruptive changes should be targeted against the 8.9.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.8.x-dev » 8.9.x-dev

Drupal 8.8.7 was released on June 3, 2020 and is the final full bugfix release for the Drupal 8.8.x series. Drupal 8.8.x will not receive any further development aside from security fixes. Sites should prepare to update to Drupal 8.9.0 or Drupal 9.0.0 for ongoing support.

Bug reports should be targeted against the 8.9.x-dev branch from now on, and new development or disruptive changes should be targeted against the 9.1.x-dev branch. For more information see the Drupal 8 and 9 minor version schedule and the Allowed changes during the Drupal 8 and 9 release cycles.

Version: 8.9.x-dev » 9.2.x-dev

Drupal 8 is end-of-life as of November 17, 2021. There will not be further changes made to Drupal 8. Bugfixes are now made to the 9.3.x and higher branches only. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.2.x-dev » 9.3.x-dev

Version: 9.3.x-dev » 9.4.x-dev

Drupal 9.3.15 was released on June 1st, 2022 and is the final full bugfix release for the Drupal 9.3.x series. Drupal 9.3.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.4.x-dev branch from now on, and new development or disruptive changes should be targeted for the 9.5.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.4.x-dev » 9.5.x-dev

Drupal 9.4.9 was released on December 7, 2022 and is the final full bugfix release for the Drupal 9.4.x series. Drupal 9.4.x will not receive any further development aside from security fixes. Drupal 9 bug reports should be targeted for the 9.5.x-dev branch from now on, and new development or disruptive changes should be targeted for the 10.1.x-dev branch. For more information see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

Version: 9.5.x-dev » 11.x-dev

Drupal core is moving towards using a “main” branch. As an interim step, a new 11.x branch has been opened, as Drupal.org infrastructure cannot currently fully support a branch named main. New developments and disruptive changes should now be targeted for the 11.x branch. For more information, see the Drupal core minor version schedule and the Allowed changes during the Drupal core release cycle.

smustgrave’s picture

Category: Bug report » Task
Issue tags: +Bug Smash Initiative, +Needs issue summary update

Came up as daily BSI target.

Based on the title this seems like a task vs a bug

Issue summary should be updated with the standard template

Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.