def test_render_node_template_tagwith_current(self): node = menu.Node('test', 'Test', url='http://test.com') output = navutils_tags.render_node({'current_menu_item':'test'}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item current"><a href="http://test.com">Test</a></li>')
def test_render_node_template_tag_with_children_and_current(self): child1 = menu.Node('c1', 'c1', url='c1') child2 = menu.Node('c2', 'c2', url='c2') child3 = menu.Node('c3', 'c3', url='c3') node = menu.Node('test', 'Test', url='http://test.com', children=[ child1, child2, child3, ]) output = navutils_tags.render_node({'current_menu_item': 'test:c3'}, node=node, user=self.user) self.assertHTMLEqual( output, """ <li class="menu-item has-children has-current has-dropdown"> <a href="http://test.com">Test</a> <ul class="sub-menu dropdown"> <li class="menu-item"><a href="c1">c1</a></li> <li class="menu-item"><a href="c2">c2</a></li> <li class="menu-item current"><a href="c3">c3</a></li> </ul> </li> """)
def test_render_node_template_tag(self): node = menu.Node('test', 'Test', url='http://test.com') output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item"><a href="http://test.com">Test</a></li>')
def test_render_node_template_tag_with_children_and_current(self): child1 = menu.Node('c1', 'c1', url='c1') child2 = menu.Node('c2', 'c2', url='c2') child3 = menu.Node('c3', 'c3', url='c3') node = menu.Node( 'test', 'Test', url='http://test.com', children=[ child1, child2, child3, ] ) output = navutils_tags.render_node({'current_menu_item':'test:c3'}, node=node, user=self.user) self.assertHTMLEqual( output, """ <li class="menu-item has-children has-current has-dropdown"> <a href="http://test.com">Test</a> <ul class="sub-menu dropdown"> <li class="menu-item"><a href="c1">c1</a></li> <li class="menu-item"><a href="c2">c2</a></li> <li class="menu-item current"><a href="c3">c3</a></li> </ul> </li> """)
def test_render_node_template_tag_with_embedded_template(self): node = menu.Node('test', '{{ 1|add:"2" }}', url='http://test.com') output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item"><a href="http://test.com">3</a></li>')
def test_render_node_template_tag_with_extra_context(self): node = menu.Node('test', 'Test', url='http://test.com', template='test_app/test_node.html', context={'foo': 'bar'}) output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item"><a href="http://test.com">Test bar</a></li>')
def test_render_node_template_tag_with_embedded_template_and_context(self): node = menu.Node('test', '{{ foo }}', url='http://test.com', context={'foo': 'bar'}) output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item"><a href="http://test.com">bar</a></li>')
def test_render_node_template_tag_with_node_attrs(self): attrs = {'id': 'important'} node = menu.Node('test', 'Test', url='http://test.com', attrs=attrs) output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, """<li class="menu-item" id="important"> <a href="http://test.com">Test</a> </li>""")
def test_render_node_template_tag_with_children_and_depth(self): subchild = menu.Node('s1', 's1', url='s1') child1 = menu.Node('c1', 'c1', url='c1', children=[subchild]) child2 = menu.Node('c2', 'c2', url='c2') child3 = menu.Node('c3', 'c3', url='c3') node = menu.Node('test', 'Test', url='http://test.com', children=[ child1, child2, child3, ]) output = navutils_tags.render_node({}, node=node, user=self.user, max_depth=1) self.assertHTMLEqual( output, """ <li class="menu-item has-children has-dropdown"> <a href="http://test.com">Test</a> <ul class="sub-menu dropdown"> <li class="menu-item"><a href="c1">c1</a></li> <li class="menu-item"><a href="c2">c2</a></li> <li class="menu-item"><a href="c3">c3</a></li> </ul> </li> """) output = navutils_tags.render_node({}, node=node, user=self.user, max_depth=0) self.assertHTMLEqual( output, """ <li class="menu-item"> <a href="http://test.com">Test</a> </li> """)
def test_render_node_template_tag_with_link_attrs(self): attrs = {'target': '_blank', 'title': 'Click me !'} node = menu.Node('test', 'Test', url='http://test.com', link_attrs=attrs) output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, """<li class="menu-item"> <a href="http://test.com" target="_blank" title="Click me !">Test</a> </li>""")
def test_render_node_template_tag_with_children_and_depth(self): subchild = menu.Node('s1', 's1', url='s1') child1 = menu.Node('c1', 'c1', url='c1', children=[subchild]) child2 = menu.Node('c2', 'c2', url='c2') child3 = menu.Node('c3', 'c3', url='c3') node = menu.Node( 'test', 'Test', url='http://test.com', children=[ child1, child2, child3, ] ) output = navutils_tags.render_node({}, node=node, user=self.user, max_depth=1) self.assertHTMLEqual( output, """ <li class="menu-item has-children has-dropdown"> <a href="http://test.com">Test</a> <ul class="sub-menu dropdown"> <li class="menu-item"><a href="c1">c1</a></li> <li class="menu-item"><a href="c2">c2</a></li> <li class="menu-item"><a href="c3">c3</a></li> </ul> </li> """) output = navutils_tags.render_node({}, node=node, user=self.user, max_depth=0) self.assertHTMLEqual( output, """ <li class="menu-item"> <a href="http://test.com">Test</a> </li> """)
def test_render_node_template_tag_with_extra_context(self): node = menu.Node('test', 'Test', url='http://test.com', template='test_app/test_node.html', context={'foo': 'bar'}) output = navutils_tags.render_node({}, node=node, user=self.user) self.assertHTMLEqual( output, '<li class="menu-item"><a href="http://test.com">Test bar</a></li>' )