Remove OC_Config from app management template

* add unit test for this case
This commit is contained in:
Morris Jobke 2015-12-02 14:35:38 +01:00
parent 8d218bf3ef
commit 0a6db3ada6
3 changed files with 40 additions and 5 deletions

View File

@ -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');

View File

@ -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>

View File

@ -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());
}
}