Skip to content

Commit

Permalink
Merge pull request #31766 from owncloud/stable10-fix-31741
Browse files Browse the repository at this point in the history
[Stable10] Fix broken web setup page
  • Loading branch information
DeepDiver1975 authored Jun 13, 2018
2 parents 0121a54 + 42d8b3e commit c0080d3
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 14 deletions.
26 changes: 23 additions & 3 deletions lib/private/legacy/defaults.php
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
<?php

use OCP\IConfig;

/**
* @author Björn Schießle <bjoern@schiessle.org>
* @author Jan-Christoph Borchardt <hey@jancborchardt.net>
Expand Down Expand Up @@ -49,7 +52,7 @@ class OC_Defaults {
private $defaultLogoClaim;
private $defaultMailHeaderColor;
/**
* @var \OCP\IConfig
* @var IConfig
*/
private $config;

Expand Down Expand Up @@ -304,14 +307,31 @@ public function getMailHeaderColor() {
* @return string
*/
public function getImprintUrl() {
return $this->config->getAppValue('core', 'legal.imprint_url', '');
try {
return $this->config->getAppValue('core', 'legal.imprint_url', '');
} catch (\Exception $e) {
return '';
}
}

/**
* Returns URL to Privacy Policy
* @return string
*/
public function getPrivacyPolicyUrl() {
return $this->config->getAppValue('core', 'legal.privacy_policy_url', '');
try {
return $this->config->getAppValue('core', 'legal.privacy_policy_url', '');
} catch (\Exception $e) {
return '';
}
}

/**
* @internal Used for unit tests
*
* @param IConfig $config
*/
public function setConfig(IConfig $config) {
$this->config = $config;
}
}
44 changes: 33 additions & 11 deletions tests/lib/legacy/DefaultsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,49 @@ class DefaultsTest extends TestCase {
*/
protected $defaults;

protected function setUp() {
$this->defaults = $this->getMockBuilder(OC_Defaults::class)
->setMethods(['themeExist', 'getImprintUrl', 'getPrivacyPolicyUrl'])
->getMock();
return parent::setUp();
}

public function testGetShortFooterFromCore() {
$imprintUrl = 'http://example.org/imprint';
$privacyPolicyUrl = 'http://example.org/privacy';
$this->defaults->expects($this->any())
$defaults = $this->getDefaultsMock(
['themeExist', 'getImprintUrl', 'getPrivacyPolicyUrl']
);
$defaults->expects($this->any())
->method('themeExist')
->willReturn(false);
$this->defaults->expects($this->exactly(2))
$defaults->expects($this->exactly(2))
->method('getImprintUrl')
->willReturn($imprintUrl);
$this->defaults->expects($this->exactly(2))
$defaults->expects($this->exactly(2))
->method('getPrivacyPolicyUrl')
->willReturn($privacyPolicyUrl);
$footer = $this->defaults->getShortFooter();
$footer = $defaults->getShortFooter();
$this->assertContains($privacyPolicyUrl, $footer);
$this->assertContains($imprintUrl, $footer);
}

public function testGetImprintWhenNotInstalled() {
$config = $this->getMockBuilder(\OCP\IConfig::class)
->disableOriginalConstructor()
->getMock();
$config->expects($this->any())
->method('getAppValue')
->willThrowException(new \Exception());
$defaults = $this->getDefaultsMock(
['themeExist']
);
$defaults->expects($this->any())
->method('themeExist')
->willReturn(false);
$defaults->setConfig($config);

$footer = $defaults->getShortFooter();
$this->assertNotContains('Privacy Policy', $footer);
$this->assertNotContains('Imprint', $footer);
}

protected function getDefaultsMock($mockedMethods) {
return $this->getMockBuilder(OC_Defaults::class)
->setMethods($mockedMethods)
->getMock();
}
}

0 comments on commit c0080d3

Please sign in to comment.