diff --git a/lib/private/group/dummy.php b/lib/private/group/dummy.php
index e48c6a0e266ca2204e9f866d83112da9f2eff969..4af18b267bcf37a12476dfc0c73ab65bc1fbdc12 100644
--- a/lib/private/group/dummy.php
+++ b/lib/private/group/dummy.php
@@ -143,7 +143,16 @@ class OC_Group_Dummy extends OC_Group_Backend {
 	 * @return array an array of group names
 	 */
 	public function getGroups($search = '', $limit = -1, $offset = 0) {
-		return array_keys($this->groups);
+		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;
 	}
 
 	/**
@@ -156,7 +165,16 @@ class OC_Group_Dummy extends OC_Group_Backend {
 	 */
 	public function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		if(isset($this->groups[$gid])) {
-			return $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();
 		}
@@ -172,7 +190,16 @@ class OC_Group_Dummy extends OC_Group_Backend {
 	 */
 	public function countUsersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
 		if(isset($this->groups[$gid])) {
-			return count($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;
 		}
 	}
 
diff --git a/lib/private/user/dummy.php b/lib/private/user/dummy.php
index 776168048f6cfaacc6b7d95ea1d7945ee26b9909..1d20bd31119a80a1617e5c9aee9540d7edc2057c 100644
--- a/lib/private/user/dummy.php
+++ b/lib/private/user/dummy.php
@@ -105,7 +105,16 @@ class OC_User_Dummy extends OC_User_Backend {
 	 * Get a list of all users.
 	 */
 	public function getUsers($search = '', $limit = null, $offset = null) {
-		return array_keys($this->users);
+		if(empty($search)) {
+			return array_keys($this->users);
+		}
+		$result = array();
+		foreach($this->users as $user) {
+			if(stripos($user, $search) !== false) {
+				$result[] = $user;
+			}
+		}
+		return $result;
 	}
 
 	/**
diff --git a/tests/lib/group/backend.php b/tests/lib/group/backend.php
index 34442fa7bda2e95ecaeacf730b34bcc7123c1f51..95a5cf5f49ca351dcdebb7372b1b349db692ef3e 100644
--- a/tests/lib/group/backend.php
+++ b/tests/lib/group/backend.php
@@ -31,8 +31,12 @@ abstract class Test_Group_Backend extends PHPUnit_Framework_TestCase {
 	 * test cases can override this in order to clean up created groups
 	 * @return string
 	 */
-	public function getGroupName() {
-		return uniqid('test_');
+	public function getGroupName($name = null) {
+		if(is_null($name)) {
+			return uniqid('test_');
+		} else {
+			return $name;
+		}
 	}
 
 	/**