]> source.dussan.org Git - nextcloud-server.git/commitdiff
Fix l10n for SettingsManager by injecting the l10n factory 15671/head
authorMorris Jobke <hey@morrisjobke.de>
Tue, 21 May 2019 20:25:11 +0000 (22:25 +0200)
committerBackportbot <backportbot-noreply@rullzer.com>
Tue, 21 May 2019 22:52:06 +0000 (22:52 +0000)
Fixes #10832

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
lib/private/Server.php
lib/private/Settings/Manager.php
tests/lib/Settings/ManagerTest.php

index 03d115fe0228257ad27bc57fab1bf11b60900b4b..d191ffd39b2350ae8665b5637090e6adcade6461 100644 (file)
@@ -1094,7 +1094,7 @@ class Server extends ServerContainer implements IServerContainer {
                $this->registerService('SettingsManager', function (Server $c) {
                        $manager = new \OC\Settings\Manager(
                                $c->getLogger(),
-                               $c->getL10N('lib'),
+                               $c->getL10NFactory(),
                                $c->getURLGenerator(),
                                $c
                        );
index 7281d7bf72e3bb24ce6de42268809e57bdbd9a24..982c2dba2eed55c901c4e87ecc5038b575cfd396 100644 (file)
@@ -34,6 +34,7 @@ use OCP\IL10N;
 use OCP\ILogger;
 use OCP\IServerContainer;
 use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
 use OCP\Settings\ISettings;
 use OCP\Settings\IManager;
 use OCP\Settings\ISection;
@@ -46,6 +47,9 @@ class Manager implements IManager {
        /** @var IL10N */
        private $l;
 
+       /** @var IFactory */
+       private $l10nFactory;
+
        /** @var IURLGenerator */
        private $url;
 
@@ -54,12 +58,12 @@ class Manager implements IManager {
 
        public function __construct(
                ILogger $log,
-               IL10N $l10n,
+               IFactory $l10nFactory,
                IURLGenerator $url,
                IServerContainer $container
        ) {
                $this->log = $log;
-               $this->l = $l10n;
+               $this->l10nFactory = $l10nFactory;
                $this->url = $url;
                $this->container = $container;
        }
@@ -190,6 +194,10 @@ class Manager implements IManager {
         * @inheritdoc
         */
        public function getAdminSections(): array {
+               if ($this->l === null) {
+                       $this->l = $this->l10nFactory->get('lib');
+               }
+
                // built-in sections
                $sections = [
                        0 => [new Section('overview', $this->l->t('Overview'), 0, $this->url->imagePath('settings', 'admin.svg'))],
@@ -301,6 +309,10 @@ class Manager implements IManager {
         * @inheritdoc
         */
        public function getPersonalSections(): array {
+               if ($this->l === null) {
+                       $this->l = $this->l10nFactory->get('lib');
+               }
+
                $sections = [
                        0 => [new Section('personal-info', $this->l->t('Personal info'), 0, $this->url->imagePath('core', 'actions/info.svg'))],
                        5 => [new Section('security', $this->l->t('Security'), 0, $this->url->imagePath('settings', 'password.svg'))],
index b82fb5bc3caba9940f5e1c699499ce2c4b98a8cd..7372cae811bc7fdaf19ee967d11e747899419e1c 100644 (file)
@@ -33,6 +33,7 @@ use OCP\IL10N;
 use OCP\ILogger;
 use OCP\IServerContainer;
 use OCP\IURLGenerator;
+use OCP\L10N\IFactory;
 use Test\TestCase;
 
 class ManagerTest extends TestCase {
@@ -43,6 +44,8 @@ class ManagerTest extends TestCase {
        private $logger;
        /** @var IDBConnection|\PHPUnit_Framework_MockObject_MockObject */
        private $l10n;
+       /** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
+       private $l10nFactory;
        /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
        private $url;
        /** @var IServerContainer|\PHPUnit_Framework_MockObject_MockObject */
@@ -53,18 +56,24 @@ class ManagerTest extends TestCase {
 
                $this->logger = $this->createMock(ILogger::class);
                $this->l10n = $this->createMock(IL10N::class);
+               $this->l10nFactory = $this->createMock(IFactory::class);
                $this->url = $this->createMock(IURLGenerator::class);
                $this->container = $this->createMock(IServerContainer::class);
 
                $this->manager = new Manager(
                        $this->logger,
-                       $this->l10n,
+                       $this->l10nFactory,
                        $this->url,
                        $this->container
                );
        }
 
        public function testGetAdminSections() {
+               $this->l10nFactory
+                       ->expects($this->once())
+                       ->method('get')
+                       ->with('lib')
+                       ->willReturn($this->l10n);
                $this->l10n
                        ->expects($this->any())
                        ->method('t')
@@ -95,6 +104,11 @@ class ManagerTest extends TestCase {
        }
 
        public function testGetPersonalSections() {
+               $this->l10nFactory
+                       ->expects($this->once())
+                       ->method('get')
+                       ->with('lib')
+                       ->willReturn($this->l10n);
                $this->l10n
                        ->expects($this->any())
                        ->method('t')
@@ -119,6 +133,11 @@ class ManagerTest extends TestCase {
        }
 
        public function testGetAdminSectionsEmptySection() {
+               $this->l10nFactory
+                       ->expects($this->once())
+                       ->method('get')
+                       ->with('lib')
+                       ->willReturn($this->l10n);
                $this->l10n
                        ->expects($this->any())
                        ->method('t')
@@ -146,6 +165,11 @@ class ManagerTest extends TestCase {
        }
 
        public function testGetPersonalSectionsEmptySection() {
+               $this->l10nFactory
+                       ->expects($this->once())
+                       ->method('get')
+                       ->with('lib')
+                       ->willReturn($this->l10n);
                $this->l10n
                        ->expects($this->any())
                        ->method('t')
@@ -201,6 +225,11 @@ class ManagerTest extends TestCase {
        }
 
        public function testSameSectionAsPersonalAndAdmin() {
+               $this->l10nFactory
+                       ->expects($this->once())
+                       ->method('get')
+                       ->with('lib')
+                       ->willReturn($this->l10n);
                $this->l10n
                        ->expects($this->any())
                        ->method('t')