diff options
Diffstat (limited to 'apps/theming/tests/CapabilitiesTest.php')
-rw-r--r-- | apps/theming/tests/CapabilitiesTest.php | 105 |
1 files changed, 45 insertions, 60 deletions
diff --git a/apps/theming/tests/CapabilitiesTest.php b/apps/theming/tests/CapabilitiesTest.php index 566380b3237..aa08a45a28b 100644 --- a/apps/theming/tests/CapabilitiesTest.php +++ b/apps/theming/tests/CapabilitiesTest.php @@ -1,30 +1,9 @@ <?php + +declare(strict_types=1); /** - * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> - * - * @author Christoph Wurst <christoph@winzerhof-wurst.at> - * @author Guillaume COMPAGNON <gcompagnon@outlook.com> - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> - * @author Joas Schilling <coding@schilljs.com> - * @author Julius Härtl <jus@bitgrid.net> - * @author Morris Jobke <hey@morrisjobke.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/>. - * + * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later */ namespace OCA\Theming\Tests; @@ -37,6 +16,8 @@ use OCP\Files\IAppData; use OCP\IConfig; use OCP\IURLGenerator; use OCP\IUserSession; +use OCP\ServerVersion; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; /** @@ -45,38 +26,35 @@ use Test\TestCase; * @package OCA\Theming\Tests */ class CapabilitiesTest extends TestCase { - /** @var ThemingDefaults|\PHPUnit\Framework\MockObject\MockObject */ - protected $theming; - - /** @var IURLGenerator|\PHPUnit\Framework\MockObject\MockObject */ - protected $url; - - /** @var IConfig|\PHPUnit\Framework\MockObject\MockObject */ - protected $config; - - /** @var Util|\PHPUnit\Framework\MockObject\MockObject */ - protected $util; - + protected ThemingDefaults&MockObject $theming; + protected IURLGenerator&MockObject $url; + protected IConfig&MockObject $config; + protected Util&MockObject $util; protected IUserSession $userSession; - - /** @var Capabilities */ - protected $capabilities; + protected Capabilities $capabilities; protected function setUp(): void { parent::setUp(); $this->theming = $this->createMock(ThemingDefaults::class); - $this->url = $this->getMockBuilder(IURLGenerator::class)->getMock(); + $this->url = $this->createMock(IURLGenerator::class); $this->config = $this->createMock(IConfig::class); $this->util = $this->createMock(Util::class); $this->userSession = $this->createMock(IUserSession::class); - $this->capabilities = new Capabilities($this->theming, $this->util, $this->url, $this->config, $this->userSession); + $this->capabilities = new Capabilities( + $this->theming, + $this->util, + $this->url, + $this->config, + $this->userSession, + ); } - public function dataGetCapabilities() { + public static function dataGetCapabilities(): array { return [ - ['name', 'url', 'slogan', '#FFFFFF', '#000000', 'logo', 'background', 'http://absolute/', true, [ + ['name', 'url', 'slogan', '#FFFFFF', '#000000', 'logo', 'background', '#fff', '#000', 'http://absolute/', true, [ 'name' => 'name', + 'productName' => 'name', 'url' => 'url', 'slogan' => 'slogan', 'color' => '#FFFFFF', @@ -86,13 +64,15 @@ class CapabilitiesTest extends TestCase { 'color-element-dark' => '#FFFFFF', 'logo' => 'http://absolute/logo', 'background' => 'http://absolute/background', + 'background-text' => '#000', 'background-plain' => false, 'background-default' => false, 'logoheader' => 'http://absolute/logo', 'favicon' => 'http://absolute/logo', ]], - ['name1', 'url2', 'slogan3', '#01e4a0', '#ffffff', 'logo5', 'background6', 'http://localhost/', false, [ + ['name1', 'url2', 'slogan3', '#01e4a0', '#ffffff', 'logo5', 'background6', '#fff', '#000', 'http://localhost/', false, [ 'name' => 'name1', + 'productName' => 'name1', 'url' => 'url2', 'slogan' => 'slogan3', 'color' => '#01e4a0', @@ -102,13 +82,15 @@ class CapabilitiesTest extends TestCase { 'color-element-dark' => '#01e4a0', 'logo' => 'http://localhost/logo5', 'background' => 'http://localhost/background6', + 'background-text' => '#000', 'background-plain' => false, 'background-default' => true, 'logoheader' => 'http://localhost/logo5', 'favicon' => 'http://localhost/logo5', ]], - ['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', 'http://localhost/', true, [ + ['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', '#000000', '#ffffff', 'http://localhost/', true, [ 'name' => 'name1', + 'productName' => 'name1', 'url' => 'url2', 'slogan' => 'slogan3', 'color' => '#000000', @@ -118,13 +100,15 @@ class CapabilitiesTest extends TestCase { 'color-element-dark' => '#4d4d4d', 'logo' => 'http://localhost/logo5', 'background' => '#000000', + 'background-text' => '#ffffff', 'background-plain' => true, 'background-default' => false, 'logoheader' => 'http://localhost/logo5', 'favicon' => 'http://localhost/logo5', ]], - ['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', 'http://localhost/', false, [ + ['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', '#000000', '#ffffff', 'http://localhost/', false, [ 'name' => 'name1', + 'productName' => 'name1', 'url' => 'url2', 'slogan' => 'slogan3', 'color' => '#000000', @@ -134,6 +118,7 @@ class CapabilitiesTest extends TestCase { 'color-element-dark' => '#4d4d4d', 'logo' => 'http://localhost/logo5', 'background' => '#000000', + 'background-text' => '#ffffff', 'background-plain' => true, 'background-default' => true, 'logoheader' => 'http://localhost/logo5', @@ -143,19 +128,10 @@ class CapabilitiesTest extends TestCase { } /** - * @dataProvider dataGetCapabilities - * @param string $name - * @param string $url - * @param string $slogan - * @param string $color - * @param string $textColor - * @param string $logo - * @param string $background - * @param string $baseUrl - * @param bool $backgroundThemed - * @param string[] $expected + * @param non-empty-array<string, string> $expected */ - public function testGetCapabilities($name, $url, $slogan, $color, $textColor, $logo, $background, $baseUrl, $backgroundThemed, array $expected) { + #[\PHPUnit\Framework\Attributes\DataProvider('dataGetCapabilities')] + public function testGetCapabilities(string $name, string $url, string $slogan, string $color, string $textColor, string $logo, string $background, string $backgroundColor, string $backgroundTextColor, string $baseUrl, bool $backgroundThemed, array $expected): void { $this->config->expects($this->once()) ->method('getAppValue') ->willReturn($background); @@ -163,11 +139,20 @@ class CapabilitiesTest extends TestCase { ->method('getName') ->willReturn($name); $this->theming->expects($this->once()) + ->method('getProductName') + ->willReturn($name); + $this->theming->expects($this->once()) ->method('getBaseUrl') ->willReturn($url); $this->theming->expects($this->once()) ->method('getSlogan') ->willReturn($slogan); + $this->theming->expects($this->once()) + ->method('getColorBackground') + ->willReturn($backgroundColor); + $this->theming->expects($this->once()) + ->method('getTextColorBackground') + ->willReturn($backgroundTextColor); $this->theming->expects($this->atLeast(1)) ->method('getDefaultColorPrimary') ->willReturn($color); @@ -175,7 +160,7 @@ class CapabilitiesTest extends TestCase { ->method('getLogo') ->willReturn($logo); - $util = new Util($this->config, $this->createMock(IAppManager::class), $this->createMock(IAppData::class), $this->createMock(ImageManager::class)); + $util = new Util($this->createMock(ServerVersion::class), $this->config, $this->createMock(IAppManager::class), $this->createMock(IAppData::class), $this->createMock(ImageManager::class)); $this->util->expects($this->exactly(3)) ->method('elementColor') ->with($color) |