1 7 8 package org.dom4j; 9 10 import junit.textui.TestRunner; 11 12 import java.io.StringWriter ; 13 14 import org.dom4j.io.HTMLWriter; 15 import org.dom4j.io.OutputFormat; 16 17 23 public class HTMLWriterTest extends AbstractTestCase { 24 public static void main(String [] args) { 25 TestRunner.run(HTMLWriterTest.class); 26 } 27 28 public void testWriter() throws Exception { 31 String xml = "<html> <body><![CDATA[First test]]></body> </html>"; 32 Document document = DocumentHelper.parseText(xml); 33 StringWriter buffer = new StringWriter (); 34 HTMLWriter writer = new HTMLWriter(buffer); 35 writer.write(document); 36 37 String output = buffer.toString(); 38 39 String expects = "\n<html>\n <body>First test</body>\n</html>\n"; 40 41 System.out.println("expects: " + expects); 42 System.out.println("output: " + output); 43 44 assertEquals("Output is correct", expects, output); 45 } 46 47 public void testBug923882() throws Exception { 48 Document doc = DocumentFactory.getInstance().createDocument(); 49 Element root = doc.addElement("root"); 50 root.addText("this is "); 51 root.addText(" sim"); 52 root.addText("ple text "); 53 root.addElement("child"); 54 root.addText(" contai"); 55 root.addText("ning spaces and"); 56 root.addText(" multiple textnodes"); 57 58 OutputFormat format = new OutputFormat(); 59 format.setEncoding("UTF-8"); 60 format.setIndentSize(4); 61 format.setNewlines(true); 62 format.setTrimText(true); 63 format.setExpandEmptyElements(true); 64 65 StringWriter buffer = new StringWriter (); 66 HTMLWriter writer = new HTMLWriter(buffer, format); 67 writer.write(doc); 68 69 String xml = buffer.toString(); 70 log(xml); 71 72 int start = xml.indexOf("<root"); 73 int end = xml.indexOf("/root>") + 6; 74 String eol = "\n"; String expected = "<root>this is simple text" + eol 76 + " <child></child>containing spaces and multiple textnodes" 77 + eol + "</root>"; 78 System.out.println("Expected:"); 79 System.out.println(expected); 80 System.out.println("Obtained:"); 81 System.out.println(xml.substring(start, end)); 82 assertEquals(expected, xml.substring(start, end)); 83 } 84 85 public void testBug923882asWriter() throws Exception { 86 StringWriter buffer = new StringWriter (); 89 HTMLWriter writer = new HTMLWriter(buffer, OutputFormat 90 .createPrettyPrint()); 91 writer.characters("wor".toCharArray(), 0, 3); 92 writer.characters("d-being-cut".toCharArray(), 0, 11); 93 94 String expected = "word-being-cut"; 95 assertEquals(expected, buffer.toString()); 96 97 buffer = new StringWriter (); 98 writer = new HTMLWriter(buffer, OutputFormat.createPrettyPrint()); 99 writer.characters(" wor".toCharArray(), 0, 7); 100 writer.characters("d being ".toCharArray(), 0, 11); 101 writer.characters(" cut".toCharArray(), 0, 5); 102 103 expected = "word being cut"; 104 assertEquals(expected, buffer.toString()); 105 } 106 107 public void testBug923882asWriterWithEmptyCharArray() throws Exception { 108 StringWriter buffer = new StringWriter (); 111 HTMLWriter writer = new HTMLWriter(buffer, OutputFormat 112 .createPrettyPrint()); 113 writer.characters("wor".toCharArray(), 0, 3); 114 writer.characters(new char[0], 0, 0); 115 writer.characters("d-being-cut".toCharArray(), 0, 11); 116 117 String expected = "word-being-cut"; 118 assertEquals(expected, buffer.toString()); 119 } 120 121 public void testBug619415() throws Exception { 122 Document doc = getDocument("/xml/test/dosLineFeeds.xml"); 123 124 StringWriter wr = new StringWriter (); 125 HTMLWriter writer = new HTMLWriter(wr, new OutputFormat("", false)); 126 writer.write(doc); 127 128 String result = wr.toString(); 129 System.out.println(result); 130 131 assertTrue(result.indexOf("Mary had a little lamb.") > -1); 132 assertTrue(result.indexOf("Hello, this is a test.") > -1); 133 } 134 } 135 136 172 | Popular Tags |