summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_minidom.py
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-12-06 04:32:18 (GMT)
committerFred Drake <fdrake@acm.org>2001-12-06 04:32:18 (GMT)
commite50959a58ef4f365295f0393cb980de890c0024a (patch)
treedab611a240b38d3b88d5c8df21839fa06eb5f7cb /Lib/test/test_minidom.py
parentbf7c8045887c0f97698b5ce80a28ddbae40c957e (diff)
downloadcpython-e50959a58ef4f365295f0393cb980de890c0024a.zip
cpython-e50959a58ef4f365295f0393cb980de890c0024a.tar.gz
cpython-e50959a58ef4f365295f0393cb980de890c0024a.tar.bz2
Fix appendChild() and insertBefore() (and replaceChild() indirectly) when
the node being added is a fragment node. This closes SF bug #487929.
Diffstat (limited to 'Lib/test/test_minidom.py')
-rw-r--r--Lib/test/test_minidom.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py
index ab985b8..adac990 100644
--- a/Lib/test/test_minidom.py
+++ b/Lib/test/test_minidom.py
@@ -79,6 +79,34 @@ def testInsertBefore():
, "testInsertBefore -- node properly placed in tree")
dom.unlink()
+def _create_fragment_test_nodes():
+ dom = parseString("<doc/>")
+ orig = dom.createTextNode("original")
+ c1 = dom.createTextNode("foo")
+ c2 = dom.createTextNode("bar")
+ c3 = dom.createTextNode("bat")
+ dom.documentElement.appendChild(orig)
+ frag = dom.createDocumentFragment()
+ frag.appendChild(c1)
+ frag.appendChild(c2)
+ frag.appendChild(c3)
+ return dom, orig, c1, c2, c3, frag
+
+def testInsertBeforeFragment():
+ dom, orig, c1, c2, c3, frag = _create_fragment_test_nodes()
+ dom.documentElement.insertBefore(frag, None)
+ confirm(tuple(dom.documentElement.childNodes) == (orig, c1, c2, c3),
+ "insertBefore(<fragment>, None)")
+ frag.unlink()
+ dom.unlink()
+ #
+ dom, orig, c1, c2, c3, frag = _create_fragment_test_nodes()
+ dom.documentElement.insertBefore(frag, orig)
+ confirm(tuple(dom.documentElement.childNodes) == (c1, c2, c3, orig),
+ "insertBefore(<fragment>, orig)")
+ frag.unlink()
+ dom.unlink()
+
def testAppendChild():
dom = parse(tstfile)
dom.documentElement.appendChild(dom.createComment(u"Hello"))
@@ -86,6 +114,23 @@ def testAppendChild():
confirm(dom.documentElement.childNodes[-1].data == "Hello")
dom.unlink()
+def testAppendChildFragment():
+ dom, orig, c1, c2, c3, frag = _create_fragment_test_nodes()
+ dom.documentElement.appendChild(frag)
+ confirm(tuple(dom.documentElement.childNodes) == (orig, c1, c2, c3),
+ "appendChild(<fragment>)")
+ frag.unlink()
+ dom.unlink()
+
+def testReplaceChildFragment():
+ dom, orig, c1, c2, c3, frag = _create_fragment_test_nodes()
+ dom.documentElement.replaceChild(frag, orig)
+ orig.unlink()
+ confirm(tuple(dom.documentElement.childNodes) == (c1, c2, c3),
+ "replaceChild(<fragment>)")
+ frag.unlink()
+ dom.unlink()
+
def testLegalChildren():
dom = Document()
elem = dom.createElement('element')