Browse Source

fix wrong return value of filtered whats new info

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
tags/v14.0.0RC1
Arthur Schiwon 5 years ago
parent
commit
6645c014e9
No account linked to committer's email address

+ 2
- 1
apps/updatenotification/lib/Settings/Admin.php View File

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

+ 75
- 0
apps/updatenotification/tests/Settings/AdminTest.php View File

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

Loading…
Cancel
Save