Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>pull/42287/head
parent
2e5d435df7
commit
ae12a73c85
@ -0,0 +1,143 @@ |
||||
<?php |
||||
/** |
||||
* @copyright Copyright (c) 2022 John Molakvoæ <skjnldsv@protonmail.com> |
||||
* |
||||
* @author John Molakvoæ <skjnldsv@protonmail.com> |
||||
* |
||||
* @license GNU AGPL version 3 or any later version |
||||
* |
||||
* This program is free software: you can redistribute it and/or modify |
||||
* it under the terms of the GNU Affero General Public License as |
||||
* published by the Free Software Foundation, either version 3 of the |
||||
* License, or (at your option) any later version. |
||||
* |
||||
* This program is distributed in the hope that it will be useful, |
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
* GNU Affero General Public License for more details. |
||||
* |
||||
* You should have received a copy of the GNU Affero General Public License |
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. |
||||
* |
||||
*/ |
||||
namespace OCA\Theming\Tests\Themes; |
||||
|
||||
use OCA\Theming\AppInfo\Application; |
||||
use OCA\Theming\ImageManager; |
||||
use OCA\Theming\ITheme; |
||||
use OCA\Theming\Service\BackgroundService; |
||||
use OCA\Theming\Themes\DarkTheme; |
||||
use OCA\Theming\ThemingDefaults; |
||||
use OCA\Theming\Util; |
||||
use OCP\App\IAppManager; |
||||
use OCP\Files\IAppData; |
||||
use OCP\IConfig; |
||||
use OCP\IL10N; |
||||
use OCP\IURLGenerator; |
||||
use OCP\IUserSession; |
||||
use PHPUnit\Framework\MockObject\MockObject; |
||||
|
||||
class DarkThemeTest extends AccessibleThemeTestCase { |
||||
/** @var ThemingDefaults|MockObject */ |
||||
private $themingDefaults; |
||||
/** @var IUserSession|MockObject */ |
||||
private $userSession; |
||||
/** @var IURLGenerator|MockObject */ |
||||
private $urlGenerator; |
||||
/** @var ImageManager|MockObject */ |
||||
private $imageManager; |
||||
/** @var IConfig|MockObject */ |
||||
private $config; |
||||
/** @var IL10N|MockObject */ |
||||
private $l10n; |
||||
/** @var IAppManager|MockObject */ |
||||
private $appManager; |
||||
|
||||
protected function setUp(): void { |
||||
$this->themingDefaults = $this->createMock(ThemingDefaults::class); |
||||
$this->userSession = $this->createMock(IUserSession::class); |
||||
$this->urlGenerator = $this->createMock(IURLGenerator::class); |
||||
$this->imageManager = $this->createMock(ImageManager::class); |
||||
$this->config = $this->createMock(IConfig::class); |
||||
$this->l10n = $this->createMock(IL10N::class); |
||||
$this->appManager = $this->createMock(IAppManager::class); |
||||
|
||||
$this->util = new Util( |
||||
$this->config, |
||||
$this->appManager, |
||||
$this->createMock(IAppData::class), |
||||
$this->imageManager |
||||
); |
||||
|
||||
$this->themingDefaults |
||||
->expects($this->any()) |
||||
->method('getColorPrimary') |
||||
->willReturn('#0082c9'); |
||||
|
||||
$this->themingDefaults |
||||
->expects($this->any()) |
||||
->method('getDefaultColorPrimary') |
||||
->willReturn('#0082c9'); |
||||
|
||||
$this->themingDefaults |
||||
->expects($this->any()) |
||||
->method('getBackground') |
||||
->willReturn('/apps/' . Application::APP_ID . '/img/background/' . BackgroundService::DEFAULT_BACKGROUND_IMAGE); |
||||
|
||||
$this->l10n |
||||
->expects($this->any()) |
||||
->method('t') |
||||
->willReturnCallback(function ($text, $parameters = []) { |
||||
return vsprintf($text, $parameters); |
||||
}); |
||||
|
||||
$this->urlGenerator |
||||
->expects($this->any()) |
||||
->method('imagePath') |
||||
->willReturnCallback(function ($app = 'core', $filename = '') { |
||||
return "/$app/img/$filename"; |
||||
}); |
||||
|
||||
$this->theme = new DarkTheme( |
||||
$this->util, |
||||
$this->themingDefaults, |
||||
$this->userSession, |
||||
$this->urlGenerator, |
||||
$this->imageManager, |
||||
$this->config, |
||||
$this->l10n, |
||||
$this->appManager, |
||||
); |
||||
|
||||
parent::setUp(); |
||||
} |
||||
|
||||
|
||||
public function testGetId() { |
||||
$this->assertEquals('dark', $this->theme->getId()); |
||||
} |
||||
|
||||
public function testGetType() { |
||||
$this->assertEquals(ITheme::TYPE_THEME, $this->theme->getType()); |
||||
} |
||||
|
||||
public function testGetTitle() { |
||||
$this->assertEquals('Dark theme', $this->theme->getTitle()); |
||||
} |
||||
|
||||
public function testGetEnableLabel() { |
||||
$this->assertEquals('Enable dark theme', $this->theme->getEnableLabel()); |
||||
} |
||||
|
||||
public function testGetDescription() { |
||||
$this->assertEquals('A dark theme to ease your eyes by reducing the overall luminosity and brightness.', $this->theme->getDescription()); |
||||
} |
||||
|
||||
public function testGetMediaQuery() { |
||||
$this->assertEquals('(prefers-color-scheme: dark)', $this->theme->getMediaQuery()); |
||||
} |
||||
|
||||
public function testGetCustomCss() { |
||||
$this->assertEquals('', $this->theme->getCustomCss()); |
||||
} |
||||
} |
Loading…
Reference in new issue