aboutsummaryrefslogtreecommitdiffstats
path: root/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/dav/tests/unit/Settings/CalDAVSettingsTest.php')
-rw-r--r--apps/dav/tests/unit/Settings/CalDAVSettingsTest.php103
1 files changed, 48 insertions, 55 deletions
diff --git a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
index 4b1fad717cb..032759d64b7 100644
--- a/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
+++ b/apps/dav/tests/unit/Settings/CalDAVSettingsTest.php
@@ -1,50 +1,26 @@
<?php
+
+declare(strict_types=1);
/**
- * @copyright 2017, Georg Ehrke <oc.list@georgehrke.com>
- *
- * @author Georg Ehrke <oc.list@georgehrke.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: 2017 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
*/
-namespace OCA\DAV\Tests\Unit\DAV\Settings;
+namespace OCA\DAV\Tests\unit\DAV\Settings;
use OCA\DAV\Settings\CalDAVSettings;
+use OCP\App\IAppManager;
use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
use OCP\AppFramework\Services\IInitialState;
+use OCP\IConfig;
use OCP\IURLGenerator;
use PHPUnit\Framework\MockObject\MockObject;
use Test\TestCase;
class CalDAVSettingsTest extends TestCase {
-
- /** @var IConfig|MockObject */
- private $config;
-
- /** @var IInitialState|MockObject */
- private $initialState;
-
- /** @var IURLGenerator|MockObject */
- private $urlGenerator;
-
- /** @var CalDAVSettings */
+ private IConfig&MockObject $config;
+ private IInitialState&MockObject $initialState;
+ private IURLGenerator&MockObject $urlGenerator;
+ private IAppManager&MockObject $appManager;
private CalDAVSettings $settings;
protected function setUp(): void {
@@ -53,43 +29,60 @@ class CalDAVSettingsTest extends TestCase {
$this->config = $this->createMock(IConfig::class);
$this->initialState = $this->createMock(IInitialState::class);
$this->urlGenerator = $this->createMock(IURLGenerator::class);
- $this->settings = new CalDAVSettings($this->config, $this->initialState, $this->urlGenerator);
+ $this->appManager = $this->createMock(IAppManager::class);
+ $this->settings = new CalDAVSettings($this->config, $this->initialState, $this->urlGenerator, $this->appManager);
}
- public function testGetForm() {
+ public function testGetForm(): void {
$this->config->method('getAppValue')
- ->withConsecutive(
- ['dav', 'sendInvitations', 'yes'],
- ['dav', 'generateBirthdayCalendar', 'yes'],
- ['dav', 'sendEventReminders', 'yes'],
- ['dav', 'sendEventRemindersToSharedGroupMembers', 'yes'],
- ['dav', 'sendEventRemindersPush', 'no'],
- )
- ->will($this->onConsecutiveCalls('yes', 'no', 'yes', 'yes', 'yes'));
+ ->willReturnMap([
+ ['dav', 'sendInvitations', 'yes', 'yes'],
+ ['dav', 'generateBirthdayCalendar', 'yes', 'no'],
+ ['dav', 'sendEventReminders', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersToSharedUsers', 'yes', 'yes'],
+ ['dav', 'sendEventRemindersPush', 'yes', 'yes'],
+ ]);
$this->urlGenerator
->expects($this->once())
->method('linkToDocs')
->with('user-sync-calendars')
->willReturn('Some docs URL');
+
+ $calls = [
+ ['userSyncCalendarsDocUrl', 'Some docs URL'],
+ ['sendInvitations', true],
+ ['generateBirthdayCalendar', false],
+ ['sendEventReminders', true],
+ ['sendEventRemindersToSharedUsers', true],
+ ['sendEventRemindersPush', true],
+ ];
$this->initialState->method('provideInitialState')
- ->withConsecutive(
- ['userSyncCalendarsDocUrl', 'Some docs URL'],
- ['sendInvitations', true],
- ['generateBirthdayCalendar', false],
- ['sendEventReminders', true],
- ['sendEventRemindersToSharedGroupMembers', true],
- ['sendEventRemindersPush', true],
- );
+ ->willReturnCallback(function () use (&$calls): void {
+ $expected = array_shift($calls);
+ $this->assertEquals($expected, func_get_args());
+ });
$result = $this->settings->getForm();
$this->assertInstanceOf(TemplateResponse::class, $result);
}
- public function testGetSection() {
+ public function testGetSection(): void {
+ $this->appManager->expects(self::once())
+ ->method('isBackendRequired')
+ ->with(IAppManager::BACKEND_CALDAV)
+ ->willReturn(true);
$this->assertEquals('groupware', $this->settings->getSection());
}
- public function testGetPriority() {
+ public function testGetSectionWithoutCaldavBackend(): void {
+ $this->appManager->expects(self::once())
+ ->method('isBackendRequired')
+ ->with(IAppManager::BACKEND_CALDAV)
+ ->willReturn(false);
+ $this->assertEquals(null, $this->settings->getSection());
+ }
+
+ public function testGetPriority(): void {
$this->assertEquals(10, $this->settings->getPriority());
}
}