aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorThomas Müller <DeepDiver1975@users.noreply.github.com>2016-04-20 11:55:00 +0200
committerThomas Müller <DeepDiver1975@users.noreply.github.com>2016-04-20 11:55:00 +0200
commitaa33ab0c03c1e26dfb866b23c68279ffd47fd6f0 (patch)
tree480dc4d392cba2c19d4c24330535509712b479e1 /tests
parenta6676f31ec3360b5ec95ed96fe4c53ba78e7ce0b (diff)
parentdd7e0d13e55ba9a150237ac2f4d0ba03955a9855 (diff)
downloadnextcloud-server-aa33ab0c03c1e26dfb866b23c68279ffd47fd6f0.tar.gz
nextcloud-server-aa33ab0c03c1e26dfb866b23c68279ffd47fd6f0.zip
Merge pull request #24094 from owncloud/move_dummy_group_backend_to_test
Move the group dummy backend to test
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/group.php16
-rw-r--r--tests/lib/group/dummy.php2
-rw-r--r--tests/lib/group/manager.php2
-rw-r--r--tests/lib/share/share.php2
-rw-r--r--tests/lib/util/group/dummy.php217
5 files changed, 228 insertions, 11 deletions
diff --git a/tests/lib/group.php b/tests/lib/group.php
index 4bb888ed725..d3ac6d8d69e 100644
--- a/tests/lib/group.php
+++ b/tests/lib/group.php
@@ -32,7 +32,7 @@ class Test_Group extends \Test\TestCase {
public function testSingleBackend() {
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$group1 = $this->getUniqueID();
$group2 = $this->getUniqueID();
@@ -72,7 +72,7 @@ class Test_Group extends \Test\TestCase {
public function testNoEmptyGIDs() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$emptyGroup = null;
$this->assertFalse(OC_Group::createGroup($emptyGroup));
@@ -80,7 +80,7 @@ class Test_Group extends \Test\TestCase {
public function testNoGroupsTwice() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$group = $this->getUniqueID();
OC_Group::createGroup($group);
@@ -92,7 +92,7 @@ class Test_Group extends \Test\TestCase {
public function testDontDeleteAdminGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$adminGroup = 'admin';
OC_Group::createGroup($adminGroup);
@@ -102,7 +102,7 @@ class Test_Group extends \Test\TestCase {
public function testDontAddUserToNonexistentGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$groupNonExistent = 'notExistent';
$user = $this->getUniqueID();
@@ -111,7 +111,7 @@ class Test_Group extends \Test\TestCase {
}
public function testUsersInGroup() {
- OC_Group::useBackend(new OC_Group_Dummy());
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
@@ -143,8 +143,8 @@ class Test_Group extends \Test\TestCase {
public function testMultiBackend() {
$userBackend = new \Test\Util\User\Dummy();
\OC::$server->getUserManager()->registerBackend($userBackend);
- $backend1 = new OC_Group_Dummy();
- $backend2 = new OC_Group_Dummy();
+ $backend1 = new \Test\Util\Group\Dummy();
+ $backend2 = new \Test\Util\Group\Dummy();
OC_Group::useBackend($backend1);
OC_Group::useBackend($backend2);
diff --git a/tests/lib/group/dummy.php b/tests/lib/group/dummy.php
index 6836f89d3fe..eaa299c39af 100644
--- a/tests/lib/group/dummy.php
+++ b/tests/lib/group/dummy.php
@@ -28,6 +28,6 @@
class Test_Group_Dummy extends Test_Group_Backend {
protected function setUp() {
parent::setUp();
- $this->backend=new OC_Group_Dummy();
+ $this->backend=new \Test\Util\Group\Dummy();
}
}
diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php
index 6cf473b9156..410e11114c4 100644
--- a/tests/lib/group/manager.php
+++ b/tests/lib/group/manager.php
@@ -65,7 +65,7 @@ class Manager extends \Test\TestCase {
}
public function testGetDeleted() {
- $backend = new \OC_Group_Dummy();
+ $backend = new \Test\Util\Group\Dummy();
$backend->createGroup('group1');
/**
diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php
index 1965d80c580..a07e90effc3 100644
--- a/tests/lib/share/share.php
+++ b/tests/lib/share/share.php
@@ -63,7 +63,7 @@ class Test_Share extends \Test\TestCase {
\OC::$server->getUserManager()->createUser($this->groupAndUser, 'pass');
OC_User::setUserId($this->user1);
OC_Group::clearBackends();
- OC_Group::useBackend(new OC_Group_Dummy);
+ OC_Group::useBackend(new \Test\Util\Group\Dummy());
$this->group1 = $this->getUniqueID('group1_');
$this->group2 = $this->getUniqueID('group2_');
OC_Group::createGroup($this->group1);
diff --git a/tests/lib/util/group/dummy.php b/tests/lib/util/group/dummy.php
new file mode 100644
index 00000000000..e72be827d8a
--- /dev/null
+++ b/tests/lib/util/group/dummy.php
@@ -0,0 +1,217 @@
+<?php
+/**
+ * @author Arthur Schiwon <blizzz@owncloud.com>
+ * @author Felix Moeller <mail@felixmoeller.de>
+ * @author Lukas Reschke <lukas@owncloud.com>
+ * @author Michael Gapczynski <GapczynskiM@gmail.com>
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Robin Appelman <icewind@owncloud.com>
+ * @author Robin McCorkell <robin@mccorkell.me.uk>
+ * @author Roeland Jago Douma <rullzer@owncloud.com>
+ * @author Thomas Müller <thomas.mueller@tmit.eu>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace Test\Util\Group;
+
+use OC_Group_Backend;
+
+/**
+ * dummy group backend, does not keep state, only for testing use
+ */
+class Dummy extends OC_Group_Backend {
+ private $groups=array();
+ /**
+ * Try to create a new group
+ * @param string $gid The name of the group to create
+ * @return bool
+ *
+ * Tries to create a new group. If the group name already exists, false will
+ * be returned.
+ */
+ public function createGroup($gid) {
+ if(!isset($this->groups[$gid])) {
+ $this->groups[$gid]=array();
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * delete a group
+ * @param string $gid gid of the group to delete
+ * @return bool
+ *
+ * Deletes a group and removes it from the group_user-table
+ */
+ public function deleteGroup($gid) {
+ if(isset($this->groups[$gid])) {
+ unset($this->groups[$gid]);
+ return true;
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * is user in group?
+ * @param string $uid uid of the user
+ * @param string $gid gid of the group
+ * @return bool
+ *
+ * Checks whether the user is member of a group or not.
+ */
+ public function inGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ return (array_search($uid, $this->groups[$gid])!==false);
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Add a user to a group
+ * @param string $uid Name of the user to add to group
+ * @param string $gid Name of the group in which add the user
+ * @return bool
+ *
+ * Adds a user to a group.
+ */
+ public function addToGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ if(array_search($uid, $this->groups[$gid])===false) {
+ $this->groups[$gid][]=$uid;
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Removes a user from a group
+ * @param string $uid Name of the user to remove from group
+ * @param string $gid Name of the group from which remove the user
+ * @return bool
+ *
+ * removes the user from a group.
+ */
+ public function removeFromGroup($uid, $gid) {
+ if(isset($this->groups[$gid])) {
+ if(($index=array_search($uid, $this->groups[$gid]))!==false) {
+ unset($this->groups[$gid][$index]);
+ return true;
+ }else{
+ return false;
+ }
+ }else{
+ return false;
+ }
+ }
+
+ /**
+ * Get all groups a user belongs to
+ * @param string $uid Name of the user
+ * @return array an array of group names
+ *
+ * This function fetches all groups a user belongs to. It does not check
+ * if the user exists at all.
+ */
+ public function getUserGroups($uid) {
+ $groups=array();
+ $allGroups=array_keys($this->groups);
+ foreach($allGroups as $group) {
+ if($this->inGroup($uid, $group)) {
+ $groups[]=$group;
+ }
+ }
+ return $groups;
+ }
+
+ /**
+ * Get a list of all groups
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return array an array of group names
+ */
+ public function getGroups($search = '', $limit = -1, $offset = 0) {
+ if(empty($search)) {
+ return array_keys($this->groups);
+ }
+ $result = array();
+ foreach(array_keys($this->groups) as $group) {
+ if(stripos($group, $search) !== false) {
+ $result[] = $group;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * Get a list of all users in a group
+ * @param string $gid
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return array an array of user IDs
+ */
+ public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+ if(isset($this->groups[$gid])) {
+ if(empty($search)) {
+ return $this->groups[$gid];
+ }
+ $result = array();
+ foreach($this->groups[$gid] as $user) {
+ if(stripos($user, $search) !== false) {
+ $result[] = $user;
+ }
+ }
+ return $result;
+ }else{
+ return array();
+ }
+ }
+
+ /**
+ * get the number of all users in a group
+ * @param string $gid
+ * @param string $search
+ * @param int $limit
+ * @param int $offset
+ * @return int
+ */
+ public function countUsersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
+ if(isset($this->groups[$gid])) {
+ if(empty($search)) {
+ return count($this->groups[$gid]);
+ }
+ $count = 0;
+ foreach($this->groups[$gid] as $user) {
+ if(stripos($user, $search) !== false) {
+ $count++;
+ }
+ }
+ return $count;
+ }
+ }
+
+}