Merge pull request #56662 from nextcloud/backport/56626/stable32

[stable32] Fix/fix/theming legacy app config
pull/56760/head
Andy Scherzinger 2025-11-30 21:38:16 +07:00 committed by GitHub
commit f8cdac4a98
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 36 additions and 4 deletions

@ -431,12 +431,12 @@ class ThemingDefaults extends \OC_Defaults {
* @param string $value
*/
public function set($setting, $value): void {
switch ($value) {
switch ($setting) {
case ConfigLexicon::CACHE_BUSTER:
$this->appConfig->setAppValueInt(ConfigLexicon::CACHE_BUSTER, (int)$value);
break;
case ConfigLexicon::USER_THEMING_DISABLED:
$value = $value === 'true' || $value === 'yes' || $value === '1';
$value = in_array($value, ['1', 'true', 'yes', 'on']);
$this->appConfig->setAppValueBool(ConfigLexicon::USER_THEMING_DISABLED, $value);
break;
default:

@ -7,6 +7,7 @@ declare(strict_types=1);
*/
namespace OCA\Theming\Tests;
use OCA\Theming\ConfigLexicon;
use OCA\Theming\ImageManager;
use OCA\Theming\Service\BackgroundService;
use OCA\Theming\ThemingDefaults;
@ -728,7 +729,7 @@ class ThemingDefaultsTest extends TestCase {
'theming-favicon-mime' => '\'jpeg\'',
'image-logoheader' => "url('custom-logoheader?v=0')",
'image-favicon' => "url('custom-favicon?v=0')",
'has-legal-links' => 'false'
'has-legal-links' => 'false',
];
$this->assertEquals($expected, $this->template->getScssVariables());
}
@ -798,7 +799,7 @@ class ThemingDefaultsTest extends TestCase {
['core', 'test.png', false],
['core', 'manifest.json'],
['core', 'favicon.ico'],
['core', 'favicon-touch.png']
['core', 'favicon-touch.png'],
];
}
@ -825,4 +826,35 @@ class ThemingDefaultsTest extends TestCase {
}
$this->assertEquals($result, $this->template->replaceImagePath($app, $image));
}
public static function setTypesProvider(): array {
return [
[ConfigLexicon::BASE_URL, 'example.com', 'example.com'],
[ConfigLexicon::USER_THEMING_DISABLED, 'no', false],
[ConfigLexicon::USER_THEMING_DISABLED, 'true', true],
];
}
#[\PHPUnit\Framework\Attributes\DataProvider('setTypesProvider')]
public function testSetTypes(string $setting, string $value, mixed $expected): void {
$setValue = null;
$cb = function ($setting, $value) use (&$setValue) {
if ($setting !== ConfigLexicon::CACHE_BUSTER) {
$setValue = $value;
}
return true;
};
$this->appConfig
->method('setAppValueBool')
->willReturnCallback($cb);
$this->appConfig
->method('setAppValueString')
->willReturnCallback($cb);
$this->appConfig
->method('setAppValueInt')
->willReturnCallback($cb);
$this->template->set($setting, $value);
$this->assertEquals($expected, $setValue);
}
}