diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/lib/annotations.php | 10 | ||||
| -rw-r--r-- | engine/tests/objects/entities.php | 10 | 
2 files changed, 19 insertions, 1 deletions
| diff --git a/engine/lib/annotations.php b/engine/lib/annotations.php index 31c83fb8c..a956a95cc 100644 --- a/engine/lib/annotations.php +++ b/engine/lib/annotations.php @@ -297,8 +297,16 @@ $value = "", $owner_guid = 0, $limit = 10, $offset = 0, $order_by = "asc", $time  	} else {  		$entity_guid = (int)$entity_guid;  	} +	  	$entity_type = sanitise_string($entity_type); -	$entity_subtype = get_subtype_id($entity_type, $entity_subtype); +	 +	if ($entity_subtype) { +		if (!$entity_subtype = get_subtype_id($entity_type, $entity_subtype)) { +			// requesting a non-existing subtype: return false +			return FALSE; +		} +	} +	  	if ($name) {  		$name = get_metastring_id($name); diff --git a/engine/tests/objects/entities.php b/engine/tests/objects/entities.php index 1504c2f93..eb6eee2a3 100644 --- a/engine/tests/objects/entities.php +++ b/engine/tests/objects/entities.php @@ -109,16 +109,26 @@ class ElggCoreEntityTest extends ElggCoreUnitTest {  		$this->assertTrue(array_key_exists('non_existent', $this->entity->expose_annotations()));  		// save entity and check for annotation +		$this->entity->subtype = 'testing';  		$this->save_entity();  		$this->assertFalse(array_key_exists('non_existent', $this->entity->expose_annotations()));  		$annotations = $this->entity->getAnnotations('non_existent');  		$this->assertIsA($annotations[0], 'ElggAnnotation');  		$this->assertIdentical($annotations[0]->name, 'non_existent');  		$this->assertEqual($this->entity->countAnnotations('non_existent'), 1); +		 +		$this->assertIdentical($annotations, get_annotations($this->entity->getGUID())); +		$this->assertIdentical($annotations, get_annotations($this->entity->getGUID(), 'site')); +		$this->assertIdentical($annotations, get_annotations($this->entity->getGUID(), 'site', 'testing')); +		$this->assertIdentical(FALSE, get_annotations($this->entity->getGUID(), 'site', 'fail'));  		//  clear annotation  		$this->assertTrue($this->entity->clearAnnotations());  		$this->assertEqual($this->entity->countAnnotations('non_existent'), 0); +		 +		$this->assertIdentical(FALSE, get_annotations($this->entity->getGUID())); +		$this->assertIdentical(FALSE, get_annotations($this->entity->getGUID(), 'site')); +		$this->assertIdentical(FALSE, get_annotations($this->entity->getGUID(), 'site', 'testing'));  		// clean up  		$this->assertTrue($this->entity->delete()); | 
