From 5fe4c73f0bbda8c1bff7c1b72a968c75ce375c9b Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 24 Nov 2025 18:02:27 +0100 Subject: [PATCH] test: add test for theming config casting Signed-off-by: Robin Appelman --- apps/theming/tests/ThemingDefaultsTest.php | 36 ++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index 5682798f3f1..86907b4b31c 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -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); + } }