mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-10-22 14:05:37 +02:00
FIX SSViewer::add_themes() to properly prepend
This commit is contained in:
parent
c7c0ee39f1
commit
6613826ed8
@ -165,7 +165,10 @@ class SSViewer implements Flushable
|
|||||||
|
|
||||||
public static function add_themes($themes = [])
|
public static function add_themes($themes = [])
|
||||||
{
|
{
|
||||||
SSViewer::config()->merge('themes', $themes);
|
$currentThemes = SSViewer::get_themes();
|
||||||
|
$finalThemes = array_merge($themes, $currentThemes);
|
||||||
|
// array_values is used to ensure sequential array keys as array_unique can leave gaps
|
||||||
|
SSViewer::set_themes(array_values(array_unique($finalThemes)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function get_themes()
|
public static function get_themes()
|
||||||
|
@ -80,6 +80,25 @@ class SSViewerTest extends SapphireTest
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Tests for themes helper functions, ensuring they behave as defined in the RFC at
|
||||||
|
* https://github.com/silverstripe/silverstripe-framework/issues/5604
|
||||||
|
*/
|
||||||
|
public function testThemesHelpers()
|
||||||
|
{
|
||||||
|
// Test set_themes()
|
||||||
|
SSViewer::set_themes(['mytheme', '$default']);
|
||||||
|
$this->assertEquals(['mytheme', '$default'], SSViewer::get_themes());
|
||||||
|
|
||||||
|
// Ensure add_themes() prepends
|
||||||
|
SSViewer::add_themes(['my_more_important_theme']);
|
||||||
|
$this->assertEquals(['my_more_important_theme', 'mytheme', '$default'], SSViewer::get_themes());
|
||||||
|
|
||||||
|
// Ensure add_themes() on theme already in cascade promotes it to the top
|
||||||
|
SSViewer::add_themes(['mytheme']);
|
||||||
|
$this->assertEquals(['mytheme', 'my_more_important_theme', '$default'], SSViewer::get_themes());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that a template without a <head> tag still renders.
|
* Test that a template without a <head> tag still renders.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user