KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > dom4j > io > WriteUnmergedTextTest


1 /*
2  * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
3  *
4  * This software is open source.
5  * See the bottom of this file for the licence.
6  */

7
8 package org.dom4j.io;
9
10 import junit.textui.TestRunner;
11
12 import java.io.StringReader JavaDoc;
13 import java.io.StringWriter JavaDoc;
14
15 import org.dom4j.AbstractTestCase;
16 import org.dom4j.Document;
17
18 /**
19  * A simple test harness to check that the XML Writer works
20  *
21  * @author <a HREF="mailto:james.strachan@metastuff.com">James Strachan </a>
22  * @version $Revision: 1.3 $
23  */

24 public class WriteUnmergedTextTest extends AbstractTestCase {
25     protected static final boolean VERBOSE = true;
26
27     private String JavaDoc inputText = "<?xml version = \"1.0\"?>"
28             + "<TestEscapedEntities><TEXT>Test using &lt; "
29             + "&amp; &gt;</TEXT></TestEscapedEntities>";
30
31     public static void main(String JavaDoc[] args) {
32         TestRunner.run(WriteUnmergedTextTest.class);
33     }
34
35     // Test case(s)
36
// -------------------------------------------------------------------------
37
public String JavaDoc readwriteText(OutputFormat outFormat,
38             boolean mergeAdjacentText) throws Exception JavaDoc {
39         StringWriter JavaDoc out = new StringWriter JavaDoc();
40         StringReader JavaDoc in = new StringReader JavaDoc(inputText);
41         SAXReader reader = new SAXReader();
42
43         // reader.setValidation(true);
44
reader.setMergeAdjacentText(mergeAdjacentText);
45
46         Document document = reader.read(in);
47
48         XMLWriter writer = (outFormat == null) ? new XMLWriter(out)
49                 : new XMLWriter(out, outFormat);
50         writer.write(document);
51         writer.close();
52
53         String JavaDoc outText = out.toString();
54
55         return outText;
56     }
57
58     public void testWithoutFormatNonMerged() throws Exception JavaDoc {
59         String JavaDoc outText = readwriteText(null, false);
60
61         if (VERBOSE) {
62             log("Text output is [");
63             log(outText);
64             log("]. Done");
65         }
66
67         // should contain &amp; and &lt;
68
assertTrue("Output text contains \"&amp;\"", outText
69                 .lastIndexOf("&amp;") >= 0);
70         assertTrue("Output text contains \"&lt;\"",
71                 outText.lastIndexOf("&lt;") >= 0);
72     }
73
74     public void testWithCompactFormatNonMerged() throws Exception JavaDoc {
75         String JavaDoc outText = readwriteText(OutputFormat.createCompactFormat(),
76                 false);
77
78         if (VERBOSE) {
79             log("Text output is [");
80             log(outText);
81             log("]. Done");
82         }
83
84         // should contain &amp; and &lt;
85
assertTrue("Output text contains \"&amp;\"", outText
86                 .lastIndexOf("&amp;") >= 0);
87         assertTrue("Output text contains \"&lt;\"",
88                 outText.lastIndexOf("&lt;") >= 0);
89     }
90
91     public void testWithPrettyPrintFormatNonMerged() throws Exception JavaDoc {
92         String JavaDoc outText = readwriteText(OutputFormat.createPrettyPrint(), false);
93
94         if (VERBOSE) {
95             log("Text output is [");
96             log(outText);
97             log("]. Done");
98         }
99
100         // should contain &amp; and &lt;
101
assertTrue("Output text contains \"&amp;\"", outText
102                 .lastIndexOf("&amp;") >= 0);
103         assertTrue("Output text contains \"&lt;\"",
104                 outText.lastIndexOf("&lt;") >= 0);
105     }
106
107     public void testWithoutFormatMerged() throws Exception JavaDoc {
108         String JavaDoc outText = readwriteText(null, true);
109
110         if (VERBOSE) {
111             log("Text output is [");
112             log(outText);
113             log("]. Done");
114         }
115
116         // should contain &amp; and &lt;
117
assertTrue("Output text contains \"&amp;\"", outText
118                 .lastIndexOf("&amp;") >= 0);
119         assertTrue("Output text contains \"&lt;\"",
120                 outText.lastIndexOf("&lt;") >= 0);
121     }
122
123     public void testWithCompactFormatMerged() throws Exception JavaDoc {
124         String JavaDoc out = readwriteText(OutputFormat.createCompactFormat(), true);
125
126         if (VERBOSE) {
127             log("Text output is [");
128             log(out);
129             log("]. Done");
130         }
131
132         // should contain &amp; and &lt;
133
assertTrue("Output text contains \"&amp;\"", out
134                 .lastIndexOf("&amp;") >= 0);
135         assertTrue("Output text contains \"&lt;\"",
136                 out.lastIndexOf("&lt;") >= 0);
137     }
138
139     public void testWithPrettyPrintFormatMerged() throws Exception JavaDoc {
140         String JavaDoc outText = readwriteText(OutputFormat.createPrettyPrint(), true);
141
142         if (VERBOSE) {
143             log("Text output is [");
144             log(outText);
145             log("]. Done");
146         }
147
148         // should contain &amp; and &lt;
149
assertTrue("Output text contains \"&amp;\"", outText
150                 .lastIndexOf("&amp;") >= 0);
151         assertTrue("Output text contains \"&lt;\"",
152                 outText.lastIndexOf("&lt;") >= 0);
153     }
154 }
155
156 /*
157  * Redistribution and use of this software and associated documentation
158  * ("Software"), with or without modification, are permitted provided that the
159  * following conditions are met:
160  *
161  * 1. Redistributions of source code must retain copyright statements and
162  * notices. Redistributions must also contain a copy of this document.
163  *
164  * 2. Redistributions in binary form must reproduce the above copyright notice,
165  * this list of conditions and the following disclaimer in the documentation
166  * and/or other materials provided with the distribution.
167  *
168  * 3. The name "DOM4J" must not be used to endorse or promote products derived
169  * from this Software without prior written permission of MetaStuff, Ltd. For
170  * written permission, please contact dom4j-info@metastuff.com.
171  *
172  * 4. Products derived from this Software may not be called "DOM4J" nor may
173  * "DOM4J" appear in their names without prior written permission of MetaStuff,
174  * Ltd. DOM4J is a registered trademark of MetaStuff, Ltd.
175  *
176  * 5. Due credit should be given to the DOM4J Project - http://www.dom4j.org
177  *
178  * THIS SOFTWARE IS PROVIDED BY METASTUFF, LTD. AND CONTRIBUTORS ``AS IS'' AND
179  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
180  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
181  * ARE DISCLAIMED. IN NO EVENT SHALL METASTUFF, LTD. OR ITS CONTRIBUTORS BE
182  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
183  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
184  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
185  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
186  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
187  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
188  * POSSIBILITY OF SUCH DAMAGE.
189  *
190  * Copyright 2001-2005 (C) MetaStuff, Ltd. All Rights Reserved.
191  */

192
Popular Tags