]> source.dussan.org Git - nextcloud-server.git/commitdiff
add integration test for uuid attr detection
authorArthur Schiwon <blizzz@arthur-schiwon.de>
Fri, 17 Feb 2017 11:05:51 +0000 (12:05 +0100)
committerArthur Schiwon <blizzz@arthur-schiwon.de>
Fri, 17 Feb 2017 11:05:51 +0000 (12:05 +0100)
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
apps/user_ldap/lib/Connection.php
apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php [new file with mode: 0644]

index becd39205bca8c6fd3bfaf17c7ac2b94f5d6045b..04f8c7401e206ea4b9b9d3d7a8ce35218dcc73fb 100644 (file)
@@ -47,6 +47,8 @@ use OC\ServerNotAvailableException;
  * @property string[] ldapBaseUsers
  * @property int|string ldapPagingSize holds an integer
  * @property bool|mixed|void ldapGroupMemberAssocAttr
+ * @property string ldapUuidUserAttribute
+ * @property string ldapUuidGroupAttribute
  */
 class Connection extends LDAPUtility {
        private $ldapConnectionRes = null;
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
new file mode 100644 (file)
index 0000000..55b2eab
--- /dev/null
@@ -0,0 +1,86 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ *
+ * @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\Integration\Lib;
+
+use OCA\User_LDAP\Group_LDAP;
+use OCA\User_LDAP\Mapping\GroupMapping;
+use OCA\User_LDAP\Mapping\UserMapping;
+use OCA\User_LDAP\Tests\Integration\AbstractIntegrationTest;
+use OCA\User_LDAP\User_LDAP;
+
+require_once __DIR__ . '/../Bootstrap.php';
+
+class IntegrationTestAttributeDetection extends AbstractIntegrationTest {
+       public function init() {
+               require(__DIR__ . '/../setup-scripts/createExplicitUsers.php');
+               require(__DIR__ . '/../setup-scripts/createExplicitGroups.php');
+
+               parent::init();
+
+               $this->connection->setConfiguration(['ldapGroupFilter' => 'objectClass=groupOfNames']);
+               $this->connection->setConfiguration(['ldapGroupMemberAssocAttr' => 'member']);
+
+               $userMapper = new UserMapping(\OC::$server->getDatabaseConnection());
+               $userMapper->clear();
+               $this->access->setUserMapper($userMapper);
+
+               $groupMapper = new GroupMapping(\OC::$server->getDatabaseConnection());
+               $groupMapper->clear();
+               $this->access->setGroupMapper($groupMapper);
+
+               $userBackend = new User_LDAP($this->access, \OC::$server->getConfig());
+               $userManager = \OC::$server->getUserManager();
+               $userManager->clearBackends();
+               $userManager->registerBackend($userBackend);
+
+               $groupBackend = new Group_LDAP($this->access);
+               $groupManger = \OC::$server->getGroupManager();
+               $groupManger->clearBackends();
+               $groupManger->addBackend($groupBackend);
+       }
+
+       protected function caseNativeUUIDAttributeUsers() {
+               // trigger importing of users which also triggers UUID attribute detection
+               \OC::$server->getUserManager()->search('', 5, 0);
+               return $this->connection->ldapUuidUserAttribute === 'entryuuid';
+       }
+
+       protected function caseNativeUUIDAttributeGroups() {
+               // essentially the same as 'caseNativeUUIDAttributeUsers', code paths
+               // are similar, but we take no chances.
+
+               // trigger importing of users which also triggers UUID attribute detection
+               \OC::$server->getGroupManager()->search('', 5, 0);
+               return $this->connection->ldapUuidGroupAttribute === 'entryuuid';
+       }
+}
+
+/** @var string $host */
+/** @var int $port */
+/** @var string $adn */
+/** @var string $apwd */
+/** @var string $bdn */
+$test = new IntegrationTestAttributeDetection($host, $port, $adn, $apwd, $bdn);
+$test->init();
+$test->run();