diff options
author | John Molakvoæ <skjnldsv@protonmail.com> | 2022-04-30 12:31:09 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@protonmail.com> | 2022-04-30 13:40:27 +0200 |
commit | f577b5dc96bf6248a1d0c5497573dd3b3eaaffd9 (patch) | |
tree | c06361089caa9faebbd8890233df8e2bed98d8d6 /apps/theming | |
parent | 24c5d994c7652f266f62563f11bab55defc41dae (diff) | |
download | nextcloud-server-f577b5dc96bf6248a1d0c5497573dd3b3eaaffd9.tar.gz nextcloud-server-f577b5dc96bf6248a1d0c5497573dd3b3eaaffd9.zip |
Fix theming setEnabledThemes unique array
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/theming')
-rw-r--r-- | apps/theming/lib/Service/ThemesService.php | 2 | ||||
-rw-r--r-- | apps/theming/tests/Service/ThemesServiceTest.php | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/apps/theming/lib/Service/ThemesService.php b/apps/theming/lib/Service/ThemesService.php index 283b2e9c9ee..26dcbfed0d5 100644 --- a/apps/theming/lib/Service/ThemesService.php +++ b/apps/theming/lib/Service/ThemesService.php @@ -176,6 +176,6 @@ class ThemesService { */ private function setEnabledThemes(array $themes): void { $user = $this->userSession->getUser(); - $this->config->setUserValue($user->getUID(), Application::APP_ID, 'enabled-themes', json_encode(array_unique(array_values($themes)))); + $this->config->setUserValue($user->getUID(), Application::APP_ID, 'enabled-themes', json_encode(array_values(array_unique($themes)))); } } diff --git a/apps/theming/tests/Service/ThemesServiceTest.php b/apps/theming/tests/Service/ThemesServiceTest.php index 657418db471..90816ae2328 100644 --- a/apps/theming/tests/Service/ThemesServiceTest.php +++ b/apps/theming/tests/Service/ThemesServiceTest.php @@ -239,6 +239,38 @@ class ThemesServiceTest extends TestCase { $this->assertEquals(['light'], $this->themesService->getEnabledThemes()); } + + public function dataTestSetEnabledThemes() { + return [ + [[], []], + [['light'], ['light']], + [['dark'], ['dark']], + [['dark', 'dark', 'opendyslexic'], ['dark', 'opendyslexic']], + ]; + } + + /** + * @dataProvider dataTestSetEnabledThemes + * + * @param string[] $enabledThemes + * @param string[] $expected + */ + public function testSetEnabledThemes(array $enabledThemes, array $expected) { + $user = $this->createMock(IUser::class); + $this->userSession->expects($this->any()) + ->method('getUser') + ->willReturn($user); + $user->expects($this->any()) + ->method('getUID') + ->willReturn('user'); + + $this->config->expects($this->once()) + ->method('setUserValue') + ->with('user', Application::APP_ID, 'enabled-themes', json_encode($expected)); + + $this->invokePrivate($this->themesService, 'setEnabledThemes', [$enabledThemes]); + } + private function initThemes() { $util = $this->createMock(Util::class); $urlGenerator = $this->createMock(IURLGenerator::class); |