diff --git a/lib/group/group.php b/lib/group/group.php index d4036b4361b552746048b99d421264983e99788c..7a6393132475a489f779f87a167579de7331ceec 100644 --- a/lib/group/group.php +++ b/lib/group/group.php @@ -225,7 +225,7 @@ class Group { $this->emitter->emit('\OC\Group', 'preDelete', array($this)); } foreach ($this->backends as $backend) { - if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP) and $backend->groupExists($this->gid)) { + if ($backend->implementsActions(OC_GROUP_BACKEND_DELETE_GROUP)) { $result = true; $backend->deleteGroup($this->gid); } diff --git a/lib/group/manager.php b/lib/group/manager.php index 7efcff0ade0bd2b95441a14b887a1a213742191e..bf469d51d1248713aa06f5e1a69bcddbe8a0a07f 100644 --- a/lib/group/manager.php +++ b/lib/group/manager.php @@ -85,7 +85,13 @@ class Manager extends PublicEmitter { } protected function getGroupObject($gid) { - $this->cachedGroups[$gid] = new Group($gid, $this->backends, $this->userManager, $this); + $backends = array(); + foreach ($this->backends as $backend) { + if ($backend->groupExists($gid)) { + $backends[] = $backend; + } + } + $this->cachedGroups[$gid] = new Group($gid, $backends, $this->userManager, $this); return $this->cachedGroups[$gid]; } diff --git a/tests/lib/group/group.php b/tests/lib/group/group.php index 116aefda81c17b01e4d3a0f17fd33d0d881dcd52..75e975d9e6505bb60e3bb45248b545faac0afc94 100644 --- a/tests/lib/group/group.php +++ b/tests/lib/group/group.php @@ -307,10 +307,6 @@ class Group extends \PHPUnit_Framework_TestCase { $backend->expects($this->once()) ->method('deleteGroup') ->with('group1'); - $backend->expects($this->once()) - ->method('groupExists') - ->with('group1') - ->will($this->returnValue(true)); $backend->expects($this->any()) ->method('implementsActions') ->will($this->returnValue(true)); diff --git a/tests/lib/group/manager.php b/tests/lib/group/manager.php index 2ecaefc1406e1c66f417de25569671c56080619b..9d3adf51a0c8b9dff88b0c6d8ef35db2901a8173 100644 --- a/tests/lib/group/manager.php +++ b/tests/lib/group/manager.php @@ -17,7 +17,7 @@ class Manager extends \PHPUnit_Framework_TestCase { * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend */ $backend = $this->getMock('\OC_Group_Database'); - $backend->expects($this->once()) + $backend->expects($this->any()) ->method('groupExists') ->with('group1') ->will($this->returnValue(true)); @@ -85,7 +85,7 @@ class Manager extends \PHPUnit_Framework_TestCase { * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend1 */ $backend1 = $this->getMock('\OC_Group_Database'); - $backend1->expects($this->once()) + $backend1->expects($this->any()) ->method('groupExists') ->with('group1') ->will($this->returnValue(false)); @@ -94,7 +94,7 @@ class Manager extends \PHPUnit_Framework_TestCase { * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend2 */ $backend2 = $this->getMock('\OC_Group_Database'); - $backend2->expects($this->once()) + $backend2->expects($this->any()) ->method('groupExists') ->with('group1') ->will($this->returnValue(true)); @@ -117,7 +117,7 @@ class Manager extends \PHPUnit_Framework_TestCase { * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend */ $backend = $this->getMock('\OC_Group_Database'); - $backend->expects($this->once()) + $backend->expects($this->any()) ->method('groupExists') ->with('group1') ->will($this->returnValue(false)); @@ -143,7 +143,7 @@ class Manager extends \PHPUnit_Framework_TestCase { * @var \PHPUnit_Framework_MockObject_MockObject | \OC_Group_Backend $backend */ $backend = $this->getMock('\OC_Group_Database'); - $backend->expects($this->once()) + $backend->expects($this->any()) ->method('groupExists') ->with('group1') ->will($this->returnValue(true));