Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>pull/31751/head
parent
05a33ad713
commit
850d8ac1cd
@ -0,0 +1,57 @@ |
|||||||
|
:root { |
||||||
|
--color-main-background: #ffffff; |
||||||
|
--color-main-background-rgb: 255,255,255; |
||||||
|
--color-main-background-translucent: rgba(var(--color-main-background-rgb), .97); |
||||||
|
--gradient-main-background: var(--color-main-background) 0%, var(--color-main-background-translucent) 85%, transparent 100%; |
||||||
|
--color-background-hover: #f5f5f5; |
||||||
|
--color-background-dark: #ededed; |
||||||
|
--color-background-darker: #dbdbdb; |
||||||
|
--color-placeholder-light: #e6e6e6; |
||||||
|
--color-placeholder-dark: #cccccc; |
||||||
|
--color-primary: #0082c9; |
||||||
|
--color-primary-text: #ffffff; |
||||||
|
--color-primary-hover: #198ece; |
||||||
|
--color-primary-light: #72bae1; |
||||||
|
--color-primary-light-text: #0082c9; |
||||||
|
--color-primary-light-hover: #0f567d; |
||||||
|
--color-primary-text-dark: #ededed; |
||||||
|
--color-primary-element: #0082c9; |
||||||
|
--color-primary-element-hover: #198ece; |
||||||
|
--color-primary-element-light: #17adff; |
||||||
|
--color-primary-element-lighter: #6cb7df; |
||||||
|
--color-main-text: #222222; |
||||||
|
--color-text-maxcontrast: #767676; |
||||||
|
--color-text-light: #222222; |
||||||
|
--color-text-lighter: #767676; |
||||||
|
--color-error: #e9322d; |
||||||
|
--color-error-hover: #eb4642; |
||||||
|
--color-warning: #eca700; |
||||||
|
--color-warning-hover: #edaf19; |
||||||
|
--color-success: #46ba61; |
||||||
|
--color-success-hover: #58c070; |
||||||
|
--color-loading-light: #cccccc; |
||||||
|
--color-loading-dark: #444444; |
||||||
|
--color-box-shadow-rgb: 77,77,77; |
||||||
|
--color-box-shadow: rgba(var(--color-box-shadow-rgb), 0.5); |
||||||
|
--color-border: #ededed; |
||||||
|
--color-border-dark: #dbdbdb; |
||||||
|
--font-face: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Cantarell, Ubuntu, 'Helvetica Neue', Arial, sans-serif, 'Noto Color Emoji', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; |
||||||
|
--default-font-size: 15px; |
||||||
|
--animation-quick: 100ms; |
||||||
|
--animation-slow: 300ms; |
||||||
|
--border-radius: 3px; |
||||||
|
--border-radius-large: 10px; |
||||||
|
--border-radius-pill: 100px; |
||||||
|
--default-line-height: 24px; |
||||||
|
--header-height: 50px; |
||||||
|
--navigation-width: 300px; |
||||||
|
--sidebar-min-width: 300px; |
||||||
|
--sidebar-max-width: 500px; |
||||||
|
--list-min-width: 200px; |
||||||
|
--list-max-width: 300px; |
||||||
|
--header-menu-item-height: 44px; |
||||||
|
--header-menu-profile-item-height: 66px; |
||||||
|
--breakpoint-mobile: 1024px; |
||||||
|
--primary-invert-if-bright: unset; |
||||||
|
--background-invert-if-dark: unset; |
||||||
|
} |
@ -0,0 +1,146 @@ |
|||||||
|
<?php |
||||||
|
/** |
||||||
|
* @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> |
||||||
|
* |
||||||
|
* @author Bjoern Schiessle <bjoern@schiessle.org> |
||||||
|
* @author Christoph Wurst <christoph@winzerhof-wurst.at> |
||||||
|
* @author Daniel Calviño Sánchez <danxuliu@gmail.com> |
||||||
|
* @author Joas Schilling <coding@schilljs.com> |
||||||
|
* @author John Molakvoæ <skjnldsv@protonmail.com> |
||||||
|
* @author Julius Haertl <jus@bitgrid.net> |
||||||
|
* @author Julius Härtl <jus@bitgrid.net> |
||||||
|
* @author Kyle Fazzari <kyrofa@ubuntu.com> |
||||||
|
* @author Lukas Reschke <lukas@statuscode.ch> |
||||||
|
* @author Michael Weimann <mail@michael-weimann.eu> |
||||||
|
* @author rakekniven <mark.ziegler@rakekniven.de> |
||||||
|
* @author Roeland Jago Douma <roeland@famdouma.nl> |
||||||
|
* |
||||||
|
* @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\Service; |
||||||
|
|
||||||
|
use OC\App\AppManager; |
||||||
|
use OCA\Theming\ImageManager; |
||||||
|
use OCA\Theming\ITheme; |
||||||
|
use OCA\Theming\Themes\DefaultTheme; |
||||||
|
use OCA\Theming\ThemingDefaults; |
||||||
|
use OCA\Theming\Util; |
||||||
|
use OCP\Files\IAppData; |
||||||
|
use OCP\IConfig; |
||||||
|
use OCP\IL10N; |
||||||
|
use OCP\IURLGenerator; |
||||||
|
use PHPUnit\Framework\MockObject\MockObject; |
||||||
|
use Test\TestCase; |
||||||
|
|
||||||
|
|
||||||
|
class DefaultThemeTest extends TestCase { |
||||||
|
/** @var ThemingDefaults|MockObject */ |
||||||
|
private $themingDefaults; |
||||||
|
/** @var IURLGenerator|MockObject */ |
||||||
|
private $urlGenerator; |
||||||
|
/** @var ImageManager|MockObject */ |
||||||
|
private $imageManager; |
||||||
|
/** @var IConfig|MockObject */ |
||||||
|
private $config; |
||||||
|
/** @var IL10N|MockObject */ |
||||||
|
private $l10n; |
||||||
|
|
||||||
|
private DefaultTheme $defaultTheme; |
||||||
|
|
||||||
|
protected function setUp(): void { |
||||||
|
$this->themingDefaults = $this->createMock(ThemingDefaults::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); |
||||||
|
|
||||||
|
$util = new Util( |
||||||
|
$this->config, |
||||||
|
$this->createMock(AppManager::class), |
||||||
|
$this->createMock(IAppData::class) |
||||||
|
); |
||||||
|
|
||||||
|
$this->themingDefaults |
||||||
|
->expects($this->any()) |
||||||
|
->method('getColorPrimary') |
||||||
|
->willReturn('#0082c9'); |
||||||
|
|
||||||
|
$this->l10n |
||||||
|
->expects($this->any()) |
||||||
|
->method('t') |
||||||
|
->willReturnCallback(function ($text, $parameters = []) { |
||||||
|
return vsprintf($text, $parameters); |
||||||
|
}); |
||||||
|
|
||||||
|
$this->defaultTheme = new DefaultTheme( |
||||||
|
$util, |
||||||
|
$this->themingDefaults, |
||||||
|
$this->urlGenerator, |
||||||
|
$this->imageManager, |
||||||
|
$this->config, |
||||||
|
$this->l10n, |
||||||
|
); |
||||||
|
|
||||||
|
parent::setUp(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
public function testGetId() { |
||||||
|
$this->assertEquals('default', $this->defaultTheme->getId()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetType() { |
||||||
|
$this->assertEquals(ITheme::TYPE_THEME, $this->defaultTheme->getType()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetTitle() { |
||||||
|
$this->assertEquals('Light theme', $this->defaultTheme->getTitle()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetEnableLabel() { |
||||||
|
$this->assertEquals('Enable the default light theme', $this->defaultTheme->getEnableLabel()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetDescription() { |
||||||
|
$this->assertEquals('The default light appearance.', $this->defaultTheme->getDescription()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetMediaQuery() { |
||||||
|
$this->assertEquals('', $this->defaultTheme->getMediaQuery()); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetCustomCss() { |
||||||
|
$this->assertEquals('', $this->defaultTheme->getCustomCss()); |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Ensure parity between the default theme and the static generated file |
||||||
|
* @see ThemingController.php:313 |
||||||
|
*/ |
||||||
|
public function testThemindDisabledFallbackCss() { |
||||||
|
// Generate variables |
||||||
|
$variables = ''; |
||||||
|
foreach ($this->defaultTheme->getCSSVariables() as $variable => $value) { |
||||||
|
$variables .= " $variable: $value;" . PHP_EOL; |
||||||
|
}; |
||||||
|
|
||||||
|
$css = ":root { " . PHP_EOL . "$variables}" . PHP_EOL; |
||||||
|
$fallbackCss = file_get_contents(__DIR__ . '/../../css/default.css'); |
||||||
|
|
||||||
|
$this->assertEquals($css, $fallbackCss); |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue