diff options
author | Fred Drake <fdrake@acm.org> | 2001-12-06 04:32:18 (GMT) |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-12-06 04:32:18 (GMT) |
commit | e50959a58ef4f365295f0393cb980de890c0024a (patch) | |
tree | dab611a240b38d3b88d5c8df21839fa06eb5f7cb /Lib/test | |
parent | bf7c8045887c0f97698b5ce80a28ddbae40c957e (diff) | |
download | cpython-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')
-rw-r--r-- | Lib/test/output/test_minidom | 10 | ||||
-rw-r--r-- | Lib/test/test_minidom.py | 45 |
2 files changed, 55 insertions, 0 deletions
diff --git a/Lib/test/output/test_minidom b/Lib/test/output/test_minidom index b14f74e..14e8845 100644 --- a/Lib/test/output/test_minidom +++ b/Lib/test/output/test_minidom @@ -19,6 +19,9 @@ Passed Test Passed Test Test Succeeded testAppendChild Passed assertion: len(Node.allnodes) == 0 +Passed appendChild(<fragment>) +Test Succeeded testAppendChildFragment +Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListItem Passed assertion: len(Node.allnodes) == 0 Test Succeeded testAttrListItemNS @@ -122,6 +125,10 @@ Passed testInsertBefore -- node properly placed in tree Passed testInsertBefore -- node properly placed in tree Test Succeeded testInsertBefore Passed assertion: len(Node.allnodes) == 0 +Passed insertBefore(<fragment>, None) +Passed insertBefore(<fragment>, orig) +Test Succeeded testInsertBeforeFragment +Passed assertion: len(Node.allnodes) == 0 Test Succeeded testLegalChildren Passed assertion: len(Node.allnodes) == 0 Passed test NodeList.item() @@ -172,6 +179,9 @@ Passed Test Passed Test Test Succeeded testRemoveAttributeNode Passed assertion: len(Node.allnodes) == 0 +Passed replaceChild(<fragment>) +Test Succeeded testReplaceChildFragment +Passed assertion: len(Node.allnodes) == 0 Passed testSAX2DOM - siblings Passed testSAX2DOM - parents Test Succeeded testSAX2DOM 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') |