diff --git a/apps/updatenotification/lib/Settings/Admin.php b/apps/updatenotification/lib/Settings/Admin.php index cae62ee0a9..54adf55822 100644 --- a/apps/updatenotification/lib/Settings/Admin.php +++ b/apps/updatenotification/lib/Settings/Admin.php @@ -114,7 +114,7 @@ class Admin implements ISettings { return new TemplateResponse('updatenotification', 'admin', $params, ''); } - protected function filterChanges(array $changes) { + protected function filterChanges(array $changes): array { $filtered = []; if(isset($changes['changelogURL'])) { $filtered['changelogURL'] = $changes['changelogURL']; @@ -127,7 +127,8 @@ class Admin implements ISettings { do { $lang = $iterator->current(); if(isset($changes['whatsNew'][$lang])) { - return $filtered['whatsNew'][$lang]; + $filtered['whatsNew'] = $changes['whatsNew'][$lang]; + return $filtered; } $iterator->next(); } while($lang !== 'en' && $iterator->valid()); diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php index d0d5322649..d1f44367a1 100644 --- a/apps/updatenotification/tests/Settings/AdminTest.php +++ b/apps/updatenotification/tests/Settings/AdminTest.php @@ -34,6 +34,7 @@ use OCP\IGroup; use OCP\IGroupManager; use OCP\IUserSession; use OCP\L10N\IFactory; +use OCP\L10N\ILanguageIterator; use OCP\Util; use Test\TestCase; @@ -153,4 +154,78 @@ class AdminTest extends TestCase { public function testGetPriority() { $this->assertSame(11, $this->admin->getPriority()); } + + public function changesProvider() { + return [ + [ #0, all info, en + [ + 'changelogURL' => 'https://go.to.changelog', + 'whatsNew' => [ + 'en' => [ + 'regular' => ['content'], + ], + 'de' => [ + 'regular' => ['inhalt'], + ] + ], + ], + 'en', + [ + 'changelogURL' => 'https://go.to.changelog', + 'whatsNew' => [ + 'regular' => ['content'], + ], + ] + ], + [ #1, all info, de + [ + 'changelogURL' => 'https://go.to.changelog', + 'whatsNew' => [ + 'en' => [ + 'regular' => ['content'], + ], + 'de' => [ + 'regular' => ['inhalt'], + ] + ], + ], + 'de', + [ + 'changelogURL' => 'https://go.to.changelog', + 'whatsNew' => [ + 'regular' => ['inhalt'], + ] + ], + ], + [ #2, just changelog + [ 'changelogURL' => 'https://go.to.changelog' ], + 'en', + [ 'changelogURL' => 'https://go.to.changelog' ], + ], + [ #3 nothing + [], + 'ru', + [] + ] + ]; + } + + /** + * @dataProvider changesProvider + */ + public function testFilterChanges($changes, $userLang, $expectation) { + $iterator = $this->createMock(ILanguageIterator::class); + $iterator->expects($this->any()) + ->method('current') + ->willReturnOnConsecutiveCalls('es', $userLang, 'it', 'en'); + $iterator->expects($this->any()) + ->method('valid') + ->willReturn(true); + + $this->l10nFactory->expects($this->atMost(1)) + ->method('getLanguageIterator') + ->willReturn($iterator); + $result = $this->invokePrivate($this->admin, 'filterChanges', [$changes]); + $this->assertSame($expectation, $result); + } } diff --git a/core/css/whatsnew.scss b/core/css/whatsnew.scss index e13cdf8625..99d99ded69 100644 --- a/core/css/whatsnew.scss +++ b/core/css/whatsnew.scss @@ -9,6 +9,7 @@ bottom: 35px !important; left: 15px !important; width: 270px; + z-index: 700; } .whatsNewPopover p {