aboutsummaryrefslogtreecommitdiffstats
path: root/apps/settings/tests/Settings/Admin/SecurityTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'apps/settings/tests/Settings/Admin/SecurityTest.php')
-rw-r--r--apps/settings/tests/Settings/Admin/SecurityTest.php113
1 files changed, 113 insertions, 0 deletions
diff --git a/apps/settings/tests/Settings/Admin/SecurityTest.php b/apps/settings/tests/Settings/Admin/SecurityTest.php
new file mode 100644
index 00000000000..89a6d8c0d88
--- /dev/null
+++ b/apps/settings/tests/Settings/Admin/SecurityTest.php
@@ -0,0 +1,113 @@
+<?php
+
+/**
+ * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-License-Identifier: AGPL-3.0-or-later
+ */
+namespace OCA\Settings\Tests\Settings\Admin;
+
+use OC\Authentication\TwoFactorAuth\MandatoryTwoFactor;
+use OC\Encryption\Manager;
+use OCA\Settings\Settings\Admin\Security;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\IURLGenerator;
+use OCP\IUserManager;
+use PHPUnit\Framework\MockObject\MockObject;
+use Test\TestCase;
+
+class SecurityTest extends TestCase {
+ private Manager $manager;
+ private IUserManager $userManager;
+ private MandatoryTwoFactor&MockObject $mandatoryTwoFactor;
+ private IInitialState&MockObject $initialState;
+ private Security $admin;
+
+ protected function setUp(): void {
+ parent::setUp();
+ $this->manager = $this->createMock(Manager::class);
+ $this->userManager = $this->createMock(IUserManager::class);
+ $this->mandatoryTwoFactor = $this->createMock(MandatoryTwoFactor::class);
+ $this->initialState = $this->createMock(IInitialState::class);
+
+ $this->admin = new Security(
+ $this->manager,
+ $this->userManager,
+ $this->mandatoryTwoFactor,
+ $this->initialState,
+ $this->createMock(IURLGenerator::class)
+ );
+ }
+
+ public static function encryptionSettingsProvider(): array {
+ return [
+ [true],
+ [false],
+ ];
+ }
+
+ #[\PHPUnit\Framework\Attributes\DataProvider('encryptionSettingsProvider')]
+ public function testGetFormWithOnlyOneBackend(bool $enabled): void {
+ $this->manager
+ ->expects($this->once())
+ ->method('isEnabled')
+ ->willReturn($enabled);
+ $this->manager
+ ->expects($this->once())
+ ->method('isReady')
+ ->willReturn($enabled);
+ $this->manager
+ ->expects($this->once())
+ ->method('getEncryptionModules')
+ ->willReturn([]);
+ $this->userManager
+ ->expects($this->once())
+ ->method('getBackends')
+ ->willReturn(['entry']);
+ $expected = new TemplateResponse(
+ 'settings',
+ 'settings/admin/security',
+ [],
+ ''
+ );
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ /**
+ * @param bool $enabled
+ */
+ #[\PHPUnit\Framework\Attributes\DataProvider('encryptionSettingsProvider')]
+ public function testGetFormWithMultipleBackends($enabled): void {
+ $this->manager
+ ->expects($this->once())
+ ->method('isEnabled')
+ ->willReturn($enabled);
+ $this->manager
+ ->expects($this->once())
+ ->method('isReady')
+ ->willReturn($enabled);
+ $this->manager
+ ->expects($this->once())
+ ->method('getEncryptionModules')
+ ->willReturn([]);
+ $this->userManager
+ ->expects($this->once())
+ ->method('getBackends')
+ ->willReturn(['entry', 'entry']);
+ $expected = new TemplateResponse(
+ 'settings',
+ 'settings/admin/security',
+ [ ],
+ ''
+ );
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection(): void {
+ $this->assertSame('security', $this->admin->getSection());
+ }
+
+ public function testGetPriority(): void {
+ $this->assertSame(10, $this->admin->getPriority());
+ }
+}