NodeNormalize.java revision 89c1feb0a69a7707b271086e749975b3f7acacf7
1/* 2 This Java source file was generated by test-to-java.xsl 3 and is a derived work from the source document. 4 The source document contained the following notice: 5 6 7 8 Copyright (c) 2001-2004 World Wide Web Consortium, 9 (Massachusetts Institute of Technology, Institut National de 10 Recherche en Informatique et en Automatique, Keio University). All 11 Rights Reserved. This program is distributed under the W3C's Software 12 Intellectual Property License. This program is distributed in the 13 hope that it will be useful, but WITHOUT ANY WARRANTY; without even 14 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 15 PURPOSE. 16 17 See W3C License http://www.w3.org/Consortium/Legal/ for more details. 18 19 20 */ 21 22package tests.org.w3c.dom; 23 24import dalvik.annotation.TestInfo; 25import dalvik.annotation.TestLevel; 26import dalvik.annotation.TestTarget; 27import dalvik.annotation.TestTargetClass; 28 29import org.w3c.dom.Node; 30import org.w3c.dom.Document; 31import org.w3c.dom.Element; 32import org.w3c.dom.DocumentType; 33import org.w3c.dom.Text; 34import org.w3c.dom.DOMImplementation; 35import org.w3c.dom.EntityReference; 36import org.w3c.dom.NodeList; 37import org.w3c.dom.CDATASection; 38import org.w3c.dom.ProcessingInstruction; 39import org.w3c.dom.Comment; 40 41import javax.xml.parsers.DocumentBuilder; 42 43/** 44 * The method "normalize" puts all Text nodes in the full depth of the sub-tree 45 * underneath this Node, including attribute nodes, into a "normal" form where 46 * only structure (e.g., elements, comments, processing instructions, CDATA 47 * sections, and entity references) separates Text nodes, i.e., there are 48 * neither adjacent Text nodes nor empty Text nodes. 49 * 50 * Create a dom tree consisting of elements, comments, processing instructions, 51 * CDATA sections, and entity references nodes seperated by text nodes. Check 52 * the length of the node list of each before and after normalize has been 53 * called. 54 * 55 * @author IBM 56 * @author Neil Delima 57 * @see <a 58 * href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-normalize</a> 59 */ 60@TestTargetClass(Node.class) 61public final class NodeNormalize extends DOMTestCase { 62 63 DOMDocumentBuilderFactory factory; 64 65 DocumentBuilder builder; 66 67 protected void setUp() throws Exception { 68 super.setUp(); 69 try { 70 factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory 71 .getConfiguration1()); 72 builder = factory.getBuilder(); 73 } catch (Exception e) { 74 fail("Unexpected exception" + e.getMessage()); 75 } 76 } 77 78 protected void tearDown() throws Exception { 79 factory = null; 80 builder = null; 81 super.tearDown(); 82 } 83 84 /** 85 * Runs the test case. 86 * 87 * @throws Throwable 88 * Any uncaught exception causes test to fail 89 */ 90 @TestInfo( 91 level = TestLevel.COMPLETE, 92 purpose = "", 93 targets = { 94 @TestTarget( 95 methodName = "normalize", 96 methodArgs = {} 97 ) 98 }) 99 public void testNormalize() throws Throwable { 100 Document doc; 101 Document newDoc; 102 DOMImplementation domImpl; 103 104 DocumentType docTypeNull = null; 105 106 Element documentElement; 107 Element element1; 108 Element element2; 109 Element element3; 110 Element element4; 111 Element element5; 112 Element element6; 113 Element element7; 114 Text text1; 115 Text text2; 116 Text text3; 117 ProcessingInstruction pi; 118 CDATASection cData; 119 Comment comment; 120 EntityReference entRef; 121 NodeList elementList; 122 123 doc = (Document) load("staffNS", builder); 124 domImpl = doc.getImplementation(); 125 newDoc = domImpl.createDocument("http://www.w3.org/DOM/Test", 126 "dom:root", docTypeNull); 127 element1 = newDoc.createElement("element1"); 128 element2 = newDoc.createElement("element2"); 129 element3 = newDoc.createElement("element3"); 130 element4 = newDoc.createElement("element4"); 131 element5 = newDoc.createElement("element5"); 132 element6 = newDoc.createElement("element6"); 133 element7 = newDoc.createElement("element7"); 134 text1 = newDoc.createTextNode("text1"); 135 text2 = newDoc.createTextNode("text2"); 136 text3 = newDoc.createTextNode("text3"); 137 cData = newDoc.createCDATASection("Cdata"); 138 comment = newDoc.createComment("comment"); 139 pi = newDoc.createProcessingInstruction("PITarget", "PIData"); 140 entRef = newDoc.createEntityReference("EntRef"); 141 assertNotNull("createdEntRefNotNull", entRef); 142 documentElement = newDoc.getDocumentElement(); 143 documentElement.appendChild(element1); 144 element2.appendChild(text1); 145 element2.appendChild(text2); 146 element2.appendChild(text3); 147 element1.appendChild(element2); 148 text1 = (Text) text1.cloneNode(false); 149 text2 = (Text) text2.cloneNode(false); 150 element3.appendChild(entRef); 151 element3.appendChild(text1); 152 element3.appendChild(text2); 153 element1.appendChild(element3); 154 text1 = (Text) text1.cloneNode(false); 155 text2 = (Text) text2.cloneNode(false); 156 element4.appendChild(cData); 157 element4.appendChild(text1); 158 element4.appendChild(text2); 159 element1.appendChild(element4); 160 text2 = (Text) text2.cloneNode(false); 161 text3 = (Text) text3.cloneNode(false); 162 element5.appendChild(comment); 163 element5.appendChild(text2); 164 element5.appendChild(text3); 165 element1.appendChild(element5); 166 text2 = (Text) text2.cloneNode(false); 167 text3 = (Text) text3.cloneNode(false); 168 element6.appendChild(pi); 169 element6.appendChild(text2); 170 element6.appendChild(text3); 171 element1.appendChild(element6); 172 entRef = (EntityReference) entRef.cloneNode(false); 173 text1 = (Text) text1.cloneNode(false); 174 text2 = (Text) text2.cloneNode(false); 175 text3 = (Text) text3.cloneNode(false); 176 element7.appendChild(entRef); 177 element7.appendChild(text1); 178 element7.appendChild(text2); 179 element7.appendChild(text3); 180 element1.appendChild(element7); 181 elementList = element1.getChildNodes(); 182 assertEquals("nodeNormalize01_1Bef", 6, elementList.getLength()); 183 elementList = element2.getChildNodes(); 184 assertEquals("nodeNormalize01_2Bef", 3, elementList.getLength()); 185 elementList = element3.getChildNodes(); 186 assertEquals("nodeNormalize01_3Bef", 3, elementList.getLength()); 187 elementList = element4.getChildNodes(); 188 assertEquals("nodeNormalize01_4Bef", 3, elementList.getLength()); 189 elementList = element5.getChildNodes(); 190 assertEquals("nodeNormalize01_5Bef", 3, elementList.getLength()); 191 elementList = element6.getChildNodes(); 192 assertEquals("nodeNormalize01_6Bef", 3, elementList.getLength()); 193 elementList = element7.getChildNodes(); 194 assertEquals("nodeNormalize01_7Bef", 4, elementList.getLength()); 195 newDoc.normalize(); 196 elementList = element1.getChildNodes(); 197 assertEquals("nodeNormalize01_1Aft", 6, elementList.getLength()); 198 elementList = element2.getChildNodes(); 199 assertEquals("nodeNormalize01_2Aft", 1, elementList.getLength()); 200 elementList = element3.getChildNodes(); 201 assertEquals("nodeNormalize01_3Aft", 2, elementList.getLength()); 202 elementList = element4.getChildNodes(); 203 assertEquals("nodeNormalize01_4Aft", 2, elementList.getLength()); 204 elementList = element5.getChildNodes(); 205 assertEquals("nodeNormalize01_5Aft", 2, elementList.getLength()); 206 elementList = element6.getChildNodes(); 207 assertEquals("nodeNormalize01_6Aft", 2, elementList.getLength()); 208 elementList = element7.getChildNodes(); 209 assertEquals("nodeNormalize01_7Aft", 2, elementList.getLength()); 210 } 211 212} 213