From 6645c014e9412c563c0baed7f3c20acaa639235d Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 16 Aug 2018 12:50:44 +0200 Subject: fix wrong return value of filtered whats new info Signed-off-by: Arthur Schiwon --- .../tests/Settings/AdminTest.php | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'apps/updatenotification/tests') diff --git a/apps/updatenotification/tests/Settings/AdminTest.php b/apps/updatenotification/tests/Settings/AdminTest.php index d0d53226490..d1f44367a1c 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); + } } -- cgit v1.2.3