From 389c2095a6130f16f02ca72e09712596e0e48551 Mon Sep 17 00:00:00 2001
From: Morris Jobke <hey@morrisjobke.de>
Date: Wed, 13 Mar 2019 00:42:39 +0100
Subject: [PATCH] Use dependency injection for app manager

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
---
 apps/dav/lib/Connector/Sabre/FilesReportPlugin.php  | 13 +++++++++++--
 apps/dav/lib/Connector/Sabre/ServerFactory.php      |  3 ++-
 apps/dav/lib/Server.php                             |  3 ++-
 .../unit/Connector/Sabre/FilesReportPluginTest.php  | 11 ++++++++++-
 4 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
index f4e5de0ea43..6451030c324 100644
--- a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php
@@ -25,6 +25,7 @@
 namespace OCA\DAV\Connector\Sabre;
 
 use OC\Files\View;
+use OCP\App\IAppManager;
 use Sabre\DAV\Exception\PreconditionFailed;
 use Sabre\DAV\Exception\BadRequest;
 use Sabre\DAV\ServerPlugin;
@@ -97,6 +98,11 @@ class FilesReportPlugin extends ServerPlugin {
 	 */
 	private $userFolder;
 
+	/**
+	 * @var IAppManager
+	 */
+	private $appManager;
+
 	/**
 	 * @param Tree $tree
 	 * @param View $view
@@ -106,6 +112,7 @@ class FilesReportPlugin extends ServerPlugin {
 	 * @param IUserSession $userSession
 	 * @param IGroupManager $groupManager
 	 * @param Folder $userFolder
+	 * @param IAppManager $appManager
 	 */
 	public function __construct(Tree $tree,
 								View $view,
@@ -114,7 +121,8 @@ class FilesReportPlugin extends ServerPlugin {
 								ITagManager $fileTagger,
 								IUserSession $userSession,
 								IGroupManager $groupManager,
-								Folder $userFolder
+								Folder $userFolder,
+								IAppManager $appManager
 	) {
 		$this->tree = $tree;
 		$this->fileView = $view;
@@ -124,6 +132,7 @@ class FilesReportPlugin extends ServerPlugin {
 		$this->userSession = $userSession;
 		$this->groupManager = $groupManager;
 		$this->userFolder = $userFolder;
+		$this->appManager = $appManager;
 	}
 
 	/**
@@ -349,7 +358,7 @@ class FilesReportPlugin extends ServerPlugin {
 	 * @return array
 	 */
 	private function getCirclesFileIds(array $circlesIds) {
-		if (!\OC::$server->getAppManager()->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) {
+		if (!$this->appManager->isEnabledForUser('circles') || !class_exists('\OCA\Circles\ShareByCircleProvider')) {
 			return array();
 		}
 		return \OCA\Circles\Api\v1\Circles::getFilesForCircles($circlesIds);
diff --git a/apps/dav/lib/Connector/Sabre/ServerFactory.php b/apps/dav/lib/Connector/Sabre/ServerFactory.php
index 12b00be43f5..1821638189d 100644
--- a/apps/dav/lib/Connector/Sabre/ServerFactory.php
+++ b/apps/dav/lib/Connector/Sabre/ServerFactory.php
@@ -180,7 +180,8 @@ class ServerFactory {
 					\OC::$server->getTagManager(),
 					$this->userSession,
 					\OC::$server->getGroupManager(),
-					$userFolder
+					$userFolder,
+					\OC::$server->getAppManager()
 				));
 				// custom properties plugin must be the last one
 				$server->addPlugin(
diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php
index 84a914dbe9a..7eb68ce5874 100644
--- a/apps/dav/lib/Server.php
+++ b/apps/dav/lib/Server.php
@@ -271,7 +271,8 @@ class Server {
 						\OC::$server->getTagManager(),
 						$userSession,
 						\OC::$server->getGroupManager(),
-						$userFolder
+						$userFolder,
+						\OC::$server->getAppManager()
 					));
 					$lazySearchBackend->setBackend(new \OCA\DAV\Files\FileSearchBackend(
 						$this->server->tree,
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
index b6290719e7d..09f9ea4dbfa 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
@@ -28,6 +28,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre;
 
 use OCA\DAV\Connector\Sabre\Directory;
 use OCA\DAV\Connector\Sabre\FilesReportPlugin as FilesReportPluginImplementation;
+use OCP\App\IAppManager;
 use OCP\Files\File;
 use OCP\IConfig;
 use OCP\IPreview;
@@ -81,6 +82,9 @@ class FilesReportPluginTest extends \Test\TestCase {
 	/** @var IPreview|\PHPUnit_Framework_MockObject_MockObject * */
 	private $previewManager;
 
+	/** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject * */
+	private $appManager;
+
 	public function setUp() {
 		parent::setUp();
 		$this->tree = $this->getMockBuilder(Tree::class)
@@ -112,6 +116,10 @@ class FilesReportPluginTest extends \Test\TestCase {
 			->disableOriginalConstructor()
 			->getMock();
 
+		$this->appManager = $this->getMockBuilder(IAppManager::class)
+			->disableOriginalConstructor()
+			->getMock();
+
 		$this->tagManager = $this->createMock(ISystemTagManager::class);
 		$this->tagMapper = $this->createMock(ISystemTagObjectMapper::class);
 		$this->userSession = $this->createMock(IUserSession::class);
@@ -140,7 +148,8 @@ class FilesReportPluginTest extends \Test\TestCase {
 			$privateTagManager,
 			$this->userSession,
 			$this->groupManager,
-			$this->userFolder
+			$this->userFolder,
+			$this->appManager
 		);
 	}
 
-- 
GitLab