NodeNormalize.java revision cc05ad238516f1303687aba4a978e24e57c0c07a
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.TestTargets; 25import dalvik.annotation.TestLevel; 26import dalvik.annotation.TestTargetNew; 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 @TestTargetNew( 91 level = TestLevel.COMPLETE, 92 notes = "", 93 method = "normalize", 94 args = {} 95 ) 96 public void testNormalize() throws Throwable { 97 Document doc; 98 Document newDoc; 99 DOMImplementation domImpl; 100 101 DocumentType docTypeNull = null; 102 103 Element documentElement; 104 Element element1; 105 Element element2; 106 Element element3; 107 Element element4; 108 Element element5; 109 Element element6; 110 Element element7; 111 Text text1; 112 Text text2; 113 Text text3; 114 ProcessingInstruction pi; 115 CDATASection cData; 116 Comment comment; 117 EntityReference entRef; 118 NodeList elementList; 119 120 doc = (Document) load("staffNS", builder); 121 domImpl = doc.getImplementation(); 122 newDoc = domImpl.createDocument("http://www.w3.org/DOM/Test", 123 "dom:root", docTypeNull); 124 element1 = newDoc.createElement("element1"); 125 element2 = newDoc.createElement("element2"); 126 element3 = newDoc.createElement("element3"); 127 element4 = newDoc.createElement("element4"); 128 element5 = newDoc.createElement("element5"); 129 element6 = newDoc.createElement("element6"); 130 element7 = newDoc.createElement("element7"); 131 text1 = newDoc.createTextNode("text1"); 132 text2 = newDoc.createTextNode("text2"); 133 text3 = newDoc.createTextNode("text3"); 134 cData = newDoc.createCDATASection("Cdata"); 135 comment = newDoc.createComment("comment"); 136 pi = newDoc.createProcessingInstruction("PITarget", "PIData"); 137 entRef = newDoc.createEntityReference("EntRef"); 138 assertNotNull("createdEntRefNotNull", entRef); 139 documentElement = newDoc.getDocumentElement(); 140 documentElement.appendChild(element1); 141 element2.appendChild(text1); 142 element2.appendChild(text2); 143 element2.appendChild(text3); 144 element1.appendChild(element2); 145 text1 = (Text) text1.cloneNode(false); 146 text2 = (Text) text2.cloneNode(false); 147 element3.appendChild(entRef); 148 element3.appendChild(text1); 149 element3.appendChild(text2); 150 element1.appendChild(element3); 151 text1 = (Text) text1.cloneNode(false); 152 text2 = (Text) text2.cloneNode(false); 153 element4.appendChild(cData); 154 element4.appendChild(text1); 155 element4.appendChild(text2); 156 element1.appendChild(element4); 157 text2 = (Text) text2.cloneNode(false); 158 text3 = (Text) text3.cloneNode(false); 159 element5.appendChild(comment); 160 element5.appendChild(text2); 161 element5.appendChild(text3); 162 element1.appendChild(element5); 163 text2 = (Text) text2.cloneNode(false); 164 text3 = (Text) text3.cloneNode(false); 165 element6.appendChild(pi); 166 element6.appendChild(text2); 167 element6.appendChild(text3); 168 element1.appendChild(element6); 169 entRef = (EntityReference) entRef.cloneNode(false); 170 text1 = (Text) text1.cloneNode(false); 171 text2 = (Text) text2.cloneNode(false); 172 text3 = (Text) text3.cloneNode(false); 173 element7.appendChild(entRef); 174 element7.appendChild(text1); 175 element7.appendChild(text2); 176 element7.appendChild(text3); 177 element1.appendChild(element7); 178 elementList = element1.getChildNodes(); 179 assertEquals("nodeNormalize01_1Bef", 6, elementList.getLength()); 180 elementList = element2.getChildNodes(); 181 assertEquals("nodeNormalize01_2Bef", 3, elementList.getLength()); 182 elementList = element3.getChildNodes(); 183 assertEquals("nodeNormalize01_3Bef", 3, elementList.getLength()); 184 elementList = element4.getChildNodes(); 185 assertEquals("nodeNormalize01_4Bef", 3, elementList.getLength()); 186 elementList = element5.getChildNodes(); 187 assertEquals("nodeNormalize01_5Bef", 3, elementList.getLength()); 188 elementList = element6.getChildNodes(); 189 assertEquals("nodeNormalize01_6Bef", 3, elementList.getLength()); 190 elementList = element7.getChildNodes(); 191 assertEquals("nodeNormalize01_7Bef", 4, elementList.getLength()); 192 newDoc.normalize(); 193 elementList = element1.getChildNodes(); 194 assertEquals("nodeNormalize01_1Aft", 6, elementList.getLength()); 195 elementList = element2.getChildNodes(); 196 assertEquals("nodeNormalize01_2Aft", 1, elementList.getLength()); 197 elementList = element3.getChildNodes(); 198 assertEquals("nodeNormalize01_3Aft", 2, elementList.getLength()); 199 elementList = element4.getChildNodes(); 200 assertEquals("nodeNormalize01_4Aft", 2, elementList.getLength()); 201 elementList = element5.getChildNodes(); 202 assertEquals("nodeNormalize01_5Aft", 2, elementList.getLength()); 203 elementList = element6.getChildNodes(); 204 assertEquals("nodeNormalize01_6Aft", 2, elementList.getLength()); 205 elementList = element7.getChildNodes(); 206 assertEquals("nodeNormalize01_7Aft", 2, elementList.getLength()); 207 } 208 209} 210