Issue #2972153 by dimitriskr, alexpott, smustgrave, andypost, kostyashupenko: Deprecate ThemeHandlerInterface::getBaseThemes and remove usages from core
parent
0e6acad498
commit
1e80a22b06
|
@ -210,8 +210,14 @@ class ThemeExtensionList extends ExtensionList {
|
|||
* @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 @@ class ThemeHandler implements ThemeHandlerInterface {
|
|||
* {@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 @@ interface ThemeHandlerInterface {
|
|||
* @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 @@ class ThemeExtensionListTest extends UnitTestCase {
|
|||
* @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 @@ class ThemeExtensionListTest extends UnitTestCase {
|
|||
$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.
|
||||
|
|
Loading…
Reference in New Issue