Ejemplo n.º 1
0
    async def test_replace_child(self):
        child1 = Tag('child1')
        child2 = Tag('child2')
        self.root.appendChild(child1)
        await self.wait()
        self.element = await self.get_element_handle(child1)
        self.assertEqual(await self.get_text(), 'child1')
        self.assertIsNone(await self.get_element_handle(child2))

        self.root.replaceChild(child2, child1)
        await self.wait()
        self.assertIsNone(await self.get_element_handle(child1))
        self.element = await self.get_element_handle(child2)
        self.assertEqual(await self.get_text(), 'child2')
Ejemplo n.º 2
0
    def setUp(self):
        class Inner(Tag):
            tag = 'in'

        class Outer(NestedTag):
            tag = 'out'
            inner_tag_class = Inner

        self.inner_cls = Inner
        self.outer_cls = Outer
        self.tag = self.outer_cls()
        self.c1 = Tag(src='c1')
        self.c2 = Tag(src='c2')
        self.c3 = Tag(src='c3')
        self.c4 = Tag(src='c4')
Ejemplo n.º 3
0
 def test_creation(self):
     c = Tag(src='c1')
     tag = self.outer_cls(c, src='out')
     self.assertEqual(
         tag.html_noid,
         '<out src="out"><in><tag src="c1"></tag></in></out>',
     )
Ejemplo n.º 4
0
 def test_set_body(self) -> None:
     self.doc.body.prepend(Tag())
     html = self.doc.build()
     _re = re.compile(
         '<tag wdom_id="\d+">\s*</tag>',
         re.S
     )
     self.assertIsNotNone(_re.search(html))
Ejemplo n.º 5
0
 def test_custom_tag_theme_default(self):
     from wdom.util import suppress_logging
     suppress_logging()
     from wdom.themes import default
     from wdom import themes
     self.doc.register_theme(default)
     elm = Tag(parent=self.doc.body)
     elm.innerHTML = '<div is="container"></div>'
     self.assertTrue(isinstance(elm.firstChild, default.Container))
     self.assertTrue(isinstance(elm.firstChild, themes.Container))
Ejemplo n.º 6
0
    async def test_addremove_child(self):
        child = Tag()
        self.root.appendChild(child)
        await self.wait()
        self.element = await self.get_element_handle(child)
        self.assertEqual(await self.get_text(), '')
        child.textContent = 'Child'
        await self.wait()
        self.assertEqual(await self.get_text(), 'Child')

        self.root.removeChild(child)
        await self.wait()
        self.assertIsNone(await self.get_element_handle(child))
Ejemplo n.º 7
0
    def test_custom_tag_theme(self):
        from wdom.themes import bootstrap3
        from wdom import themes
        self.doc.register_theme(bootstrap3)
        elm = Tag(parent=self.doc.body)
        elm.innerHTML = '<div is="container"></div>'
        self.assertTrue(isinstance(elm.firstChild, bootstrap3.Container))
        self.assertTrue(isinstance(elm.firstChild, themes.Container))
        self.assertIn('maxcdn.bootstrapcdn.com', self.doc.build())

        elm.innerHTML = '<button is="default-button"></button>'
        self.assertTrue(isinstance(elm.firstChild, bootstrap3.DefaultButton))
        self.assertTrue(isinstance(elm.firstChild, bootstrap3.Button))
        self.assertFalse(isinstance(elm.firstChild, themes.DefaultButton))
        self.assertTrue(isinstance(elm.firstChild, themes.Button))
Ejemplo n.º 8
0
 def test_custom_tag_theme_tag(self):
     from wdom import themes
     self.doc.register_theme(themes)
     elm = Tag(parent=self.doc.body)
     elm.innerHTML = '<div is="container"></div>'
     self.assertTrue(isinstance(elm.firstChild, themes.Container))
Ejemplo n.º 9
0
 def test_child_exception(self) -> None:
     with self.assertRaises(ValueError):
         self.tag.removeChild(Tag())
     with self.assertRaises(ValueError):
         self.tag.replaceChild(Tag(), Tag())
Ejemplo n.º 10
0
 def setUp(self):
     self.tag = Tag()
     self.html = '<a>link</a>'
Ejemplo n.º 11
0
 def test_type_attr(self) -> None:
     a = Tag()
     a.setAttribute('type', 'checkbox')
     self.assertRegex(a.html, '<tag wdom_id="\d+" type="checkbox"></tag>')
Ejemplo n.º 12
0
 def test_type_init(self) -> None:
     a = Tag(type='button')
     self.assertRegex(a.html, '<tag wdom_id="\d+" type="button"></tag>')
Ejemplo n.º 13
0
 def setUp(self):
     self.tag = Tag()
     self.c1 = Tag()
     self.c2 = Tag()
Ejemplo n.º 14
0
 def test_attr_init(self):
     tag = Tag(attrs={'src': 'a'})
     self.assertRegex(tag.html, '<tag wdom_id="\d+" src="a"></tag>')
     tag.removeAttribute('src')
     self.assertRegex(tag.html, '<tag wdom_id="\d+"></tag>')
Ejemplo n.º 15
0
 def setUp(self):
     customElements.clear()
     self.tag = Tag()
     self.c1 = Tag(c="1")
     self.c2 = Tag(c="2")