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, '');
|
return new TemplateResponse('updatenotification', 'admin', $params, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function filterChanges(array $changes) {
|
protected function filterChanges(array $changes): array {
|
||||||
$filtered = [];
|
$filtered = [];
|
||||||
if(isset($changes['changelogURL'])) {
|
if(isset($changes['changelogURL'])) {
|
||||||
$filtered['changelogURL'] = $changes['changelogURL'];
|
$filtered['changelogURL'] = $changes['changelogURL'];
|
||||||
|
@ -127,7 +127,8 @@ class Admin implements ISettings {
|
||||||
do {
|
do {
|
||||||
$lang = $iterator->current();
|
$lang = $iterator->current();
|
||||||
if(isset($changes['whatsNew'][$lang])) {
|
if(isset($changes['whatsNew'][$lang])) {
|
||||||
return $filtered['whatsNew'][$lang];
|
$filtered['whatsNew'] = $changes['whatsNew'][$lang];
|
||||||
|
return $filtered;
|
||||||
}
|
}
|
||||||
$iterator->next();
|
$iterator->next();
|
||||||
} while($lang !== 'en' && $iterator->valid());
|
} while($lang !== 'en' && $iterator->valid());
|
||||||
|
|
|
@ -34,6 +34,7 @@ use OCP\IGroup;
|
||||||
use OCP\IGroupManager;
|
use OCP\IGroupManager;
|
||||||
use OCP\IUserSession;
|
use OCP\IUserSession;
|
||||||
use OCP\L10N\IFactory;
|
use OCP\L10N\IFactory;
|
||||||
|
use OCP\L10N\ILanguageIterator;
|
||||||
use OCP\Util;
|
use OCP\Util;
|
||||||
use Test\TestCase;
|
use Test\TestCase;
|
||||||
|
|
||||||
|
@ -153,4 +154,78 @@ class AdminTest extends TestCase {
|
||||||
public function testGetPriority() {
|
public function testGetPriority() {
|
||||||
$this->assertSame(11, $this->admin->getPriority());
|
$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;
|
bottom: 35px !important;
|
||||||
left: 15px !important;
|
left: 15px !important;
|
||||||
width: 270px;
|
width: 270px;
|
||||||
|
z-index: 700;
|
||||||
}
|
}
|
||||||
|
|
||||||
.whatsNewPopover p {
|
.whatsNewPopover p {
|
||||||
|
|
Loading…
Reference in a new issue