summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2016-08-15 16:24:56 +0200
committerLukas Reschke <lukas@statuscode.ch>2016-08-15 16:25:34 +0200
commit8a7a0f328746230dd896ccc53b3ada271a91b930 (patch)
treeaaaaedf7167b74c48a91c90671f705edb71bc541 /apps
parent75a73a5a7301f203a962a17f6b2b8b90078c1884 (diff)
downloadnextcloud-server-8a7a0f328746230dd896ccc53b3ada271a91b930.tar.gz
nextcloud-server-8a7a0f328746230dd896ccc53b3ada271a91b930.zip
Add unit tests
Diffstat (limited to 'apps')
-rw-r--r--apps/encryption/tests/Settings/AdminTest.php100
-rw-r--r--apps/federatedfilesharing/tests/Settings/AdminTest.php84
-rw-r--r--apps/federation/tests/Settings/AdminTest.php70
-rw-r--r--apps/files/tests/Settings/AdminTest.php83
-rw-r--r--apps/files_external/tests/Settings/AdminTest.php109
-rw-r--r--apps/files_external/tests/Settings/SectionTest.php62
-rw-r--r--apps/systemtags/tests/Settings/AdminTest.php52
-rw-r--r--apps/theming/lib/Settings/Admin.php9
-rw-r--r--apps/theming/tests/Controller/ThemingControllerTest.php1
-rw-r--r--apps/theming/tests/Settings/AdminTest.php155
-rw-r--r--apps/theming/tests/Settings/SectionTest.php62
-rw-r--r--apps/updatenotification/tests/Controller/AdminControllerTest.php25
-rw-r--r--apps/user_ldap/lib/Settings/Admin.php10
-rw-r--r--apps/user_ldap/tests/Settings/AdminTest.php90
-rw-r--r--apps/user_ldap/tests/Settings/SectionTest.php62
15 files changed, 953 insertions, 21 deletions
diff --git a/apps/encryption/tests/Settings/AdminTest.php b/apps/encryption/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..5b0b577e058
--- /dev/null
+++ b/apps/encryption/tests/Settings/AdminTest.php
@@ -0,0 +1,100 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Encryption\Tests\Settings;
+
+use OCA\Encryption\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IConfig;
+use OCP\ISession;
+use OCP\IUserManager;
+use OCP\IUserSession;
+use OCP\IL10N;
+use OCP\ILogger;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var IL10N */
+ private $l;
+ /** @var ILogger */
+ private $logger;
+ /** @var IUserSession */
+ private $userSession;
+ /** @var IConfig */
+ private $config;
+ /** @var IUserManager */
+ private $userManager;
+ /** @var ISession */
+ private $session;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->l = $this->createMock('\OCP\IL10N');
+ $this->logger = $this->createMock('\OCP\ILogger');
+ $this->userSession = $this->createMock('\OCP\IUserSession');
+ $this->config = $this->createMock('\OCP\IConfig');
+ $this->userManager = $this->createMock('\OCP\IUserManager');
+ $this->session = $this->createMock('\OCP\ISession');
+
+ $this->admin = new Admin(
+ $this->l,
+ $this->logger,
+ $this->userSession,
+ $this->config,
+ $this->userManager,
+ $this->session
+ );
+ }
+
+ public function testGetForm() {
+ $this->config
+ ->expects($this->at(0))
+ ->method('getAppValue')
+ ->with('encryption', 'recoveryAdminEnabled', '0')
+ ->willReturn(1);
+ $this->config
+ ->expects($this->at(1))
+ ->method('getAppValue')
+ ->with('encryption', 'encryptHomeStorage', '1')
+ ->willReturn(1);
+ $params = [
+ 'recoveryEnabled' => 1,
+ 'initStatus' => '0',
+ 'encryptHomeStorage' => false,
+ 'masterKeyEnabled' => false
+ ];
+ $expected = new TemplateResponse('encryption', 'settings-admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('encryption', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(5, $this->admin->getPriority());
+ }
+}
diff --git a/apps/federatedfilesharing/tests/Settings/AdminTest.php b/apps/federatedfilesharing/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..e082e7bff23
--- /dev/null
+++ b/apps/federatedfilesharing/tests/Settings/AdminTest.php
@@ -0,0 +1,84 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\FederatedFileSharing\Tests\Settings;
+
+use OCA\FederatedFileSharing\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var \OCA\FederatedFileSharing\FederatedShareProvider */
+ private $federatedShareProvider;
+
+ public function setUp() {
+ parent::setUp();
+ $this->federatedShareProvider = $this->createMock('\OCA\FederatedFileSharing\FederatedShareProvider');
+ $this->admin = new Admin(
+ $this->federatedShareProvider
+ );
+ }
+
+ public function sharingStateProvider() {
+ return [
+ [
+ true,
+ ],
+ [
+ false,
+ ]
+ ];
+ }
+
+ /**
+ * @dataProvider sharingStateProvider
+ * @param bool $state
+ */
+ public function testGetForm($state) {
+ $this->federatedShareProvider
+ ->expects($this->once())
+ ->method('isOutgoingServer2serverShareEnabled')
+ ->willReturn($state);
+ $this->federatedShareProvider
+ ->expects($this->once())
+ ->method('isIncomingServer2serverShareEnabled')
+ ->willReturn($state);
+
+ $params = [
+ 'outgoingServer2serverShareEnabled' => $state,
+ 'incomingServer2serverShareEnabled' => $state,
+ ];
+ $expected = new TemplateResponse('federatedfilesharing', 'settings-admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('sharing', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(20, $this->admin->getPriority());
+ }
+}
diff --git a/apps/federation/tests/Settings/AdminTest.php b/apps/federation/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..78cb7201dcd
--- /dev/null
+++ b/apps/federation/tests/Settings/AdminTest.php
@@ -0,0 +1,70 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Federation\Tests\Settings;
+
+use OCA\Federation\Settings\Admin;
+use OCA\Federation\TrustedServers;
+use OCP\AppFramework\Http\TemplateResponse;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var TrustedServers */
+ private $trustedServers;
+
+ public function setUp() {
+ parent::setUp();
+ $this->trustedServers = $this->createMock('\OCA\Federation\TrustedServers');
+ $this->admin = new Admin(
+ $this->trustedServers
+ );
+ }
+
+ public function testGetForm() {
+ $this->trustedServers
+ ->expects($this->once())
+ ->method('getServers')
+ ->willReturn(['myserver', 'secondserver']);
+ $this->trustedServers
+ ->expects($this->once())
+ ->method('getAutoAddServers')
+ ->willReturn(['autoserver1', 'autoserver2']);
+
+ $params = [
+ 'trustedServers' => ['myserver', 'secondserver'],
+ 'autoAddServers' => ['autoserver1', 'autoserver2'],
+ ];
+ $expected = new TemplateResponse('federation', 'settings-admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('sharing', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(30, $this->admin->getPriority());
+ }
+}
diff --git a/apps/files/tests/Settings/AdminTest.php b/apps/files/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..c536377af93
--- /dev/null
+++ b/apps/files/tests/Settings/AdminTest.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Files\Tests\Settings;
+
+use bantu\IniGetWrapper\IniGetWrapper;
+use OCA\Files\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IRequest;
+use OCP\Util;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var IniGetWrapper */
+ private $iniGetWrapper;
+ /** @var IRequest */
+ private $request;
+
+ public function setUp() {
+ parent::setUp();
+ $this->iniGetWrapper = $this->createMock('\bantu\IniGetWrapper\IniGetWrapper');
+ $this->request = $this->createMock('\OCP\IRequest');
+ $this->admin = new Admin(
+ $this->iniGetWrapper,
+ $this->request
+ );
+ }
+
+ public function testGetForm() {
+ $htaccessWorking = (getenv('htaccessWorking') == 'true');
+ $htaccessWritable = is_writable(\OC::$SERVERROOT.'/.htaccess');
+ $userIniWritable = is_writable(\OC::$SERVERROOT.'/.user.ini');
+
+ $this->iniGetWrapper
+ ->expects($this->at(0))
+ ->method('getBytes')
+ ->with('upload_max_filesize')
+ ->willReturn(1234);
+ $this->iniGetWrapper
+ ->expects($this->at(1))
+ ->method('getBytes')
+ ->with('post_max_size')
+ ->willReturn(1234);
+ $params = [
+ 'uploadChangable' => (($htaccessWorking and $htaccessWritable) or $userIniWritable ),
+ 'uploadMaxFilesize' => '1 KB',
+ 'displayMaxPossibleUploadSize' => PHP_INT_SIZE === 4,
+ 'maxPossibleUploadSize' => Util::humanFileSize(PHP_INT_MAX),
+ ];
+ $expected = new TemplateResponse('files', 'admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('additional', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(5, $this->admin->getPriority());
+ }
+}
diff --git a/apps/files_external/tests/Settings/AdminTest.php b/apps/files_external/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..1918e800c9b
--- /dev/null
+++ b/apps/files_external/tests/Settings/AdminTest.php
@@ -0,0 +1,109 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Files_External\Tests\Settings;
+
+use OCA\Files_External\Lib\Auth\Password\GlobalAuth;
+use OCA\Files_External\Service\BackendService;
+use OCA\Files_External\Service\GlobalStoragesService;
+use OCA\Files_External\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Encryption\IManager;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var IManager */
+ private $encryptionManager;
+ /** @var GlobalStoragesService */
+ private $globalStoragesService;
+ /** @var BackendService */
+ private $backendService;
+ /** @var GlobalAuth */
+ private $globalAuth;
+
+ public function setUp() {
+ parent::setUp();
+ $this->encryptionManager = $this->createMock('\OCP\Encryption\IManager');
+ $this->globalStoragesService = $this->createMock('\OCA\Files_External\Service\GlobalStoragesService');
+ $this->backendService = $this->createMock('\OCA\Files_External\Service\BackendService');
+ $this->globalAuth = $this->createMock('\OCA\Files_External\Lib\Auth\Password\GlobalAuth');
+
+ $this->admin = new Admin(
+ $this->encryptionManager,
+ $this->globalStoragesService,
+ $this->backendService,
+ $this->globalAuth
+ );
+ }
+
+ public function testGetForm() {
+ $this->encryptionManager
+ ->expects($this->once())
+ ->method('isEnabled')
+ ->willReturn(false);
+ $this->globalStoragesService
+ ->expects($this->once())
+ ->method('getStorages')
+ ->willReturn(['a', 'b', 'c']);
+ $this->backendService
+ ->expects($this->once())
+ ->method('getAvailableBackends')
+ ->willReturn(['d', 'e', 'f']);
+ $this->backendService
+ ->expects($this->once())
+ ->method('getAuthMechanisms')
+ ->willReturn(['g', 'h', 'i']);
+ $this->backendService
+ ->expects($this->once())
+ ->method('isUserMountingAllowed')
+ ->willReturn(true);
+ $this->globalAuth
+ ->expects($this->once())
+ ->method('getAuth')
+ ->with('')
+ ->willReturn('asdf:asdf');
+ $params = [
+ 'encryptionEnabled' => false,
+ 'visibilityType' => BackendService::VISIBILITY_ADMIN,
+ 'storages' => ['a', 'b', 'c'],
+ 'backends' => ['d', 'e', 'f'],
+ 'authMechanisms' => ['g', 'h', 'i'],
+ 'dependencies' => \OC_Mount_Config::dependencyMessage($this->backendService->getBackends()),
+ 'allowUserMounting' => true,
+ 'globalCredentials' => 'asdf:asdf',
+ 'globalCredentialsUid' => '',
+ ];
+ $expected = new TemplateResponse('files_external', 'settings', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('externalstorages', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(40, $this->admin->getPriority());
+ }
+}
diff --git a/apps/files_external/tests/Settings/SectionTest.php b/apps/files_external/tests/Settings/SectionTest.php
new file mode 100644
index 00000000000..9ab456fe307
--- /dev/null
+++ b/apps/files_external/tests/Settings/SectionTest.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Files_External\Tests\Settings;
+
+use OCA\Files_External\Settings\Section;
+use OCP\IL10N;
+use Test\TestCase;
+
+class SectionTest extends TestCase {
+ /** @var IL10N */
+ private $l;
+ /** @var Section */
+ private $section;
+
+ public function setUp() {
+ parent::setUp();
+ $this->l = $this->createMock('\OCP\IL10N');
+
+ $this->section = new Section(
+ $this->l
+ );
+ }
+
+ public function testGetID() {
+ $this->assertSame('externalstorages', $this->section->getID());
+ }
+
+ public function testGetName() {
+ $this->l
+ ->expects($this->once())
+ ->method('t')
+ ->with('External storages')
+ ->willReturn('External storages');
+
+ $this->assertSame('External storages', $this->section->getName());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(10, $this->section->getPriority());
+ }
+}
diff --git a/apps/systemtags/tests/Settings/AdminTest.php b/apps/systemtags/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..b1faf82cf25
--- /dev/null
+++ b/apps/systemtags/tests/Settings/AdminTest.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\SystemTags\Tests\Settings;
+
+use OCA\SystemTags\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+
+ public function setUp() {
+ parent::setUp();
+
+ $this->admin = new Admin();
+ }
+
+ public function testGetForm() {
+ $expected = new TemplateResponse('systemtags', 'admin', [], '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('sharing', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(70, $this->admin->getPriority());
+ }
+}
diff --git a/apps/theming/lib/Settings/Admin.php b/apps/theming/lib/Settings/Admin.php
index 8aba4696e00..1f79449e658 100644
--- a/apps/theming/lib/Settings/Admin.php
+++ b/apps/theming/lib/Settings/Admin.php
@@ -31,20 +31,19 @@ use OCP\IURLGenerator;
use OCP\Settings\ISettings;
class Admin implements ISettings {
-
/** @var IConfig */
private $config;
-
/** @var IL10N */
private $l;
-
/** @var ThemingDefaults */
private $themingDefaults;
-
/** @var IURLGenerator */
private $urlGenerator;
- public function __construct(IConfig $config, IL10N $l, ThemingDefaults $themingDefaults, IURLGenerator $urlGenerator) {
+ public function __construct(IConfig $config,
+ IL10N $l,
+ ThemingDefaults $themingDefaults,
+ IURLGenerator $urlGenerator) {
$this->config = $config;
$this->l = $l;
$this->themingDefaults = $themingDefaults;
diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php
index 2662cb16e0f..688e3d62bff 100644
--- a/apps/theming/tests/Controller/ThemingControllerTest.php
+++ b/apps/theming/tests/Controller/ThemingControllerTest.php
@@ -33,6 +33,7 @@ use OCP\IConfig;
use OCP\IL10N;
use OCP\IRequest;
use Test\TestCase;
+use OCA\Theming\ThemingDefaults;
class ThemingControllerTest extends TestCase {
/** @var IRequest|\PHPUnit_Framework_MockObject_MockObject */
diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..ff42c6997a6
--- /dev/null
+++ b/apps/theming/tests/Settings/AdminTest.php
@@ -0,0 +1,155 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Settings;
+
+use OCA\Theming\Settings\Admin;
+use OCA\Theming\ThemingDefaults;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IConfig;
+use OCP\IL10N;
+use OCP\IURLGenerator;
+use Test\TestCase;
+
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var IConfig */
+ private $config;
+ /** @var ThemingDefaults */
+ private $themingDefaults;
+ /** @var IURLGenerator */
+ private $urlGenerator;
+ /** @var IL10N */
+ private $l10n;
+
+ public function setUp() {
+ parent::setUp();
+ $this->config = $this->createMock('\OCP\IConfig');
+ $this->l10n = $this->createMock('\OCP\IL10N');
+ $this->themingDefaults = $this->createMock('\OCA\Theming\ThemingDefaults');
+ $this->urlGenerator = $this->createMock('\OCP\IURLGenerator');
+
+ $this->admin = new Admin(
+ $this->config,
+ $this->l10n,
+ $this->themingDefaults,
+ $this->urlGenerator
+ );
+ }
+
+ public function testGetFormNoErrors() {
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValue')
+ ->with('theme', '')
+ ->willReturn('');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getEntity')
+ ->willReturn('MyEntity');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getBaseUrl')
+ ->willReturn('https://example.com');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getSlogan')
+ ->willReturn('MySlogan');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getMailHeaderColor')
+ ->willReturn('#fff');
+ $this->urlGenerator
+ ->expects($this->once())
+ ->method('linkToRoute')
+ ->with('theming.Theming.updateLogo')
+ ->willReturn('/my/route');
+ $params = [
+ 'themable' => true,
+ 'errorMessage' => '',
+ 'name' => 'MyEntity',
+ 'url' => 'https://example.com',
+ 'slogan' => 'MySlogan',
+ 'color' => '#fff',
+ 'uploadLogoRoute' => '/my/route',
+ ];
+
+ $expected = new TemplateResponse('theming', 'settings-admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetFormWithErrors() {
+ $this->config
+ ->expects($this->once())
+ ->method('getSystemValue')
+ ->with('theme', '')
+ ->willReturn('MyCustomTheme');
+ $this->l10n
+ ->expects($this->once())
+ ->method('t')
+ ->with('You already use a custom theme')
+ ->willReturn('You already use a custom theme');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getEntity')
+ ->willReturn('MyEntity');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getBaseUrl')
+ ->willReturn('https://example.com');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getSlogan')
+ ->willReturn('MySlogan');
+ $this->themingDefaults
+ ->expects($this->once())
+ ->method('getMailHeaderColor')
+ ->willReturn('#fff');
+ $this->urlGenerator
+ ->expects($this->once())
+ ->method('linkToRoute')
+ ->with('theming.Theming.updateLogo')
+ ->willReturn('/my/route');
+ $params = [
+ 'themable' => false,
+ 'errorMessage' => 'You already use a custom theme',
+ 'name' => 'MyEntity',
+ 'url' => 'https://example.com',
+ 'slogan' => 'MySlogan',
+ 'color' => '#fff',
+ 'uploadLogoRoute' => '/my/route',
+ ];
+
+ $expected = new TemplateResponse('theming', 'settings-admin', $params, '');
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('theming', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(5, $this->admin->getPriority());
+ }
+}
diff --git a/apps/theming/tests/Settings/SectionTest.php b/apps/theming/tests/Settings/SectionTest.php
new file mode 100644
index 00000000000..e8a9a217f1f
--- /dev/null
+++ b/apps/theming/tests/Settings/SectionTest.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\Settings;
+
+use OCA\Theming\Settings\Section;
+use OCP\IL10N;
+use Test\TestCase;
+
+class SectionTest extends TestCase {
+ /** @var IL10N */
+ private $l;
+ /** @var Section */
+ private $section;
+
+ public function setUp() {
+ parent::setUp();
+ $this->l = $this->createMock('\OCP\IL10N');
+
+ $this->section = new Section(
+ $this->l
+ );
+ }
+
+ public function testGetID() {
+ $this->assertSame('theming', $this->section->getID());
+ }
+
+ public function testGetName() {
+ $this->l
+ ->expects($this->once())
+ ->method('t')
+ ->with('Theming')
+ ->willReturn('Theming');
+
+ $this->assertSame('Theming', $this->section->getName());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(30, $this->section->getPriority());
+ }
+}
diff --git a/apps/updatenotification/tests/Controller/AdminControllerTest.php b/apps/updatenotification/tests/Controller/AdminControllerTest.php
index 0343542ef41..a4398715885 100644
--- a/apps/updatenotification/tests/Controller/AdminControllerTest.php
+++ b/apps/updatenotification/tests/Controller/AdminControllerTest.php
@@ -59,15 +59,14 @@ class AdminControllerTest extends TestCase {
public function setUp() {
parent::setUp();
- $this->request = $this->getMock('\\OCP\\IRequest');
- $this->jobList = $this->getMock('\\OCP\\BackgroundJob\\IJobList');
- $this->secureRandom = $this->getMock('\\OCP\\Security\\ISecureRandom');
- $this->config = $this->getMock('\\OCP\\IConfig');
- $this->timeFactory = $this->getMock('\\OCP\\AppFramework\\Utility\\ITimeFactory');
- $this->l10n = $this->getMock('\\OCP\\IL10N');
- $this->updateChecker = $this->getMockBuilder('\\OCA\\UpdateNotification\\UpdateChecker')
- ->disableOriginalConstructor()->getMock();
- $this->dateTimeFormatter = $this->getMock('\\OCP\\IDateTimeFormatter');
+ $this->request = $this->createMock('\\OCP\\IRequest');
+ $this->jobList = $this->createMock('\\OCP\\BackgroundJob\\IJobList');
+ $this->secureRandom = $this->createMock('\\OCP\\Security\\ISecureRandom');
+ $this->config = $this->createMock('\\OCP\\IConfig');
+ $this->timeFactory = $this->createMock('\\OCP\\AppFramework\\Utility\\ITimeFactory');
+ $this->l10n = $this->createMock('\\OCP\\IL10N');
+ $this->updateChecker = $this->createMock('\\OCA\\UpdateNotification\\UpdateChecker');
+ $this->dateTimeFormatter = $this->createMock('\\OCP\\IDateTimeFormatter');
$this->adminController = new AdminController(
'updatenotification',
@@ -197,4 +196,12 @@ class AdminControllerTest extends TestCase {
$expected = new DataResponse('MyGeneratedToken');
$this->assertEquals($expected, $this->adminController->createCredentials());
}
+
+ public function testGetSection() {
+ $this->assertSame('server', $this->adminController->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(1, $this->adminController->getPriority());
+ }
}
diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php
index 606cfe6cf01..ca7db66c788 100644
--- a/apps/user_ldap/lib/Settings/Admin.php
+++ b/apps/user_ldap/lib/Settings/Admin.php
@@ -31,10 +31,12 @@ use OCP\Settings\ISettings;
use OCP\Template;
class Admin implements ISettings {
-
/** @var IL10N */
private $l;
+ /**
+ * @param IL10N $l
+ */
public function __construct(IL10N $l) {
$this->l = $l;
}
@@ -84,10 +86,4 @@ class Admin implements ISettings {
public function getPriority() {
return 5;
}
-
- private function renderControls() {
- $controls = new Template('user_ldap', 'part.settingcontrols');
- return $controls->fetchPage();
-
- }
}
diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php
new file mode 100644
index 00000000000..e92684f3ce4
--- /dev/null
+++ b/apps/user_ldap/tests/Settings/AdminTest.php
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\User_LDAP\Tests\Settings;
+
+use OCA\User_LDAP\Configuration;
+use OCA\User_LDAP\Helper;
+use OCA\User_LDAP\Settings\Admin;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IL10N;
+use OCP\Template;
+use Test\TestCase;
+
+/**
+ * @group DB
+ * @package OCA\User_LDAP\Tests\Settings
+ */
+class AdminTest extends TestCase {
+ /** @var Admin */
+ private $admin;
+ /** @var IL10N */
+ private $l10n;
+
+ public function setUp() {
+ parent::setUp();
+ $this->l10n = $this->createMock('\OCP\IL10N');
+
+ $this->admin = new Admin(
+ $this->l10n
+ );
+ }
+
+ /**
+ * @UseDB
+ */
+ public function testGetForm() {
+
+ $helper = new Helper();
+ $prefixes = $helper->getServerConfigurationPrefixes();
+ $hosts = $helper->getServerConfigurationHosts();
+
+ $wControls = new Template('user_ldap', 'part.wizardcontrols');
+ $wControls = $wControls->fetchPage();
+ $sControls = new Template('user_ldap', 'part.settingcontrols');
+ $sControls = $sControls->fetchPage();
+
+ $parameters['serverConfigurationPrefixes'] = $prefixes;
+ $parameters['serverConfigurationHosts'] = $hosts;
+ $parameters['settingControls'] = $sControls;
+ $parameters['wizardControls'] = $wControls;
+
+ // assign default values
+ $config = new Configuration('', false);
+ $defaults = $config->getDefaults();
+ foreach($defaults as $key => $default) {
+ $parameters[$key.'_default'] = $default;
+ }
+
+ $expected = new TemplateResponse('user_ldap', 'settings', $parameters);
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('ldap', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(5, $this->admin->getPriority());
+ }
+}
diff --git a/apps/user_ldap/tests/Settings/SectionTest.php b/apps/user_ldap/tests/Settings/SectionTest.php
new file mode 100644
index 00000000000..b5b1f97ce3c
--- /dev/null
+++ b/apps/user_ldap/tests/Settings/SectionTest.php
@@ -0,0 +1,62 @@
+<?php
+/**
+ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @author Lukas Reschke <lukas@statuscode.ch>
+ *
+ * @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\User_LDAP\Tests\Settings;
+
+use OCA\User_LDAP\Settings\Section;
+use OCP\IL10N;
+use Test\TestCase;
+
+class SectionTest extends TestCase {
+ /** @var IL10N */
+ private $l;
+ /** @var Section */
+ private $section;
+
+ public function setUp() {
+ parent::setUp();
+ $this->l = $this->createMock('\OCP\IL10N');
+
+ $this->section = new Section(
+ $this->l
+ );
+ }
+
+ public function testGetID() {
+ $this->assertSame('ldap', $this->section->getID());
+ }
+
+ public function testGetName() {
+ $this->l
+ ->expects($this->once())
+ ->method('t')
+ ->with('LDAP / AD integration')
+ ->willReturn('LDAP / AD integration');
+
+ $this->assertSame('LDAP / AD integration', $this->section->getName());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(25, $this->section->getPriority());
+ }
+}