diff options
Diffstat (limited to 'engine/tests')
-rw-r--r-- | engine/tests/api/access_collections.php | 260 |
1 files changed, 0 insertions, 260 deletions
diff --git a/engine/tests/api/access_collections.php b/engine/tests/api/access_collections.php deleted file mode 100644 index d81589cc1..000000000 --- a/engine/tests/api/access_collections.php +++ /dev/null @@ -1,260 +0,0 @@ -<?php -/** - * Access Collections tests - * - * @package Elgg - * @subpackage Test - */ -class ElggCoreAccessCollectionsTest extends ElggCoreUnitTest { - - /** - * Called before each test object. - */ - public function __construct() { - parent::__construct(); - - $this->dbPrefix = get_config("dbprefix"); - - $user = new ElggUser(); - $user->username = 'test_user_' . rand(); - $user->email = 'fake_email@fake.com' . rand(); - $user->name = 'fake user'; - $user->access_id = ACCESS_PUBLIC; - $user->salt = generate_random_cleartext_password(); - $user->password = generate_user_password($user, rand()); - $user->owner_guid = 0; - $user->container_guid = 0; - $user->save(); - - $this->user = $user; - } - - /** - * Called before each test method. - */ - public function setUp() { - - } - - /** - * Called after each test method. - */ - public function tearDown() { - // do not allow SimpleTest to interpret Elgg notices as exceptions - $this->swallowErrors(); - } - - /** - * Called after each test object. - */ - public function __destruct() { - // all __destruct() code should go above here - $this->user->delete(); - parent::__destruct(); - } - - public function testCreateGetDeleteACL() { - global $DB_QUERY_CACHE; - - $acl_name = 'test access collection'; - $acl_id = create_access_collection($acl_name); - - $this->assertTrue(is_int($acl_id)); - - $q = "SELECT * FROM {$this->dbPrefix}access_collections WHERE id = $acl_id"; - $acl = get_data_row($q); - - $this->assertEqual($acl->id, $acl_id); - - if ($acl) { - $DB_QUERY_CACHE = array(); - - $this->assertEqual($acl->name, $acl_name); - - $result = delete_access_collection($acl_id); - $this->assertTrue($result); - - $q = "SELECT * FROM {$this->dbPrefix}access_collections WHERE id = $acl_id"; - $data = get_data($q); - $this->assertFalse($data); - } - } - - public function testAddRemoveUserToACL() { - $acl_id = create_access_collection('test acl'); - - $result = add_user_to_access_collection($this->user->guid, $acl_id); - $this->assertTrue($result); - - if ($result) { - $result = remove_user_from_access_collection($this->user->guid, $acl_id); - $this->assertTrue($result); - } - - delete_access_collection($acl_id); - } - - public function testUpdateACL() { - // another fake user to test with - $user = new ElggUser(); - $user->username = 'test_user_' . rand(); - $user->email = 'fake_email@fake.com' . rand(); - $user->name = 'fake user'; - $user->access_id = ACCESS_PUBLIC; - $user->salt = generate_random_cleartext_password(); - $user->password = generate_user_password($user, rand()); - $user->owner_guid = 0; - $user->container_guid = 0; - $user->save(); - - $acl_id = create_access_collection('test acl'); - - $member_lists = array( - // adding - array( - $this->user->guid, - $user->guid - ), - // removing one, keeping one. - array( - $user->guid - ), - // removing one, adding one - array( - $this->user->guid, - ), - // removing all. - array() - ); - - foreach ($member_lists as $members) { - $result = update_access_collection($acl_id, $members); - $this->assertTrue($result); - - if ($result) { - $q = "SELECT * FROM {$this->dbPrefix}access_collection_membership - WHERE access_collection_id = $acl_id"; - $data = get_data($q); - - if (count($members) == 0) { - $this->assertFalse($data); - } else { - $this->assertEqual(count($members), count($data)); - } - foreach ($data as $row) { - $this->assertTrue(in_array($row->user_guid, $members)); - } - } - } - - delete_access_collection($acl_id); - $user->delete(); - } - - public function testCanEditACL() { - $acl_id = create_access_collection('test acl', $this->user->guid); - - // should be true since it's the owner - $result = can_edit_access_collection($acl_id, $this->user->guid); - $this->assertTrue($result); - - // should be true since IA is on. - $ia = elgg_set_ignore_access(true); - $result = can_edit_access_collection($acl_id); - $this->assertTrue($result); - elgg_set_ignore_access($ia); - - // should be false since IA is off - $ia = elgg_set_ignore_access(false); - $result = can_edit_access_collection($acl_id); - $this->assertFalse($result); - elgg_set_ignore_access($ia); - - delete_access_collection($acl_id); - } - - public function testCanEditACLHook() { - // if only we supported closures! - global $acl_test_info; - - $acl_id = create_access_collection('test acl'); - - $acl_test_info = array( - 'acl_id' => $acl_id, - 'user' => $this->user - ); - - function test_acl_access_hook($hook, $type, $value, $params) { - global $acl_test_info; - if ($params['user_id'] == $acl_test_info['user']->guid) { - $acl = get_access_collection($acl_test_info['acl_id']); - $value[$acl->id] = $acl->name; - } - - return $value; - } - - register_plugin_hook('access:collections:write', 'all', 'test_acl_access_hook'); - - // enable security since we usually run as admin - $ia = elgg_set_ignore_access(false); - $result = can_edit_access_collection($acl_id, $this->user->guid); - $this->assertTrue($result); - $ia = elgg_set_ignore_access($ia); - - unregister_plugin_hook('access:collections:write', 'all', 'test_acl_access_hook'); - } - - // groups interface - // only runs if the groups plugin is enabled because implementation is split between - // core and the plugin. - public function testCreateDeleteGroupACL() { - if (!is_plugin_enabled('groups')) { - return; - } - - $group = new ElggGroup(); - $group->name = 'Test group'; - $group->save(); - $acl = get_access_collection($group->group_acl); - - // ACLs are owned by groups - $this->assertEqual($acl->owner_guid, $group->guid); - - // removing group and acl - $this->assertTrue($group->delete()); - - $acl = get_access_collection($group->group_acl); - $this->assertFalse($acl); - - $group->delete(); - } - - public function testJoinLeaveGroupACL() { - if (!is_plugin_enabled('groups')) { - return; - } - - $group = new ElggGroup(); - $group->name = 'Test group'; - $group->save(); - - $result = $group->join($this->user); - $this->assertTrue($result); - - if ($result) { - $can_edit = can_edit_access_collection($group->group_acl, $this->user->guid); - $this->assertTrue($can_edit); - } - - $result = $group->leave($this->user); - $this->assertTrue($result); - - if ($result) { - $can_edit = can_edit_access_collection($group->group_acl, $this->user->guid); - $this->assertFalse($can_edit); - } - - $group->delete(); - } -} |