diff options
| author | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-10 22:03:58 +0000 | 
|---|---|---|
| committer | brettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2010-03-10 22:03:58 +0000 | 
| commit | 8f0161a9d382b5610326576a6f572d0beb8c3e03 (patch) | |
| tree | f235dd5844b588fc0e1e12752818cea80fbaf566 | |
| parent | 9fa4cfbd1235a21803931aa58e7a650ad398e5fb (diff) | |
| download | elgg-8f0161a9d382b5610326576a6f572d0beb8c3e03.tar.gz elgg-8f0161a9d382b5610326576a6f572d0beb8c3e03.tar.bz2 | |
Added elgg_instanceof().
git-svn-id: http://code.elgg.org/elgg/trunk@5353 36083f99-b078-4883-b0ff-0f9b5a30f544
| -rw-r--r-- | CHANGES.txt | 8 | ||||
| -rw-r--r-- | engine/lib/elgglib.php | 3 | ||||
| -rw-r--r-- | engine/lib/entities.php | 22 | ||||
| -rw-r--r-- | engine/tests/api/helpers.php | 67 | 
4 files changed, 99 insertions, 1 deletions
| diff --git a/CHANGES.txt b/CHANGES.txt index 574d1effd..8e0af58b3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,11 @@ +Version 1.8.0 +(??? from http://code.elgg.org/branches/1.8/) + + API changes: +  * added elgg_instanceof(). + + +  Version 1.7.0  (March 2, 2010 from http://code.elgg.org/elgg/trunk/) diff --git a/engine/lib/elgglib.php b/engine/lib/elgglib.php index 3c95ef2be..42d6ffc6f 100644 --- a/engine/lib/elgglib.php +++ b/engine/lib/elgglib.php @@ -2757,6 +2757,7 @@ function elgg_boot() {  function elgg_api_test($hook, $type, $value, $params) {  	global $CONFIG;  	$value[] = $CONFIG->path . 'engine/tests/api/entity_getter_functions.php'; +	$value[] = $CONFIG->path . 'engine/tests/api/helpers.php';  	$value[] = $CONFIG->path . 'engine/tests/regression/trac_bugs.php';  	return $value;  } @@ -2775,4 +2776,4 @@ define('ELGG_ENTITIES_NO_VALUE', 0);  register_elgg_event_handler('init', 'system', 'elgg_init');  register_elgg_event_handler('boot', 'system', 'elgg_boot', 1000); -register_plugin_hook('unit_test', 'system', 'elgg_api_test'); +register_plugin_hook('unit_test', 'system', 'elgg_api_test');
\ No newline at end of file diff --git a/engine/lib/entities.php b/engine/lib/entities.php index af5b140d9..17bc0aa1e 100644 --- a/engine/lib/entities.php +++ b/engine/lib/entities.php @@ -3631,6 +3631,28 @@ function recursive_delete_permissions_check($hook, $entity_type, $returnvalue, $  }  /** + * Checks if $entity is an ElggEntity and optionally for type and subtype. + * + * @param $entity + * @param $type + * @param $subtype + * @return Bool + */ +function elgg_instanceof($entity, $type = NULL, $subtype = NULL) { +	$return = ($entity instanceof ElggEntity); + +	if ($type) { +		$return = $return && ($entity->getType() == $type); +	} + +	if ($subtype) { +		$return = $return && ($entity->getSubtype() == $subtype); +	} + +	return $return; +} + +/**   * Garbage collect stub and fragments from any broken delete/create calls   *   * @param unknown_type $hook diff --git a/engine/tests/api/helpers.php b/engine/tests/api/helpers.php new file mode 100644 index 000000000..a2152a0ef --- /dev/null +++ b/engine/tests/api/helpers.php @@ -0,0 +1,67 @@ +<?php +/** + * Elgg Test helper functions + * + * + * @package Elgg + * @subpackage Test + * @author Curverider Ltd + * @link http://elgg.org/ + */ +class ElggCoreHelpersTest extends ElggCoreUnitTest { + +	/** +	 * Called before each test object. +	 */ +	public function __construct() { +		parent::__construct(); +	} + +	/** +	 * 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 +		parent::__destruct(); +	} + +	/** +	 * Test elgg_instanceof() +	 * @return unknown_type +	 */ +	public function testElggInstanceOf() { +		$entity = new ElggObject(); +		$entity->subtype = 'test_subtype'; +		$entity->save(); + +		$this->assertTrue(elgg_instanceof($entity)); +		$this->assertTrue(elgg_instanceof($entity, 'object')); +		$this->assertTrue(elgg_instanceof($entity, 'object', 'test_subtype')); + +		$this->assertFalse(elgg_instanceof($entity, 'object', 'invalid_subtype')); +		$this->assertFalse(elgg_instanceof($entity, 'user', 'test_subtype')); + +		$entity->delete(); + +		$bad_entity = FALSE; +		$this->assertFalse(elgg_instanceof($bad_entity)); +		$this->assertFalse(elgg_instanceof($bad_entity, 'object')); +		$this->assertFalse(elgg_instanceof($bad_entity, 'object', 'test_subtype')); + +	} +} | 
