summaryrefslogtreecommitdiff
path: root/modules/simpletest
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2009-09-11 01:28:34 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2009-09-11 01:28:34 +0000
commit38502757b9a1c398d4a25b8cd559474ed1426456 (patch)
tree20152a0889eb87fe3121a2c2000a873795aad953 /modules/simpletest
parent0a5c95af4391595c94aa4f61b3eac6af602652f9 (diff)
downloadbrdo-38502757b9a1c398d4a25b8cd559474ed1426456.tar.gz
brdo-38502757b9a1c398d4a25b8cd559474ed1426456.tar.bz2
#566094 by Arancaytar and smk-ka: Fixed hierarchy generation in menu_tree_data().
Diffstat (limited to 'modules/simpletest')
-rw-r--r--modules/simpletest/tests/menu.test56
1 files changed, 56 insertions, 0 deletions
diff --git a/modules/simpletest/tests/menu.test b/modules/simpletest/tests/menu.test
index f373eb8f1..889d877d3 100644
--- a/modules/simpletest/tests/menu.test
+++ b/modules/simpletest/tests/menu.test
@@ -171,3 +171,59 @@ class MenuRebuildTestCase extends DrupalWebTestCase {
}
}
+
+/**
+ * Menu tree data related tests.
+ */
+class MenuTreeDataTestCase extends DrupalUnitTestCase {
+ /**
+ * Dummy link structure acceptable for menu_tree_data().
+ */
+ var $links = array(
+ 1 => array('mlid' => 1, 'depth' => 1),
+ 2 => array('mlid' => 2, 'depth' => 1),
+ 3 => array('mlid' => 3, 'depth' => 2),
+ 4 => array('mlid' => 4, 'depth' => 3),
+ 5 => array('mlid' => 5, 'depth' => 1),
+ );
+
+ public static function getInfo() {
+ return array(
+ 'name' => 'Menu tree generation',
+ 'description' => 'Tests recursive menu tree generation functions.',
+ 'group' => 'Menu',
+ );
+ }
+
+ /**
+ * Validate the generation of a proper menu tree hierarchy.
+ */
+ function testMenuTreeData() {
+ $tree = menu_tree_data($this->links);
+
+ // Validate that parent items #1, #2, and #5 exist on the root level.
+ $this->assertSameLink($this->links[1], $tree[1]['link'], t('Parent item #1 exists.'));
+ $this->assertSameLink($this->links[2], $tree[2]['link'], t('Parent item #2 exists.'));
+ $this->assertSameLink($this->links[5], $tree[5]['link'], t('Parent item #5 exists.'));
+
+ // Validate that child item #4 exists at the correct location in the hierarchy.
+ $this->assertSameLink($this->links[4], $tree[2]['below'][3]['below'][4]['link'], t('Child item #4 exists in the hierarchy.'));
+ }
+
+ /**
+ * Check that two menu links are the same by comparing the mlid.
+ *
+ * @param $link1
+ * A menu link item.
+ * @param $link2
+ * A menu link item.
+ * @param $message
+ * The message to display along with the assertion.
+ * @return
+ * TRUE if the assertion succeeded, FALSE otherwise.
+ */
+ protected function assertSameLink($link1, $link2, $message = '') {
+ return $this->assert($link1['mlid'] == $link2['mlid'], $message ? $message : t('First link is identical to second link'));
+ }
+}
+