diff --git a/lib/Settings/Admin.php b/lib/Settings/Admin.php
index 816b3f9..4824d95 100644
--- a/lib/Settings/Admin.php
+++ b/lib/Settings/Admin.php
@@ -26,27 +26,21 @@ namespace OCA\User_SAML\Settings;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\Defaults;
use OCP\IL10N;
-use OCP\IURLGenerator;
use OCP\Settings\ISettings;
class Admin implements ISettings {
/** @var IL10N */
private $l10n;
- /** @var IURLGenerator */
- private $urlGenerator;
/** @var Defaults */
private $defaults;
/**
* @param IL10N $l10n
- * @param IURLGenerator $urlGenerator
* @param Defaults $defaults
*/
public function __construct(IL10N $l10n,
- IURLGenerator $urlGenerator,
Defaults $defaults) {
$this->l10n = $l10n;
- $this->urlGenerator = $urlGenerator;
$this->defaults = $defaults;
}
diff --git a/tests/Settings/AdminTest.php b/tests/Settings/AdminTest.php
new file mode 100644
index 0000000..e38a582
--- /dev/null
+++ b/tests/Settings/AdminTest.php
@@ -0,0 +1,113 @@
+
+ *
+ * @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 .
+ *
+ */
+
+namespace OCA\User_SAML\Tests\Settings;
+
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\Defaults;
+use OCP\IL10N;
+
+class AdminTest extends \Test\TestCase {
+ /** @var \OCA\User_SAML\Settings\Admin */
+ private $admin;
+ /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
+ private $l10n;
+ /** @var Defaults|\PHPUnit_Framework_MockObject_MockObject */
+ private $defaults;
+
+ public function setUp() {
+ $this->l10n = $this->createMock(IL10N::class);
+ $this->defaults = $this->createMock(Defaults::class);
+
+ $this->admin = new \OCA\User_SAML\Settings\Admin(
+ $this->l10n,
+ $this->defaults
+ );
+
+ return parent::setUp();
+ }
+
+ public function testGetForm() {
+ $this->l10n
+ ->expects($this->any())
+ ->method('t')
+ ->will($this->returnCallback(function($text, $parameters = array()) {
+ return vsprintf($text, $parameters);
+ }));
+ $this->defaults
+ ->expects($this->once())
+ ->method('getName')
+ ->willReturn('Nextcloud');
+
+ $serviceProviderFields = [
+ 'x509cert' => 'X.509 certificate of the Service Provider',
+ 'privateKey' => 'Private key of the Service Provider',
+ ];
+ $securityOfferFields = [
+ 'nameIdEncrypted' => 'Indicates that the nameID of the sent by this SP will be encrypted.',
+ 'authnRequestsSigned' => 'Indicates whether the messages sent by this SP will be signed. [Metadata of the SP will offer this info]',
+ 'logoutRequestSigned' => 'Indicates whether the messages sent by this SP will be signed.',
+ 'logoutResponseSigned' => 'Indicates whether the messages sent by this SP will be signed.',
+ 'signMetadata' => 'Whether the metadata should be signed.',
+ ];
+ $securityRequiredFields = [
+ 'wantMessagesSigned' => 'Indicates a requirement for the , and elements received by this SP to be signed.',
+ 'wantAssertionsSigned' => 'Indicates a requirement for the elements received by this SP to be signed. [Metadata of the SP will offer this info]',
+ 'wantAssertionsEncrypted' => 'Indicates a requirement for the elements received by this SP to be encrypted.',
+ 'wantNameId' => ' Indicates a requirement for the NameID element on the SAMLResponse received by this SP to be present.',
+ 'wantNameIdEncrypted' => 'Indicates a requirement for the NameID received by this SP to be encrypted.',
+ 'wantXMLValidation' => 'Indicates if the SP will validate all received XMLs.',
+ ];
+ $generalSettings = [
+ 'uid_mapping' => [
+ 'text' => 'Attribute to map the UID to.',
+ 'type' => 'line',
+ 'required' => true,
+ ],
+ 'require_provisioned_account' => [
+ 'text' => 'Only allow authentication if an account is existent on some other backend. (e.g. LDAP)',
+ 'type' => 'checkbox',
+ ],
+ 'use_saml_auth_for_desktop' => [
+ 'text' => 'Use SAML auth for the Nextcloud desktop clients (requires user re-authentication)',
+ 'type' => 'checkbox',
+ ],
+ ];
+
+ $params = [
+ 'sp' => $serviceProviderFields,
+ 'security-offer' => $securityOfferFields,
+ 'security-required' => $securityRequiredFields,
+ 'general' => $generalSettings,
+ ];
+
+ $expected = new TemplateResponse('user_saml', 'admin', $params);
+ $this->assertEquals($expected, $this->admin->getForm());
+ }
+
+ public function testGetSection() {
+ $this->assertSame('saml', $this->admin->getSection());
+ }
+
+ public function testGetPriority() {
+ $this->assertSame(0, $this->admin->getPriority());
+ }
+}