Merge pull request #5782 from nextcloud/backport-5781-stable12

[stable12] Allow overwriting of IOS theming values
This commit is contained in:
Morris Jobke 2017-07-19 12:37:29 +02:00 committed by GitHub
commit 3e4685b851
2 changed files with 91 additions and 1 deletions

View File

@ -51,6 +51,12 @@ class ThemingDefaults extends \OC_Defaults {
private $color;
/** @var Util */
private $util;
/** @var string */
private $iTunesAppId;
/** @var string */
private $iOSClientUrl;
/** @var string */
private $AndroidClientUrl;
/**
* ThemingDefaults constructor.
@ -82,6 +88,9 @@ class ThemingDefaults extends \OC_Defaults {
$this->url = parent::getBaseUrl();
$this->slogan = parent::getSlogan();
$this->color = parent::getColorPrimary();
$this->iTunesAppId = parent::getiTunesAppId();
$this->iOSClientUrl = parent::getiOSClientUrl();
$this->AndroidClientUrl = parent::getAndroidClientUrl();
}
public function getName() {
@ -180,6 +189,27 @@ class ThemingDefaults extends \OC_Defaults {
return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground') . '?v=' . $cacheBusterCounter;
}
/**
* @return string
*/
public function getiTunesAppId() {
return $this->config->getAppValue('theming', 'iTunesAppId', $this->iTunesAppId);
}
/**
* @return string
*/
public function getiOSClientUrl() {
return $this->config->getAppValue('theming', 'iOSClientUrl', $this->iOSClientUrl);
}
/**
* @return string
*/
public function getAndroidClientUrl() {
return $this->config->getAppValue('theming', 'AndroidClientUrl', $this->AndroidClientUrl);
}
/**
* @return array scss variables to overwrite
@ -290,5 +320,4 @@ class ThemingDefaults extends \OC_Defaults {
return $returnValue;
}
}

View File

@ -543,4 +543,65 @@ class ThemingDefaultsTest extends TestCase {
];
$this->assertEquals($expected, $this->template->getScssVariables());
}
public function testGetDefaultAndroidURL() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->willReturn('https://play.google.com/store/apps/details?id=com.nextcloud.client');
$this->assertEquals('https://play.google.com/store/apps/details?id=com.nextcloud.client', $this->template->getAndroidClientUrl());
}
public function testGetCustomAndroidURL() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'AndroidClientUrl', 'https://play.google.com/store/apps/details?id=com.nextcloud.client')
->willReturn('https://play.google.com/store/apps/details?id=com.mycloud.client');
$this->assertEquals('https://play.google.com/store/apps/details?id=com.mycloud.client', $this->template->getAndroidClientUrl());
}
public function testGetDefaultiOSURL() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'iOSClientUrl', 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->willReturn('https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8');
$this->assertEquals('https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8', $this->template->getiOSClientUrl());
}
public function testGetCustomiOSURL() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'iOSClientUrl', 'https://itunes.apple.com/us/app/nextcloud/id1125420102?mt=8')
->willReturn('https://itunes.apple.com/us/app/nextcloud/id1234567890?mt=8');
$this->assertEquals('https://itunes.apple.com/us/app/nextcloud/id1234567890?mt=8', $this->template->getiOSClientUrl());
}
public function testGetDefaultiTunesAppId() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'iTunesAppId', '1125420102')
->willReturn('1125420102');
$this->assertEquals('1125420102', $this->template->getiTunesAppId());
}
public function testGetCustomiTunesAppId() {
$this->config
->expects($this->once())
->method('getAppValue')
->with('theming', 'iTunesAppId', '1125420102')
->willReturn('1234567890');
$this->assertEquals('1234567890', $this->template->getiTunesAppId());
}
}