]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #5598: Properly update metadata cache in update_metadata()
authorSteve Clay <steve@mrclay.org>
Sun, 9 Jun 2013 02:12:12 +0000 (22:12 -0400)
committerSteve Clay <steve@mrclay.org>
Sun, 9 Jun 2013 02:12:12 +0000 (22:12 -0400)
engine/lib/metadata.php
engine/tests/api/metadata_cache.php

index 43f7d5d6ee0d37076bb8b8127800b68ce3cdd9ce..046b85124a8e9bd6af32095b54cf4f879a74abc2 100644 (file)
@@ -191,19 +191,19 @@ function update_metadata($id, $name, $value, $value_type, $owner_guid, $access_i
        }
 
        // Add the metastring
-       $value = add_metastring($value);
-       if (!$value) {
+       $value_id = add_metastring($value);
+       if (!$value_id) {
                return false;
        }
 
-       $name = add_metastring($name);
-       if (!$name) {
+       $name_id = add_metastring($name);
+       if (!$name_id) {
                return false;
        }
 
        // If ok then add it
        $query = "UPDATE {$CONFIG->dbprefix}metadata"
-               . " set name_id='$name', value_id='$value', value_type='$value_type', access_id=$access_id,"
+               . " set name_id='$name_id', value_id='$value_id', value_type='$value_type', access_id=$access_id,"
                . " owner_guid=$owner_guid where id=$id";
 
        $result = update_data($query);
index 846116a7b3e958ff2d7631111f24beba44ddc778..7fb3281694df0106f3cbc6ebdcb815a1e03de943 100644 (file)
@@ -166,4 +166,11 @@ class ElggCoreMetadataCacheTest extends ElggCoreUnitTest {
                $actual = $this->cache->filterMetadataHeavyEntities($guids, 6000);
                $this->assertIdentical($actual, $expected);
        }
+
+       public function testCreateMetadataInvalidates() {
+               $this->obj1->foo = 1;
+               create_metadata($this->guid1, 'foo', 2, '', elgg_get_logged_in_user_guid(), ACCESS_FRIENDS);
+
+               $this->assertEqual($this->obj1->foo, 2);
+       }
 }