diff options
author | Morris Jobke <hey@morrisjobke.de> | 2018-02-08 23:18:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-08 23:18:00 +0100 |
commit | ba9711f5d3c74f9ab46ac15cd64a4ce1e8059773 (patch) | |
tree | b43524b26ca150cb99691673374ea99b34403ae3 | |
parent | b63ea2c77139a3af6d5b891f1674a24ce9d3d783 (diff) | |
parent | f07d3a3b5507c99639158fbea4583a7bd5885100 (diff) | |
download | nextcloud-server-ba9711f5d3c74f9ab46ac15cd64a4ce1e8059773.tar.gz nextcloud-server-ba9711f5d3c74f9ab46ac15cd64a4ce1e8059773.zip |
Merge pull request #8263 from nextcloud/fix_dev_man_link
Link to NC 14 dev manual
-rw-r--r-- | settings/Controller/AppSettingsController.php | 11 | ||||
-rw-r--r-- | settings/templates/apps.php | 4 | ||||
-rw-r--r-- | tests/Settings/Controller/AppSettingsControllerTest.php | 25 |
3 files changed, 34 insertions, 6 deletions
diff --git a/settings/Controller/AppSettingsController.php b/settings/Controller/AppSettingsController.php index cd34edf567c..325b6a0daf0 100644 --- a/settings/Controller/AppSettingsController.php +++ b/settings/Controller/AppSettingsController.php @@ -47,6 +47,7 @@ use OCP\INavigationManager; use OCP\IRequest; use OCP\IL10N; use OCP\IConfig; +use OCP\IURLGenerator; use OCP\L10N\IFactory; /** @@ -77,6 +78,8 @@ class AppSettingsController extends Controller { private $bundleFetcher; /** @var Installer */ private $installer; + /** @var IURLGenerator */ + private $urlGenerator; /** * @param string $appName @@ -90,8 +93,9 @@ class AppSettingsController extends Controller { * @param IFactory $l10nFactory * @param BundleFetcher $bundleFetcher * @param Installer $installer + * @param IURLGenerator $urlGenerator */ - public function __construct($appName, + public function __construct(string $appName, IRequest $request, IL10N $l10n, IConfig $config, @@ -101,7 +105,8 @@ class AppSettingsController extends Controller { AppFetcher $appFetcher, IFactory $l10nFactory, BundleFetcher $bundleFetcher, - Installer $installer) { + Installer $installer, + IURLGenerator $urlGenerator) { parent::__construct($appName, $request); $this->l10n = $l10n; $this->config = $config; @@ -112,6 +117,7 @@ class AppSettingsController extends Controller { $this->l10nFactory = $l10nFactory; $this->bundleFetcher = $bundleFetcher; $this->installer = $installer; + $this->urlGenerator = $urlGenerator; } /** @@ -128,6 +134,7 @@ class AppSettingsController extends Controller { $params = []; $params['category'] = $category; $params['appstoreEnabled'] = $this->config->getSystemValue('appstoreenabled', true) === true; + $params['urlGenerator'] = $this->urlGenerator; $this->navigationManager->setActiveEntry('core_apps'); $templateResponse = new TemplateResponse($this->appName, 'apps', $params, 'user'); diff --git a/settings/templates/apps.php b/settings/templates/apps.php index d7b232b915e..9e2f9cf2df4 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -14,6 +14,8 @@ script( ] ); /** @var array $_ */ +/** @var \OCP\IURLGenerator $urlGenerator */ +$urlGenerator = $_['urlGenerator']; ?> <script id="categories-template" type="text/x-handlebars-template"> {{#each this}} @@ -29,7 +31,7 @@ script( <?php if($_['appstoreEnabled']): ?> <li> - <a class="app-external icon-info" target="_blank" rel="noreferrer noopener" href="https://docs.nextcloud.org/server/12/developer_manual/"><?php p($l->t('Developer documentation'));?> ↗</a> + <a class="app-external icon-info" target="_blank" rel="noreferrer noopener" href="<?php p($urlGenerator->linkToDocs('developer-manual')); ?>"><?php p($l->t('Developer documentation'));?> ↗</a> </li> <?php endif; ?> </script> diff --git a/tests/Settings/Controller/AppSettingsControllerTest.php b/tests/Settings/Controller/AppSettingsControllerTest.php index 6631873d8ad..2f916b89707 100644 --- a/tests/Settings/Controller/AppSettingsControllerTest.php +++ b/tests/Settings/Controller/AppSettingsControllerTest.php @@ -30,6 +30,7 @@ use OC\Settings\Controller\AppSettingsController; use OCP\AppFramework\Http\ContentSecurityPolicy; use OCP\AppFramework\Http\JSONResponse; use OCP\AppFramework\Http\TemplateResponse; +use OCP\IURLGenerator; use OCP\L10N\IFactory; use Test\TestCase; use OCP\IRequest; @@ -66,6 +67,8 @@ class AppSettingsControllerTest extends TestCase { private $bundleFetcher; /** @var Installer|\PHPUnit_Framework_MockObject_MockObject */ private $installer; + /** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */ + private $urlGenerator; public function setUp() { parent::setUp(); @@ -83,6 +86,7 @@ class AppSettingsControllerTest extends TestCase { $this->l10nFactory = $this->createMock(IFactory::class); $this->bundleFetcher = $this->createMock(BundleFetcher::class); $this->installer = $this->createMock(Installer::class); + $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->appSettingsController = new AppSettingsController( 'settings', @@ -95,7 +99,8 @@ class AppSettingsControllerTest extends TestCase { $this->appFetcher, $this->l10nFactory, $this->bundleFetcher, - $this->installer + $this->installer, + $this->urlGenerator ); } @@ -204,7 +209,14 @@ class AppSettingsControllerTest extends TestCase { $policy = new ContentSecurityPolicy(); $policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com'); - $expected = new TemplateResponse('settings', 'apps', ['category' => 'installed', 'appstoreEnabled' => true], 'user'); + $expected = new TemplateResponse('settings', + 'apps', + [ + 'category' => 'installed', + 'appstoreEnabled' => true, + 'urlGenerator' => $this->urlGenerator, + ], + 'user'); $expected->setContentSecurityPolicy($policy); $this->assertEquals($expected, $this->appSettingsController->viewApps()); @@ -224,7 +236,14 @@ class AppSettingsControllerTest extends TestCase { $policy = new ContentSecurityPolicy(); $policy->addAllowedImageDomain('https://usercontent.apps.nextcloud.com'); - $expected = new TemplateResponse('settings', 'apps', ['category' => 'installed', 'appstoreEnabled' => false], 'user'); + $expected = new TemplateResponse('settings', + 'apps', + [ + 'category' => 'installed', + 'appstoreEnabled' => false, + 'urlGenerator' => $this->urlGenerator, + ], + 'user'); $expected->setContentSecurityPolicy($policy); $this->assertEquals($expected, $this->appSettingsController->viewApps()); |