summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Settings/Manager.php9
-rw-r--r--tests/lib/Settings/ManagerTest.php42
2 files changed, 37 insertions, 14 deletions
diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php
index 84fbf9426b0..05a286e4758 100644
--- a/lib/private/Settings/Manager.php
+++ b/lib/private/Settings/Manager.php
@@ -126,8 +126,13 @@ class Manager implements IManager {
}
foreach (array_unique($this->sectionClasses[$type]) as $index => $class) {
- /** @var IIconSection $section */
- $section = \OC::$server->get($class);
+ try {
+ /** @var IIconSection $section */
+ $section = $this->container->get($class);
+ } catch (QueryException $e) {
+ $this->log->info($e->getMessage(), ['exception' => $e]);
+ continue;
+ }
$sectionID = $section->getID();
diff --git a/tests/lib/Settings/ManagerTest.php b/tests/lib/Settings/ManagerTest.php
index 96711e75cab..29ae33c3c93 100644
--- a/tests/lib/Settings/ManagerTest.php
+++ b/tests/lib/Settings/ManagerTest.php
@@ -21,7 +21,7 @@
*
*/
-namespace OCA\Settings\Tests\AppInfo;
+namespace OC\Settings\Tests\AppInfo;
use OC\Settings\AuthorizedGroupMapper;
use OC\Settings\Manager;
@@ -82,16 +82,26 @@ class ManagerTest extends TestCase {
public function testGetAdminSections() {
$this->manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class);
+ $section = \OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class);
+ $this->container->method('get')
+ ->with(\OCA\WorkflowEngine\Settings\Section::class)
+ ->willReturn($section);
+
$this->assertEquals([
- 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)],
+ 55 => [$section],
], $this->manager->getAdminSections());
}
public function testGetPersonalSections() {
$this->manager->registerSection('personal', \OCA\WorkflowEngine\Settings\Section::class);
+ $section = \OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class);
+ $this->container->method('get')
+ ->with(\OCA\WorkflowEngine\Settings\Section::class)
+ ->willReturn($section);
+
$this->assertEquals([
- 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)],
+ 55 => [$section],
], $this->manager->getPersonalSections());
}
@@ -181,14 +191,16 @@ class ManagerTest extends TestCase {
$this->manager->registerSetting('personal', 'section1');
$this->manager->registerSetting('personal', 'section2');
- $this->container->expects($this->at(0))
+ $this->container->expects($this->exactly(2))
->method('get')
- ->with('section1')
- ->willReturn($section);
- $this->container->expects($this->at(1))
- ->method('get')
- ->with('section2')
- ->willReturn($section2);
+ ->withConsecutive(
+ ['section1'],
+ ['section2']
+ )
+ ->willReturnMap([
+ ['section1', $section],
+ ['section2', $section2],
+ ]);
$settings = $this->manager->getPersonalSettings('security');
@@ -212,12 +224,18 @@ class ManagerTest extends TestCase {
$this->manager->registerSection('personal', \OCA\WorkflowEngine\Settings\Section::class);
$this->manager->registerSection('admin', \OCA\WorkflowEngine\Settings\Section::class);
+
+ $section = \OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class);
+ $this->container->method('get')
+ ->with(\OCA\WorkflowEngine\Settings\Section::class)
+ ->willReturn($section);
+
$this->assertEquals([
- 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)],
+ 55 => [$section],
], $this->manager->getPersonalSections());
$this->assertEquals([
- 55 => [\OC::$server->query(\OCA\WorkflowEngine\Settings\Section::class)],
+ 55 => [$section],
], $this->manager->getAdminSections());
}
}