diff options
Diffstat (limited to 'apps/theming')
-rw-r--r-- | apps/theming/lib/ThemingDefaults.php | 24 | ||||
-rw-r--r-- | apps/theming/tests/ThemingDefaultsTest.php | 7 |
2 files changed, 23 insertions, 8 deletions
diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 0a9d5a6cc1f..5dd22fb6326 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -23,6 +23,8 @@ namespace OCA\Theming; +use OCP\App\AppPathNotFoundException; +use OCP\App\IAppManager; use OCP\Files\IAppData; use OCP\ICacheFactory; use OCP\IConfig; @@ -41,6 +43,10 @@ class ThemingDefaults extends \OC_Defaults { private $appData; /** @var ICacheFactory */ private $cacheFactory; + /** @var Util */ + private $util; + /** @var IAppManager */ + private $appManager; /** @var string */ private $name; /** @var string */ @@ -49,8 +55,7 @@ class ThemingDefaults extends \OC_Defaults { private $slogan; /** @var string */ private $color; - /** @var Util */ - private $util; + /** @var string */ private $iTunesAppId; /** @var string */ @@ -68,13 +73,15 @@ class ThemingDefaults extends \OC_Defaults { * @param IAppData $appData * @param ICacheFactory $cacheFactory * @param Util $util + * @param IAppManager $appManager */ public function __construct(IConfig $config, IL10N $l, IURLGenerator $urlGenerator, IAppData $appData, ICacheFactory $cacheFactory, - Util $util + Util $util, + IAppManager $appManager ) { parent::__construct(); $this->config = $config; @@ -83,6 +90,7 @@ class ThemingDefaults extends \OC_Defaults { $this->appData = $appData; $this->cacheFactory = $cacheFactory; $this->util = $util; + $this->appManager = $appManager; $this->name = parent::getName(); $this->url = parent::getBaseUrl(); @@ -269,10 +277,12 @@ class ThemingDefaults extends \OC_Defaults { return $this->urlGenerator->linkToRoute('theming.Icon.getTouchIcon', ['app' => $app]) . '?v=' . $cacheBusterValue; } if ($image === 'manifest.json') { - $appPath = \OC_App::getAppPath($app); - if ($appPath && file_exists($appPath . '/img/manifest.json')) { - return false; - } + try { + $appPath = $this->appManager->getAppPath($app); + if (file_exists($appPath . '/img/manifest.json')) { + return false; + } + } catch (AppPathNotFoundException $e) {} return $this->urlGenerator->linkToRoute('theming.Theming.getManifest') . '?v=' . $cacheBusterValue; } return false; diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index 48099e8be0f..b1d86bff432 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -24,6 +24,7 @@ namespace OCA\Theming\Tests; use OCA\Theming\ThemingDefaults; +use OCP\App\IAppManager; use OCP\Files\IAppData; use OCA\Theming\Util; use OCP\Files\NotFoundException; @@ -55,6 +56,8 @@ class ThemingDefaultsTest extends TestCase { private $util; /** @var ICache|\PHPUnit_Framework_MockObject_MockObject */ private $cache; + /** @var IAppManager|\PHPUnit_Framework_MockObject_MockObject */ + private $appManager; public function setUp() { parent::setUp(); @@ -65,6 +68,7 @@ class ThemingDefaultsTest extends TestCase { $this->cacheFactory = $this->createMock(ICacheFactory::class); $this->cache = $this->createMock(ICache::class); $this->util = $this->createMock(Util::class); + $this->appManager = $this->createMock(IAppManager::class); $this->defaults = new \OC_Defaults(); $this->cacheFactory ->expects($this->any()) @@ -77,7 +81,8 @@ class ThemingDefaultsTest extends TestCase { $this->urlGenerator, $this->appData, $this->cacheFactory, - $this->util + $this->util, + $this->appManager ); } |