示例#1
0
    def test_collapsible_rendered(self):

        from cocktail.html.element import Element

        parent = Element()

        # An element starts with no rendered children
        self.assertFalse(parent.has_rendered_children())

        # A collapsible element with no children is not rendered
        parent.collapsible = True
        self.assertFalse(parent.rendered)

        # A collapsible element with visible children is rendered
        child1 = Element()
        parent.append(child1)
        self.assertTrue(parent.has_rendered_children())
        self.assertTrue(parent.rendered)

        # A collapsible element with invisible children is not rendered
        child1.visible = False
        self.assertFalse(parent.has_rendered_children())
        self.assertFalse(parent.rendered)

        # A collapsible element with collapsible children without rendered
        # children is not rendered
        child1.visible = True
        child1.collapsible = True
        self.assertFalse(parent.has_rendered_children())
        self.assertFalse(parent.rendered)

        # The collapsible property applies recursively
        grandchild1 = Element()
        child1.append(grandchild1)
        self.assertTrue(parent.has_rendered_children())
        self.assertTrue(parent.rendered)
        self.assertTrue(child1.has_rendered_children())
        self.assertTrue(child1.rendered)

        grandchild1.visible = False
        self.assertFalse(parent.has_rendered_children())
        self.assertFalse(parent.rendered)
        self.assertFalse(child1.has_rendered_children())
        self.assertFalse(child1.rendered)

        # Just one rendered child suffices to get a collapsible element to be
        # rendered
        child2 = Element()
        parent.append(child2)
        self.assertTrue(parent.has_rendered_children())
        self.assertTrue(parent.rendered)
示例#2
0
    def test_invisible_element_not_rendered(self):

        from cocktail.html.element import Element

        e = Element()
        e.visible = False
        self.assertEqual(self.get_html(e), "")

        e.visible = True
        e.collapsible = True
        self.assertEqual(self.get_html(e), "")

        child = Element()
        child.visible = False
        e.append(child)
        self.assertEqual(self.get_html(e), "")