Commit 0e48fc4e authored by Dries's avatar Dries
Browse files

- Patch #668150 by mfb: fxed theme_item_list() when used with nested lists.

parent e174039d
......@@ -1926,7 +1926,8 @@ function theme_item_list($variables) {
$data = $item;
}
if (count($children) > 0) {
$data .= theme_item_list($children, NULL, $type, $attributes); // Render nested list
// Render nested list.
$data .= theme_item_list(array('items' => $children, 'title' => NULL, 'type' => $type, 'attributes' => $attributes));
}
if ($i == 0) {
$attributes['class'][] = 'first';
......
......@@ -93,3 +93,31 @@ class ThemeTableUnitTest extends DrupalWebTestCase {
drupal_static_reset('drupal_add_js');
}
}
/**
* Unit tests for theme_item_list().
*/
class ThemeItemListUnitTest extends DrupalWebTestCase {
public static function getInfo() {
return array(
'name' => 'Theme item list',
'description' => 'Test the theme_item_list() function.',
'group' => 'Theme',
);
}
/**
* Test nested list rendering.
*/
function testNestedList() {
$items = array('a', array('data' => 'b', 'children' => array('c', 'd')), 'e');
$expected = '<div class="item-list"><ul><li class="first">a</li>
<li>b<div class="item-list"><ul><li class="first">c</li>
<li class="last">d</li>
</ul></div></li>
<li class="last">e</li>
</ul></div>';
$output = theme('item_list', array('items' => $items, 'type' => 'ul', 'title' => NULL, 'attributes' => array()));
$this->assertIdentical($expected, $output, 'Nested list is rendered correctly.');
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment