From 0a6db3ada6b35b59db86d1950681724fdc627b5c Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Wed, 2 Dec 2015 14:35:38 +0100 Subject: Remove OC_Config from app management template * add unit test for this case --- settings/controller/appsettingscontroller.php | 1 + settings/templates/apps.php | 2 +- .../controller/AppSettingsControllerTest.php | 42 +++++++++++++++++++--- 3 files changed, 40 insertions(+), 5 deletions(-) diff --git a/settings/controller/appsettingscontroller.php b/settings/controller/appsettingscontroller.php index bde00df062f..d0e465bfa9c 100644 --- a/settings/controller/appsettingscontroller.php +++ b/settings/controller/appsettingscontroller.php @@ -132,6 +132,7 @@ class AppSettingsController extends Controller { $params = []; $params['experimentalEnabled'] = $this->config->getSystemValue('appstore.experimental.enabled', false); $params['category'] = $category; + $params['appstoreEnabled'] = $this->config->getSystemValue('appstoreenabled', true) === true; $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 3168fd8beeb..7213d552c08 100644 --- a/settings/templates/apps.php +++ b/settings/templates/apps.php @@ -29,7 +29,7 @@ script( {{/each}} - +
  • t('Developer documentation'));?> ↗
  • diff --git a/tests/settings/controller/AppSettingsControllerTest.php b/tests/settings/controller/AppSettingsControllerTest.php index 09595d05661..dba5728ca4b 100644 --- a/tests/settings/controller/AppSettingsControllerTest.php +++ b/tests/settings/controller/AppSettingsControllerTest.php @@ -220,9 +220,14 @@ class AppSettingsControllerTest extends TestCase { public function testViewApps() { $this->config - ->expects($this->once()) + ->expects($this->at(0)) ->method('getSystemValue') ->with('appstore.experimental.enabled', false); + $this->config + ->expects($this->at(1)) + ->method('getSystemValue') + ->with('appstoreenabled', true) + ->will($this->returnValue(true)); $this->navigationManager ->expects($this->once()) ->method('setActiveEntry') @@ -231,7 +236,7 @@ class AppSettingsControllerTest extends TestCase { $policy = new ContentSecurityPolicy(); $policy->addAllowedImageDomain('https://apps.owncloud.com'); - $expected = new TemplateResponse('settings', 'apps', ['experimentalEnabled' => false, 'category' => 'enabled'], 'user'); + $expected = new TemplateResponse('settings', 'apps', ['experimentalEnabled' => false, 'category' => 'enabled', 'appstoreEnabled' => true], 'user'); $expected->setContentSecurityPolicy($policy); $this->assertEquals($expected, $this->appSettingsController->viewApps()); @@ -239,9 +244,14 @@ class AppSettingsControllerTest extends TestCase { public function testViewAppsNotEnabled() { $this->config - ->expects($this->once()) + ->expects($this->at(0)) ->method('getSystemValue') ->with('appstore.experimental.enabled', false); + $this->config + ->expects($this->at(1)) + ->method('getSystemValue') + ->with('appstoreenabled', true) + ->will($this->returnValue(true)); $this->navigationManager ->expects($this->once()) ->method('setActiveEntry') @@ -250,9 +260,33 @@ class AppSettingsControllerTest extends TestCase { $policy = new ContentSecurityPolicy(); $policy->addAllowedImageDomain('https://apps.owncloud.com'); - $expected = new TemplateResponse('settings', 'apps', ['experimentalEnabled' => false, 'category' => 'disabled'], 'user'); + $expected = new TemplateResponse('settings', 'apps', ['experimentalEnabled' => false, 'category' => 'disabled', 'appstoreEnabled' => true], 'user'); $expected->setContentSecurityPolicy($policy); $this->assertEquals($expected, $this->appSettingsController->viewApps('disabled')); } + + public function testViewAppsAppstoreNotEnabled() { + $this->config + ->expects($this->at(0)) + ->method('getSystemValue') + ->with('appstore.experimental.enabled', false); + $this->config + ->expects($this->at(1)) + ->method('getSystemValue') + ->with('appstoreenabled', true) + ->will($this->returnValue(false)); + $this->navigationManager + ->expects($this->once()) + ->method('setActiveEntry') + ->with('core_apps'); + + $policy = new ContentSecurityPolicy(); + $policy->addAllowedImageDomain('https://apps.owncloud.com'); + + $expected = new TemplateResponse('settings', 'apps', ['experimentalEnabled' => false, 'category' => 'enabled', 'appstoreEnabled' => false], 'user'); + $expected->setContentSecurityPolicy($policy); + + $this->assertEquals($expected, $this->appSettingsController->viewApps()); + } } -- cgit v1.2.3