diff options
Diffstat (limited to 'apps/theming/tests/Settings/AdminTest.php')
-rw-r--r-- | apps/theming/tests/Settings/AdminTest.php | 111 |
1 files changed, 28 insertions, 83 deletions
diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php index b10196a1ac5..277b94900a8 100644 --- a/apps/theming/tests/Settings/AdminTest.php +++ b/apps/theming/tests/Settings/AdminTest.php @@ -1,29 +1,9 @@ <?php + +declare(strict_types=1); /** - * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> - * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> - * @author Julius Härtl <jus@bitgrid.net> - * @author Lukas Reschke <lukas@statuscode.ch> - * @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\Settings; @@ -32,44 +12,47 @@ use OCA\Theming\ImageManager; use OCA\Theming\Settings\Admin; use OCA\Theming\ThemingDefaults; use OCP\AppFramework\Http\TemplateResponse; +use OCP\AppFramework\Services\IInitialState; use OCP\IConfig; use OCP\IL10N; +use OCP\INavigationManager; use OCP\IURLGenerator; +use PHPUnit\Framework\MockObject\MockObject; use Test\TestCase; class AdminTest extends TestCase { - /** @var Admin */ - private $admin; - /** @var IConfig */ - private $config; - /** @var ThemingDefaults */ - private $themingDefaults; - /** @var IURLGenerator */ - private $urlGenerator; - /** @var ImageManager */ - private $imageManager; - /** @var IL10N */ - private $l10n; + private Admin $admin; + private IConfig&MockObject $config; + private ThemingDefaults&MockObject $themingDefaults; + private IInitialState&MockObject $initialState; + private IURLGenerator&MockObject $urlGenerator; + private ImageManager&MockObject $imageManager; + private IL10N&MockObject $l10n; + private INavigationManager&MockObject $navigationManager; protected function setUp(): void { parent::setUp(); $this->config = $this->createMock(IConfig::class); $this->l10n = $this->createMock(IL10N::class); $this->themingDefaults = $this->createMock(ThemingDefaults::class); + $this->initialState = $this->createMock(IInitialState::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->imageManager = $this->createMock(ImageManager::class); + $this->navigationManager = $this->createMock(INavigationManager::class); $this->admin = new Admin( Application::APP_ID, $this->config, $this->l10n, $this->themingDefaults, + $this->initialState, $this->urlGenerator, - $this->imageManager + $this->imageManager, + $this->navigationManager, ); } - public function testGetFormNoErrors() { + public function testGetFormNoErrors(): void { $this->config ->expects($this->once()) ->method('getSystemValue') @@ -97,33 +80,14 @@ class AdminTest extends TestCase { ->willReturn('MySlogan'); $this->themingDefaults ->expects($this->once()) - ->method('getColorPrimary') + ->method('getDefaultColorPrimary') ->willReturn('#fff'); - $this->urlGenerator - ->expects($this->once()) - ->method('linkToRoute') - ->with('theming.Theming.uploadImage') - ->willReturn('/my/route'); - $params = [ - 'themable' => true, - 'errorMessage' => '', - 'name' => 'MyEntity', - 'url' => 'https://example.com', - 'slogan' => 'MySlogan', - 'color' => '#fff', - 'uploadLogoRoute' => '/my/route', - 'canThemeIcons' => null, - 'iconDocs' => null, - 'images' => [], - 'imprintUrl' => '', - 'privacyUrl' => '', - ]; - $expected = new TemplateResponse('theming', 'settings-admin', $params, ''); + $expected = new TemplateResponse('theming', 'settings-admin'); $this->assertEquals($expected, $this->admin->getForm()); } - public function testGetFormWithErrors() { + public function testGetFormWithErrors(): void { $this->config ->expects($this->once()) ->method('getSystemValue') @@ -156,37 +120,18 @@ class AdminTest extends TestCase { ->willReturn('MySlogan'); $this->themingDefaults ->expects($this->once()) - ->method('getColorPrimary') + ->method('getDefaultColorPrimary') ->willReturn('#fff'); - $this->urlGenerator - ->expects($this->once()) - ->method('linkToRoute') - ->with('theming.Theming.uploadImage') - ->willReturn('/my/route'); - $params = [ - 'themable' => false, - 'errorMessage' => 'You are already using a custom theme. Theming app settings might be overwritten by that.', - 'name' => 'MyEntity', - 'url' => 'https://example.com', - 'slogan' => 'MySlogan', - 'color' => '#fff', - 'uploadLogoRoute' => '/my/route', - 'canThemeIcons' => null, - 'iconDocs' => '', - 'images' => [], - 'imprintUrl' => '', - 'privacyUrl' => '', - ]; - $expected = new TemplateResponse('theming', 'settings-admin', $params, ''); + $expected = new TemplateResponse('theming', 'settings-admin'); $this->assertEquals($expected, $this->admin->getForm()); } - public function testGetSection() { + public function testGetSection(): void { $this->assertSame('theming', $this->admin->getSection()); } - public function testGetPriority() { + public function testGetPriority(): void { $this->assertSame(5, $this->admin->getPriority()); } } |