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 (unextended). */ public final class RhiNamedNodeMap_1 { @Test public void getSetIterateRemove() { final Document document = Core_1_Test.window().getDocument(); final NamedNodeMap namedNodeMap = Core_1_Demo.getElementById( document, "testBlockNode" ) .getAttributes(); Node attr; // get // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - attr = namedNodeMap.getNamedItem( "id" ); assertNotNull( attr ); // set // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - attr = document.createAttribute( "lang" ); attr.setNodeValue( "fr" ); namedNodeMap.setNamedItem( attr ); assertEquals( /*expected*/"fr", /*actual*/namedNodeMap.getNamedItem("lang").getNodeValue() ); // iterate // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - int i = namedNodeMap.getLength() - 1; assertTrue( i >= 2-1 ); for(; i >= 0; --i ) { Node node = namedNodeMap.item( i ); // assertNotNull( node ); //// But nulls are possible on IE, per http://reluk.ca/var/cache/textbender-javadoc/textbender/o/rhinohide/core/RhiNamedNodeMap.html#null-item } // remove // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - namedNodeMap.removeNamedItem( "lang" ); //Node n = namedNodeMap.getNamedItem( "lang" ); //System.out.println( "RNNM1 ought to be null: " + n ); //System.out.println( "RNNM1 type: " + n.getNodeType() ); assertNull( namedNodeMap.getNamedItem( "lang" )); } }