def setUp(self): customElements.clear() self.elm = Element('tag') self.c1 = Element('c1') self.c2 = Element('c2') self.c1.classList.add('c1') self.c2.classList.add('c2')
def setUp(self): self.elm = Element('tag') self.c1 = Element('c1') self.c2 = Element('c1') self.c3 = Element('c3') self.c1.setAttribute('a', 'a') self.c2.setAttribute('b', 'b') self.elm.append(self.c1, self.c2, self.c3)
def test_init_class(self): elm = Element('a', class_='a') self.assertEqual(elm.html, '<a class="a"></a>') self.assertEqual(elm.classList.length, 1) self.assertIn('a', elm.classList) elm2 = Element('a', **{'class': 'b'}) self.assertEqual(elm2.html, '<a class="b"></a>') self.assertEqual(elm2.classList.length, 1) self.assertIn('b', elm2.classList)
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_init_class_multi_list(self): elm = Element('a', class_=['a1', 'a2']) self.assertEqual(elm.html, '<a class="a1 a2"></a>') self.assertEqual(elm.classList.length, 2) self.assertIn('a1', elm.classList) self.assertIn('a2', elm.classList) self.assertNotIn('a1 a2', elm.classList)
def test_create_attr(self): a = self.doc.createAttribute('src') a.value = 'a' self.assertEqual(type(a), Attr) self.assertEqual(a.html, 'src="a"') tag = Element('tag') tag.setAttributeNode(a) self.assertEqual(tag.html, '<tag src="a"></tag>')
def test_constructor(self): elm = Element('a') self.assertEqual(elm.nodeName, 'A') self.assertEqual(elm.tagName, 'A') self.assertEqual(elm.localName, 'a') self.assertFalse(elm.hasChildNodes()) self.assertFalse(elm.hasAttributes())
def test_reference_del_id(self): gc.collect() elm = Element('a', id='a') self.assertIn('a', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.removeAttribute('id') self.assertNotIn('a', Element._elements_with_id) self.assertNotIn(elm, Element._elements_with_id.values())
def test_add_invlalid(self): with self.assertRaises(TypeError): self.tokens.add(1) with self.assertRaises(TypeError): self.tokens.add(Element('a')) self.assertEqual(len(self.tokens), 0) self.assertFalse(bool(self.tokens)) self.assertEqual('', self.tokens.toString())
def test_inner_html(self): self.assertEqual(self.elm.innerHTML, '') self.elm.appendChild(Element('a')) self.assertEqual(self.elm.innerHTML, '<a></a>') self.elm.innerHTML = '<b></b>' self.assertEqual(self.elm.innerHTML, '<b></b>') self.assertEqual(self.elm.firstChild.tag, 'b') self.assertTrue(isinstance(self.elm.firstChild, Element))
def test_reference(self): gc.collect() elm = Element('a') _id = id(elm) self.assertIn(elm, Element._element_buffer) del elm gc.collect() # run gc for elm in Element._element_buffer: assert id(elm) != _id
def test_reference_with_id(self): gc.collect() elm = Element('a', id='a') _id = id(elm) self.assertIn(elm.id, Element._elements_with_id) del elm gc.collect() self.assertNotIn('a', Element._elements_with_id) for elm in Element._element_buffer: assert id(elm) != _id
def test_is_attr(self): '''``is`` is a reserved word for python, so use ``is_`` in constructor. ''' elm = Element('tag', is_='elm') self.assertIn('is', elm.attributes) self.assertNotIn('is_', elm.attributes) self.assertEqual('elm', elm.getAttribute('is')) self.assertIsNone(elm.getAttribute('is_')) # ``is_`` is not treated as special at setAttribute elm.setAttribute('is_', 'new') self.assertEqual('elm', elm.getAttribute('is')) self.assertEqual('new', elm.getAttribute('is_'))
def test_reference_add_id(self): gc.collect() elm = Element('a') _id = id(elm) self.assertNotIn(elm, Element._elements_with_id.values()) elm.id = 'a' self.assertIn('a', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.id = 'b' self.assertNotIn('a', Element._elements_with_id) self.assertIn('b', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) elm.setAttribute('id', 'c') self.assertNotIn('b', Element._elements_with_id) self.assertIn('c', Element._elements_with_id) self.assertIn(elm, Element._elements_with_id.values()) del elm gc.collect() self.assertNotIn('c', Element._elements_with_id) for elm in Element._element_buffer: assert id(elm) != _id
def setUp(self): self.df = DocumentFragment() self.elm = Element('a') self.c1 = Element('c1') self.c2 = Element('c2') self.c3 = Element('c3')
def setUp(self): self.p = P() self.c1 = NDTC() self.c2 = NDTC() self.e1 = Element() self.e2 = Element()
def test_init_parent(self): elm = Element('a', parent=self.elm) self.assertIs(elm.parentNode, self.elm)
def test_get_element_by_id(self): elm = Element(tag='a', id='a') self.assertIs(getElementById('a'), elm) self.assertIsNone(self.doc.getElementById('a'), elm) self.doc.appendChild(elm) self.assertIs(getElementById('a'), elm)
def test_init_attrs(self): elm = Element('a', src='b', href='c') self.assertFalse(elm.hasChildNodes()) self.assertTrue(elm.hasAttributes()) self.assertTrue(elm.getAttribute('src'), 'b') self.assertTrue(elm.getAttribute('href'), 'c')