1 7 8 package org.dom4j.io; 9 10 import junit.textui.TestRunner; 11 12 import java.io.StringReader ; 13 import java.io.StringWriter ; 14 15 import org.dom4j.AbstractTestCase; 16 import org.dom4j.Document; 17 18 24 public class WriteUnmergedTextTest extends AbstractTestCase { 25 protected static final boolean VERBOSE = true; 26 27 private String inputText = "<?xml version = \"1.0\"?>" 28 + "<TestEscapedEntities><TEXT>Test using < " 29 + "& ></TEXT></TestEscapedEntities>"; 30 31 public static void main(String [] args) { 32 TestRunner.run(WriteUnmergedTextTest.class); 33 } 34 35 public String readwriteText(OutputFormat outFormat, 38 boolean mergeAdjacentText) throws Exception { 39 StringWriter out = new StringWriter (); 40 StringReader in = new StringReader (inputText); 41 SAXReader reader = new SAXReader(); 42 43 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 outText = out.toString(); 54 55 return outText; 56 } 57 58 public void testWithoutFormatNonMerged() throws Exception { 59 String outText = readwriteText(null, false); 60 61 if (VERBOSE) { 62 log("Text output is ["); 63 log(outText); 64 log("]. Done"); 65 } 66 67 assertTrue("Output text contains \"&\"", outText 69 .lastIndexOf("&") >= 0); 70 assertTrue("Output text contains \"<\"", 71 outText.lastIndexOf("<") >= 0); 72 } 73 74 public void testWithCompactFormatNonMerged() throws Exception { 75 String outText = readwriteText(OutputFormat.createCompactFormat(), 76 false); 77 78 if (VERBOSE) { 79 log("Text output is ["); 80 log(outText); 81 log("]. Done"); 82 } 83 84 assertTrue("Output text contains \"&\"", outText 86 .lastIndexOf("&") >= 0); 87 assertTrue("Output text contains \"<\"", 88 outText.lastIndexOf("<") >= 0); 89 } 90 91 public void testWithPrettyPrintFormatNonMerged() throws Exception { 92 String outText = readwriteText(OutputFormat.createPrettyPrint(), false); 93 94 if (VERBOSE) { 95 log("Text output is ["); 96 log(outText); 97 log("]. Done"); 98 } 99 100 assertTrue("Output text contains \"&\"", outText 102 .lastIndexOf("&") >= 0); 103 assertTrue("Output text contains \"<\"", 104 outText.lastIndexOf("<") >= 0); 105 } 106 107 public void testWithoutFormatMerged() throws Exception { 108 String outText = readwriteText(null, true); 109 110 if (VERBOSE) { 111 log("Text output is ["); 112 log(outText); 113 log("]. Done"); 114 } 115 116 assertTrue("Output text contains \"&\"", outText 118 .lastIndexOf("&") >= 0); 119 assertTrue("Output text contains \"<\"", 120 outText.lastIndexOf("<") >= 0); 121 } 122 123 public void testWithCompactFormatMerged() throws Exception { 124 String out = readwriteText(OutputFormat.createCompactFormat(), true); 125 126 if (VERBOSE) { 127 log("Text output is ["); 128 log(out); 129 log("]. Done"); 130 } 131 132 assertTrue("Output text contains \"&\"", out 134 .lastIndexOf("&") >= 0); 135 assertTrue("Output text contains \"<\"", 136 out.lastIndexOf("<") >= 0); 137 } 138 139 public void testWithPrettyPrintFormatMerged() throws Exception { 140 String outText = readwriteText(OutputFormat.createPrettyPrint(), true); 141 142 if (VERBOSE) { 143 log("Text output is ["); 144 log(outText); 145 log("]. Done"); 146 } 147 148 assertTrue("Output text contains \"&\"", outText 150 .lastIndexOf("&") >= 0); 151 assertTrue("Output text contains \"<\"", 152 outText.lastIndexOf("<") >= 0); 153 } 154 } 155 156 192 | Popular Tags |