diff options
Diffstat (limited to 'engine/tests/api')
| -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(); -	} -} | 
