def test_html_escape(self): self.assertEqual(self.tnode.html, 'text') self.tnode.textContent = '<' # not escape it has no parent self.assertEqual(self.tnode.html, '<') self.df.appendChild(self.tnode) # escape its parent is DocumentFragment or Element or... self.assertEqual(self.tnode.html, '<') self.assertEqual(Text('<', parent=self.df).html, '<') self.assertEqual(Text('>', parent=self.df).html, '>') self.assertEqual(Text('&', parent=self.df).html, '&') self.assertEqual(Text('"', parent=self.df).html, '"') self.assertEqual(Text('\'', parent=self.df).html, ''')
def test_children(self): self.p.appendChild(Text('a')) self.p.appendChild(Comment('b')) self.assertEqual(self.p.children.length, 0) elm1 = Element('c1') self.p.appendChild(elm1) self.p.appendChild(Text('d')) self.assertEqual(self.p.children.length, 1) self.assertIs(self.p.firstElementChild, elm1) self.assertIs(self.p.lastElementChild, elm1) elm2 = Element('c2') self.p.appendChild(elm2) self.p.appendChild(Text('e')) self.assertIs(self.p.firstElementChild, elm1) self.assertIs(self.p.lastElementChild, elm2)
def test_text_content(self): self.set_element(self.tag) self.assertEqual(self.element.text, '') self.tag.textContent = 'text' self.wait_until(lambda: self.element.text == 'text') self.assertEqual(self.element.text, 'text') self.c1.textContent = 'child' self.tag.appendChild(self.c1) self.wait_until(lambda: self.element.text == 'textchild') self.assertEqual(self.element.text, 'textchild') self.tag.textContent = 'NewText' self.wait_until(lambda: self.element.text == 'NewText') self.assertEqual(self.element.text, 'NewText') with self.assertRaises(NoSuchElementException): self.set_element(self.c1, self.wait_time * 10) self.set_element(self.tag) t_node = Text('TextNode') self.tag.replaceChild(t_node, self.tag.childNodes[0]) self.wait_until(lambda: self.element.text == 'TextNode') self.assertEqual(self.element.text, 'TextNode') self.tag.removeChild(self.tag.childNodes[0]) self.set_element(self.tag) self.wait_until(lambda: self.element.text == '') self.assertEqual(self.element.text, '')
async def test_text_content(self): self.element = await self.get_element_handle(self.tag) self.assertEqual(await self.get_text(), '') self.tag.textContent = 'text' await self.wait() self.assertEqual(await self.get_text(), 'text') self.c1.textContent = 'child' self.tag.appendChild(self.c1) await self.wait_for_element(self.c1) self.assertEqual(await self.get_text(), 'textchild') self.tag.textContent = 'NewText' await self.wait() self.assertEqual(await self.get_text(), 'NewText') self.assertIsNone(await self.get_element_handle(self.c1)) t_node = Text('TextNode') self.tag.replaceChild(t_node, self.tag.childNodes[0]) await self.wait() self.assertEqual(await self.get_text(), 'TextNode') self.tag.removeChild(t_node) await self.wait() self.assertEqual(await self.get_text(), '')
def test_append_text(self): from html import escape t = '<a>' t_node = Text(t) self.assertEqual(t_node.textContent, t) self.assertEqual(t_node.html, t) self.elm.appendChild(t_node) self.js_mock.assert_called_once_with('insertAdjacentHTML', 'beforeend', escape('<a>')) self.assertEqual(t_node.html, escape(t))
def setUp(self): self.node = Node() self.df = DocumentFragment() self.tnode = Text('text')
def createTextNode(self, text: str) -> Text: """Create text node with ``text``.""" return Text(text)
def handle_data(self, data: str) -> None: # noqa: D102 if data: self.elm.appendChild(Text(data))