use OCP\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\Files\IRootFolder;
class ThemingDefaults extends \OC_Defaults {
private $l;
/** @var IURLGenerator */
private $urlGenerator;
+ /** @var IRootFolder */
+ private $rootFolder;
/** @var string */
private $name;
/** @var string */
public function __construct(IConfig $config,
IL10N $l,
IURLGenerator $urlGenerator,
- \OC_Defaults $defaults
+ \OC_Defaults $defaults,
+ IRootFolder $rootFolder
) {
parent::__construct();
$this->config = $config;
$this->l = $l;
$this->urlGenerator = $urlGenerator;
+ $this->rootFolder = $rootFolder;
$this->name = $defaults->getName();
$this->url = $defaults->getBaseUrl();
return $this->config->getAppValue('theming', 'color', $this->color);
}
+ /**
+ * Themed logo url
+ *
+ * @return string
+ */
+ public function getLogo() {
+ $logo = $this->config->getAppValue('theming', 'logoMime');
+ if(!$logo || !$this->rootFolder->nodeExists('/themedinstancelogo')) {
+ return $this->urlGenerator->imagePath('core','logo.svg');
+ } else {
+ return $this->urlGenerator->linkToRoute('theming.Theming.getLogo');
+ }
+ }
+
+ /**
+ * Themed background image url
+ *
+ * @return string
+ */
+ public function getBackground() {
+ $backgroundLogo = $this->config->getAppValue('theming', 'backgroundMime');
+ if(!$backgroundLogo || !$this->rootFolder->nodeExists('/themedbackgroundlogo')) {
+ return $this->urlGenerator->imagePath('core','background.jpg');
+ } else {
+ return $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground');
+ }
+ }
+
/**
* Increases the cache buster key
*/
use OCP\IConfig;
use OCP\IL10N;
use OCP\IURLGenerator;
+use OCP\Files\IRootFolder;
use Test\TestCase;
class ThemingDefaultsTest extends TestCase {
private $defaults;
/** @var ThemingDefaults */
private $template;
+ /** @var IRootFolder */
+ private $rootFolder;
public function setUp() {
+ parent::setUp();
$this->config = $this->getMock('\\OCP\\IConfig');
$this->l10n = $this->getMock('\\OCP\\IL10N');
$this->urlGenerator = $this->getMock('\\OCP\\IURLGenerator');
+ $this->rootFolder = $this->getMockBuilder('OCP\Files\IRootFolder')
+ ->disableOriginalConstructor()
+ ->getMock();
$this->defaults = $this->getMockBuilder('\\OC_Defaults')
->disableOriginalConstructor()
->getMock();
$this->config,
$this->l10n,
$this->urlGenerator,
- $this->defaults
+ $this->defaults,
+ $this->rootFolder
);
- return parent::setUp();
+ //return parent::setUp();
}
public function testGetNameWithDefault() {
$this->assertSame('', $this->template->undo('defaultitem'));
}
+
+ public function testGetBackgroundDefault() {
+ $this->config
+ ->expects($this->once())
+ ->method('getAppValue')
+ ->with('theming', 'backgroundMime')
+ ->willReturn('');
+ $expected = $this->urlGenerator->imagePath('core','background.jpg');
+ $this->assertEquals($expected, $this->template->getBackground());
+ }
+
+ public function testGetBackgroundCustom() {
+ $this->config
+ ->expects($this->once())
+ ->method('getAppValue')
+ ->with('theming', 'backgroundMime')
+ ->willReturn('image/svg+xml');
+ $expected = $this->urlGenerator->linkToRoute('theming.Theming.getLoginBackground');
+ $this->assertEquals($expected, $this->template->getBackground());
+ }
+
+ public function testGetLogoDefault() {
+ $this->config
+ ->expects($this->once())
+ ->method('getAppValue')
+ ->with('theming', 'logoMime')
+ ->willReturn('');
+ $expected = $this->urlGenerator->imagePath('core','logo.svg');
+ $this->assertEquals($expected, $this->template->getLogo());
+ }
+
+ public function testGetLogoCustom() {
+ $this->config
+ ->expects($this->once())
+ ->method('getAppValue')
+ ->with('theming', 'logoMime')
+ ->willReturn('image/svg+xml');
+ $expected = $this->urlGenerator->linkToRoute('theming.Theming.getLogo');
+ $this->assertEquals($expected, $this->template->getLogo());
+ }
}
$classExists = false;
}
- if ($classExists && $this->getConfig()->getSystemValue('installed', false) && $this->getAppManager()->isInstalled('theming')) {
+ if ($classExists && $c->getConfig()->getSystemValue('installed', false) && $c->getAppManager()->isInstalled('theming')) {
return new ThemingDefaults(
- $this->getConfig(),
- $this->getL10N('theming'),
- $this->getURLGenerator(),
- new \OC_Defaults()
+ $c->getConfig(),
+ $c->getL10N('theming'),
+ $c->getURLGenerator(),
+ new \OC_Defaults(),
+ $c->getRootFolder()
);
}
return new \OC_Defaults();