summaryrefslogtreecommitdiffstats
path: root/apps/user_ldap/tests
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2017-02-17 12:05:51 +0100
committerArthur Schiwon <blizzz@arthur-schiwon.de>2017-02-17 12:05:51 +0100
commit45615cc940acce6ddab4c84b8f0fd38299125f37 (patch)
tree2d0933a20237f8970b69ad0f907234d85c56e916 /apps/user_ldap/tests
parentf87812fdd658c94c921c537d59eae3d2e424fff6 (diff)
downloadnextcloud-server-45615cc940acce6ddab4c84b8f0fd38299125f37.tar.gz
nextcloud-server-45615cc940acce6ddab4c84b8f0fd38299125f37.zip
add integration test for uuid attr detection
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'apps/user_ldap/tests')
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php86
1 files changed, 86 insertions, 0 deletions
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
new file mode 100644
index 00000000000..55b2eabedc2
--- /dev/null
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php
@@ -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();