Merge pull request #10715 from nextcloud/fix/noid/filterwhatsnew
fix wrong return value of filtered whats new info
This commit is contained in:
commit
bcc1a53f05
3 changed files with 79 additions and 2 deletions
|
@ -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());
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
bottom: 35px !important;
|
||||
left: 15px !important;
|
||||
width: 270px;
|
||||
z-index: 700;
|
||||
}
|
||||
|
||||
.whatsNewPopover p {
|
||||
|
|
Loading…
Reference in a new issue