Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>pull/42329/head
parent
94a5e6c7b3
commit
74f6995bdb
@ -0,0 +1,142 @@ |
|||||||
|
<?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\DarkHighContrastTheme; |
||||||
|
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 DarkHighContrastThemeTest 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; |
||||||
|
|
||||||
|
// !! important: Enable WCAG AAA tests |
||||||
|
protected bool $WCAGaaa = true; |
||||||
|
|
||||||
|
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 DarkHighContrastTheme( |
||||||
|
$this->util, |
||||||
|
$this->themingDefaults, |
||||||
|
$this->userSession, |
||||||
|
$this->urlGenerator, |
||||||
|
$this->imageManager, |
||||||
|
$this->config, |
||||||
|
$this->l10n, |
||||||
|
$this->appManager, |
||||||
|
); |
||||||
|
|
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public function testGetId() { |
||||||
|
$this->assertEquals('dark-highcontrast', $this->theme->getId()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetType() { |
||||||
|
$this->assertEquals(ITheme::TYPE_THEME, $this->theme->getType()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetTitle() { |
||||||
|
$this->assertEquals('Dark theme with high contrast mode', $this->theme->getTitle()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetEnableLabel() { |
||||||
|
$this->assertEquals('Enable dark high contrast mode', $this->theme->getEnableLabel()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetDescription() { |
||||||
|
$this->assertEquals('Similar to the high contrast mode, but with dark colours.', $this->theme->getDescription()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetMediaQuery() { |
||||||
|
$this->assertEquals('(prefers-color-scheme: dark) and (prefers-contrast: more)', $this->theme->getMediaQuery()); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue