diff options
Diffstat (limited to 'tests/lib/group/LegacyGroupTest.php')
-rw-r--r-- | tests/lib/group/LegacyGroupTest.php | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/tests/lib/group/LegacyGroupTest.php b/tests/lib/group/LegacyGroupTest.php new file mode 100644 index 00000000000..12bcfdddf15 --- /dev/null +++ b/tests/lib/group/LegacyGroupTest.php @@ -0,0 +1,202 @@ +<?php +/** + * ownCloud + * + * @author Robin Appelman + * @author Bernhard Posselt + * @copyright 2012 Robin Appelman <icewind@owncloud.com> + * @copyright 2012 Bernhard Posselt <dev@bernhard-posselt.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library 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 library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace Test\Group; + +use OC_Group; +use OC_User; + +class LegacyGroupTest extends \Test\TestCase { + protected function setUp() { + parent::setUp(); + OC_Group::clearBackends(); + OC_User::clearBackends(); + } + + public function testSingleBackend() { + $userBackend = new \Test\Util\User\Dummy(); + \OC::$server->getUserManager()->registerBackend($userBackend); + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + + $group1 = $this->getUniqueID(); + $group2 = $this->getUniqueID(); + OC_Group::createGroup($group1); + OC_Group::createGroup($group2); + + $user1 = $this->getUniqueID(); + $user2 = $this->getUniqueID(); + $userBackend->createUser($user1, ''); + $userBackend->createUser($user2, ''); + + $this->assertFalse(OC_Group::inGroup($user1, $group1), 'Asserting that user1 is not in group1'); + $this->assertFalse(OC_Group::inGroup($user2, $group1), 'Asserting that user2 is not in group1'); + $this->assertFalse(OC_Group::inGroup($user1, $group2), 'Asserting that user1 is not in group2'); + $this->assertFalse(OC_Group::inGroup($user2, $group2), 'Asserting that user2 is not in group2'); + + $this->assertTrue(OC_Group::addToGroup($user1, $group1)); + + $this->assertTrue(OC_Group::inGroup($user1, $group1), 'Asserting that user1 is in group1'); + $this->assertFalse(OC_Group::inGroup($user2, $group1), 'Asserting that user2 is not in group1'); + $this->assertFalse(OC_Group::inGroup($user1, $group2), 'Asserting that user1 is not in group2'); + $this->assertFalse(OC_Group::inGroup($user2, $group2), 'Asserting that user2 is not in group2'); + + $this->assertTrue(OC_Group::addToGroup($user1, $group1)); + + $this->assertEquals(array($user1), OC_Group::usersInGroup($group1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group2)); + + $this->assertEquals(array($group1), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user2)); + + OC_Group::deleteGroup($group1); + $this->assertEquals(array(), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group1)); + $this->assertFalse(OC_Group::inGroup($user1, $group1)); + } + + + public function testNoEmptyGIDs() { + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + $emptyGroup = null; + + $this->assertFalse(OC_Group::createGroup($emptyGroup)); + } + + + public function testNoGroupsTwice() { + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + $group = $this->getUniqueID(); + OC_Group::createGroup($group); + + $groupCopy = $group; + + OC_Group::createGroup($groupCopy); + $this->assertEquals(array($group), OC_Group::getGroups()); + } + + + public function testDontDeleteAdminGroup() { + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + $adminGroup = 'admin'; + OC_Group::createGroup($adminGroup); + + $this->assertFalse(OC_Group::deleteGroup($adminGroup)); + $this->assertEquals(array($adminGroup), OC_Group::getGroups()); + } + + + public function testDontAddUserToNonexistentGroup() { + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + $groupNonExistent = 'notExistent'; + $user = $this->getUniqueID(); + + $this->assertEquals(false, OC_Group::addToGroup($user, $groupNonExistent)); + $this->assertEquals(array(), OC_Group::getGroups()); + } + + public function testUsersInGroup() { + OC_Group::useBackend(new \Test\Util\Group\Dummy()); + $userBackend = new \Test\Util\User\Dummy(); + \OC::$server->getUserManager()->registerBackend($userBackend); + + $group1 = $this->getUniqueID(); + $group2 = $this->getUniqueID(); + $group3 = $this->getUniqueID(); + $user1 = $this->getUniqueID(); + $user2 = $this->getUniqueID(); + $user3 = $this->getUniqueID(); + OC_Group::createGroup($group1); + OC_Group::createGroup($group2); + OC_Group::createGroup($group3); + + $userBackend->createUser($user1, ''); + $userBackend->createUser($user2, ''); + $userBackend->createUser($user3, ''); + + OC_Group::addToGroup($user1, $group1); + OC_Group::addToGroup($user2, $group1); + OC_Group::addToGroup($user3, $group1); + OC_Group::addToGroup($user3, $group2); + + $this->assertEquals(array($user1, $user2, $user3), + OC_Group::usersInGroups(array($group1, $group2, $group3))); + + // FIXME: needs more parameter variation + } + + public function testMultiBackend() { + $userBackend = new \Test\Util\User\Dummy(); + \OC::$server->getUserManager()->registerBackend($userBackend); + $backend1 = new \Test\Util\Group\Dummy(); + $backend2 = new \Test\Util\Group\Dummy(); + OC_Group::useBackend($backend1); + OC_Group::useBackend($backend2); + + $group1 = $this->getUniqueID(); + $group2 = $this->getUniqueID(); + OC_Group::createGroup($group1); + + //groups should be added to the first registered backend + $this->assertEquals(array($group1), $backend1->getGroups()); + $this->assertEquals(array(), $backend2->getGroups()); + + $this->assertEquals(array($group1), OC_Group::getGroups()); + $this->assertTrue(OC_Group::groupExists($group1)); + $this->assertFalse(OC_Group::groupExists($group2)); + + $backend1->createGroup($group2); + + $this->assertEquals(array($group1, $group2), OC_Group::getGroups()); + $this->assertTrue(OC_Group::groupExists($group1)); + $this->assertTrue(OC_Group::groupExists($group2)); + + $user1 = $this->getUniqueID(); + $user2 = $this->getUniqueID(); + + $userBackend->createUser($user1, ''); + $userBackend->createUser($user2, ''); + + $this->assertFalse(OC_Group::inGroup($user1, $group1)); + $this->assertFalse(OC_Group::inGroup($user2, $group1)); + + + $this->assertTrue(OC_Group::addToGroup($user1, $group1)); + + $this->assertTrue(OC_Group::inGroup($user1, $group1)); + $this->assertFalse(OC_Group::inGroup($user2, $group1)); + $this->assertFalse($backend2->inGroup($user1, $group1)); + + OC_Group::addToGroup($user1, $group1); + + $this->assertEquals(array($user1), OC_Group::usersInGroup($group1)); + + $this->assertEquals(array($group1), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user2)); + + OC_Group::deleteGroup($group1); + $this->assertEquals(array(), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group1)); + $this->assertFalse(OC_Group::inGroup($user1, $group1)); + } +} |