package textbender.a.b.rhinohideDemo._.core; import org.junit.*; import org.w3c.dom.*; import textbender.a.b.rhinohideDemo._.*; import static org.junit.Assert.*; /** Test of Core Level 1 (isolate). */ public final class RhiDocumentFragment_1i { @Test public void populateAndInsert() { final Document document = Core_1i_Test.window().getDocument(); final DocumentFragment documentFragment = document.createDocumentFragment(); // populate fragment // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - final String stringA = "[RhiDocumentFragment_1i A]"; final String stringB = "[RhiDocumentFragment_1i B]"; // documentFragment.appendChild( document.createElement( "p" )) // .appendChild( document.createTextNode( stringA )); ///// fails on IE, per http://reluk.ca/var/cache/textbender-javadoc/textbender/o/rhinohide/core/RhiNode.html#flaky-insert, so: Element element; element = document.createElement( "p" ); element.appendChild( document.createTextNode( stringA )); documentFragment.appendChild( element ); element = document.createElement( "p" ); element.appendChild( document.createTextNode( stringB )); documentFragment.appendChild( element ); // insert in document // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - final Element testBlockNode = Core_1_Demo.getElementById( document, "testBlockNode" ); testBlockNode.appendChild( documentFragment ); Text text = (Text)testBlockNode.getLastChild().getLastChild(); assertEquals( /*expected*/stringB, /*actual*/text.getData() ); assertFalse( documentFragment.hasChildNodes() ); // insertion ought to have transferred them } }