@@ -79,13 +79,58 @@ def testInsertBefore():
7979 , "testInsertBefore -- node properly placed in tree" )
8080 dom .unlink ()
8181
82+ def _create_fragment_test_nodes ():
83+ dom = parseString ("<doc/>" )
84+ orig = dom .createTextNode ("original" )
85+ c1 = dom .createTextNode ("foo" )
86+ c2 = dom .createTextNode ("bar" )
87+ c3 = dom .createTextNode ("bat" )
88+ dom .documentElement .appendChild (orig )
89+ frag = dom .createDocumentFragment ()
90+ frag .appendChild (c1 )
91+ frag .appendChild (c2 )
92+ frag .appendChild (c3 )
93+ return dom , orig , c1 , c2 , c3 , frag
94+
95+ def testInsertBeforeFragment ():
96+ dom , orig , c1 , c2 , c3 , frag = _create_fragment_test_nodes ()
97+ dom .documentElement .insertBefore (frag , None )
98+ confirm (tuple (dom .documentElement .childNodes ) == (orig , c1 , c2 , c3 ),
99+ "insertBefore(<fragment>, None)" )
100+ frag .unlink ()
101+ dom .unlink ()
102+ #
103+ dom , orig , c1 , c2 , c3 , frag = _create_fragment_test_nodes ()
104+ dom .documentElement .insertBefore (frag , orig )
105+ confirm (tuple (dom .documentElement .childNodes ) == (c1 , c2 , c3 , orig ),
106+ "insertBefore(<fragment>, orig)" )
107+ frag .unlink ()
108+ dom .unlink ()
109+
82110def testAppendChild ():
83111 dom = parse (tstfile )
84112 dom .documentElement .appendChild (dom .createComment (u"Hello" ))
85113 confirm (dom .documentElement .childNodes [- 1 ].nodeName == "#comment" )
86114 confirm (dom .documentElement .childNodes [- 1 ].data == "Hello" )
87115 dom .unlink ()
88116
117+ def testAppendChildFragment ():
118+ dom , orig , c1 , c2 , c3 , frag = _create_fragment_test_nodes ()
119+ dom .documentElement .appendChild (frag )
120+ confirm (tuple (dom .documentElement .childNodes ) == (orig , c1 , c2 , c3 ),
121+ "appendChild(<fragment>)" )
122+ frag .unlink ()
123+ dom .unlink ()
124+
125+ def testReplaceChildFragment ():
126+ dom , orig , c1 , c2 , c3 , frag = _create_fragment_test_nodes ()
127+ dom .documentElement .replaceChild (frag , orig )
128+ orig .unlink ()
129+ confirm (tuple (dom .documentElement .childNodes ) == (c1 , c2 , c3 ),
130+ "replaceChild(<fragment>)" )
131+ frag .unlink ()
132+ dom .unlink ()
133+
89134def testLegalChildren ():
90135 dom = Document ()
91136 elem = dom .createElement ('element' )
0 commit comments