OSDN Git Service

original
[gb-231r1-is01/Gingerbread_2.3.3_r1_IS01.git] / libcore / luni / src / test / java / tests / org / w3c / dom / NodeNormalize.java
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
22 package tests.org.w3c.dom;
23
24 import dalvik.annotation.TestTargets;
25 import dalvik.annotation.TestLevel;
26 import dalvik.annotation.TestTargetNew;
27 import dalvik.annotation.TestTargetClass;
28
29 import org.w3c.dom.Node;
30 import org.w3c.dom.Document;
31 import org.w3c.dom.Element;
32 import org.w3c.dom.DocumentType;
33 import org.w3c.dom.Text;
34 import org.w3c.dom.DOMImplementation;
35 import org.w3c.dom.EntityReference;
36 import org.w3c.dom.NodeList;
37 import org.w3c.dom.CDATASection;
38 import org.w3c.dom.ProcessingInstruction;
39 import org.w3c.dom.Comment;
40
41 import 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)
61 public 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 }