Merge pull request #10715 from nextcloud/fix/noid/filterwhatsnew

fix wrong return value of filtered whats new info
This commit is contained in:
Roeland Jago Douma 2018-08-16 14:17:48 +02:00 committed by GitHub
commit bcc1a53f05
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 79 additions and 2 deletions

View file

@ -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());

View file

@ -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);
}
} }

View file

@ -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 {