summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-12-02 14:35:38 +0100
committerMorris Jobke <hey@morrisjobke.de>2015-12-02 14:35:38 +0100
commit0a6db3ada6b35b59db86d1950681724fdc627b5c (patch)
tree035e936bebd53a4cce4a7879545d150b6da06826
parent8d218bf3ef842d76c2b97a175b28e13054497952 (diff)
downloadnextcloud-server-0a6db3ada6b35b59db86d1950681724fdc627b5c.tar.gz
nextcloud-server-0a6db3ada6b35b59db86d1950681724fdc627b5c.zip
Remove OC_Config from app management template
* add unit test for this case
-rw-r--r--settings/controller/appsettingscontroller.php1
-rw-r--r--settings/templates/apps.php2
-rw-r--r--tests/settings/controller/AppSettingsControllerTest.php42
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(
</li>
{{/each}}
-<?php if(OC_Config::getValue('appstoreenabled', true) === true): ?>
+<?php if($_['appstoreEnabled']): ?>
<li>
<a class="app-external" target="_blank" href="https://owncloud.org/dev"><?php p($l->t('Developer documentation'));?> ↗</a>
</li>
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());
+ }
}