summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-05-07 16:24:33 +0000
committerDries Buytaert <dries@buytaert.net>2009-05-07 16:24:33 +0000
commit0ccac642b997dab993628bb187dd077388a7d146 (patch)
tree3f27d405c3ed8a5c09e31be9d9bdd26118736a47
parentf3526a344ef5cabc7080a132aa9fc3380574ae97 (diff)
downloadbrdo-0ccac642b997dab993628bb187dd077388a7d146.tar.gz
brdo-0ccac642b997dab993628bb187dd077388a7d146.tar.bz2
- Patch #409598 by pwolanin, swentel: fixed problem with content type descriptions not being updated.
-rw-r--r--includes/menu.inc8
-rw-r--r--modules/menu/menu.test6
2 files changed, 10 insertions, 4 deletions
diff --git a/includes/menu.inc b/includes/menu.inc
index d9d164c44..1e17b08a3 100644
--- a/includes/menu.inc
+++ b/includes/menu.inc
@@ -2197,10 +2197,10 @@ function menu_link_save(&$item) {
}
// If every value in $existing_item is the same in the $item, there is no
// reason to run the update queries or clear the caches. We use
- // array_diff_assoc() with the $existing_item as the first parameter
- // because $item has additional keys left over from the process of building
- // the router item.
- if (!$existing_item || array_diff_assoc($existing_item, $item)) {
+ // array_intersect_assoc() with the $item as the first parameter because
+ // $item may have additional keys left over from building a router entry.
+ // The intersect removes the extra keys, allowing a meaningful comparison.
+ if (!$existing_item || (array_intersect_assoc($item, $existing_item)) != $existing_item) {
db_update('menu_links')
->fields(array(
'menu_name' => $item['menu_name'],
diff --git a/modules/menu/menu.test b/modules/menu/menu.test
index 728955ed8..284f55541 100644
--- a/modules/menu/menu.test
+++ b/modules/menu/menu.test
@@ -61,6 +61,12 @@ class MenuTestCase extends DrupalWebTestCase {
$old_title = $item['link_title'];
$this->modifyMenuLink($item);
$item = menu_link_load($item['mlid']);
+ // Verify that a change to the description is saved.
+ $description = $this->randomName(16);
+ $item['options']['attributes']['title'] = $description;
+ menu_link_save($item);
+ $saved_item = menu_link_load($item['mlid']);
+ $this->assertEqual($description, $saved_item['options']['attributes']['title'], t('Saving an existing link updates the description (title attribute)'));
$this->resetMenuLink($item, $old_title);
}