KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > util > xml > DocumentReaderTest


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.util.xml;
11
12 import java.util.*;
13 import org.xml.sax.*;
14 import org.w3c.dom.*;
15 import java.io.*;
16 import junit.framework.TestCase;
17
18 /**
19  *
20  * @author Michiel Meeuwissen
21  * @verion $Id: DocumentReaderTest.java,v 1.3 2006/05/16 22:12:30 michiel Exp $
22  */

23 public class DocumentReaderTest extends TestCase {
24
25
26     private Element getElement(String JavaDoc s) {
27         DocumentReader reader = new DocumentReader(new InputSource(new StringReader(s)), false);
28         return reader.getRootElement();
29     }
30
31     public void testAppendChild() {
32         Element parent = getElement("<a />");
33         {
34             String JavaDoc res = XMLWriter.write(parent, false, true);
35             assertEquals(res + " != <a/>", res, "<a/>");
36         }
37
38         Element b = parent.getOwnerDocument().createElement("b");
39         DocumentReader.appendChild(parent, b, "b");
40         {
41             String JavaDoc res = XMLWriter.write(parent, false, true);
42             assertEquals(res, res, "<a><b/></a>");
43         }
44     }
45     public void testAppendChild2() {
46         Element parent = getElement("<a><b /></a>");
47         Element c = parent.getOwnerDocument().createElement("c");
48         DocumentReader.appendChild(parent, c, "b,c");
49         String JavaDoc res = XMLWriter.write(parent, false, true);
50         assertEquals(res, res, "<a><b/><c/></a>");
51     }
52     public void testAppendChild3() {
53         Element parent = getElement("<a></a>");
54         Element c = parent.getOwnerDocument().createElement("c");
55         DocumentReader.appendChild(parent, c, "b,c");
56         String JavaDoc res = XMLWriter.write(parent, false, true);
57         assertEquals(res, res, "<a><c/></a>");
58     }
59     public void testAppendChild4() {
60         Element parent = getElement("<a><b /><b /></a>");
61         Element c = parent.getOwnerDocument().createElement("c");
62         DocumentReader.appendChild(parent, c, "b,c");
63         String JavaDoc res = XMLWriter.write(parent, false, true);
64         assertEquals(res, res, "<a><b/><b/><c/></a>");
65     }
66     public void testAppendChild5() {
67         Element parent = getElement("<a><b /><b /><d /></a>");
68         Element c = parent.getOwnerDocument().createElement("c");
69         DocumentReader.appendChild(parent, c, "b,c");
70         String JavaDoc res = XMLWriter.write(parent, false, true);
71         assertEquals(res, res, "<a><b/><b/><c/><d/></a>");
72     }
73     public void testAppendChild6() {
74         Element parent = getElement("<a><b /><b /><d /></a>");
75         Element c = parent.getOwnerDocument().createElement("c");
76         DocumentReader.appendChild(parent, c, "b");
77         String JavaDoc res = XMLWriter.write(parent, false, true);
78         assertEquals(res, res, "<a><b/><b/><c/><d/></a>");
79     }
80     public void testAppendChild7() {
81         Element parent = getElement("<a><b /><b /><c id='t' /><d /></a>");
82         Element c = parent.getOwnerDocument().createElement("c");
83         DocumentReader.appendChild(parent, c, "b");
84         String JavaDoc res = XMLWriter.write(parent, false, true);
85         assertEquals(res, res, "<a><b/><b/><c/><c id=\"t\"/><d/></a>");
86     }
87     public void testAppendChild8() {
88         Element parent = getElement("<a><b /><b /><c id='t' /><d /></a>");
89         Element c = parent.getOwnerDocument().createElement("c");
90         DocumentReader.appendChild(parent, c, "b,c");
91         String JavaDoc res = XMLWriter.write(parent, false, true);
92         assertEquals(res, res, "<a><b/><b/><c id=\"t\"/><c/><d/></a>");
93     }
94     public void testAppendChild9() {
95         Element parent = getElement("<a><x /></a>");
96         Element c = parent.getOwnerDocument().createElement("c");
97         DocumentReader.appendChild(parent, c, "(x|y),c");
98         String JavaDoc res = XMLWriter.write(parent, false, true);
99         assertEquals(res, res, "<a><x/><c/></a>");
100     }
101     public void testAppendChild10() {
102         Element parent = getElement("<a><q /></a>");
103         Element c = parent.getOwnerDocument().createElement("c");
104         DocumentReader.appendChild(parent, c, "(x|y),c");
105         String JavaDoc res = XMLWriter.write(parent, false, true);
106         assertEquals(res, res, "<a><c/><q/></a>");
107     }
108
109     private void testToDocument(String JavaDoc s) {
110         Element parent1 = getElement(s);
111         Element parent2 = DocumentReader.toDocument(parent1).getDocumentElement();
112         String JavaDoc res1 = XMLWriter.write(parent1, false, true);
113         String JavaDoc res2 = XMLWriter.write(parent2, false, true);
114         assertTrue(res1 + "!=" + res2, res1.equals(res2));
115     }
116     public void testToDocument() {
117         String JavaDoc[] cases = { "<a><b /></a>",
118                            "<a xml:lang='nl'><b /></a>",
119                            "<a xml:lang='nl' c='d'><b /></a>",
120                            "<a xml:lang='nl' c='d'><b /><b /></a>",
121                            "<a xml:lang='nl' c='d'><b /><!-- hoi --><b /></a>",
122                            "<a xml:lang='nl'><b>abc</b><b c='d'>hoi<c/></b></a>"};
123         for (int i = 0 ; i < cases.length; i ++) {
124             testToDocument(cases[i]);
125         }
126     }
127 }
128
Popular Tags