1 17 package com.sun.syndication.unittest; 18 19 import com.sun.syndication.io.XmlReader; 20 import com.sun.syndication.io.impl.XmlFixerReader; 21 import junit.framework.TestCase; 22 import org.jdom.input.SAXBuilder; 23 24 import java.io.*; 25 26 30 public class TestXmlFixerReader extends TestCase { 31 private static final String XML_PROLOG = "<?xml version=\"1.0\" ?>"; 32 33 public void testTrim() throws Exception { 34 _testValidTrim("","<hello></hello>"); 35 _testValidTrim("",XML_PROLOG+"<hello></hello>"); 36 _testValidTrim(" ","<hello></hello>"); 37 _testValidTrim(" ",XML_PROLOG+"<hello></hello>"); 38 _testValidTrim(" \n","<hello></hello>"); 39 _testValidTrim(" \n",XML_PROLOG+"<hello></hello>"); 40 _testValidTrim("<!-- - -- -->","<hello></hello>"); 41 _testValidTrim("<!-- - -- -->",XML_PROLOG+"<hello></hello>"); 42 _testValidTrim(" <!-- - -- -->","<hello></hello>"); 43 _testValidTrim(" <!-- - -- -->",XML_PROLOG+"<hello></hello>"); 44 _testValidTrim(" <!-- - -- --> ","<hello></hello>"); 45 _testValidTrim(" <!-- - -- --> ",XML_PROLOG+"<hello></hello>"); 46 _testValidTrim(" <!-- - -- --> <!-- - -- --> ","<hello></hello>"); 47 _testValidTrim(" <!-- - -- --> <!-- - -- --> ",XML_PROLOG+"<hello></hello>"); 48 _testValidTrim(" <!-- - -- --> \n <!-- - -- --> ","<hello></hello>"); 49 _testValidTrim(" <!-- - -- --> \n <!-- - -- --> ",XML_PROLOG+"<hello></hello>"); 50 51 _testInvalidTrim("x","<hello></hello>"); 52 _testInvalidTrim("x",XML_PROLOG+"<hello></hello>"); 53 _testInvalidTrim(" x","<hello></hello>"); 54 _testInvalidTrim(" x",XML_PROLOG+"<hello></hello>"); 55 _testInvalidTrim(" x\n","<hello></hello>"); 56 _testInvalidTrim(" x\n",XML_PROLOG+"<hello></hello>"); 57 _testInvalidTrim("<!-- - -- - ->","<hello></hello>"); 58 _testInvalidTrim("<!-- - -- - ->",XML_PROLOG+"<hello></hello>"); 59 _testInvalidTrim(" <!-- - -- -- >","<hello></hello>"); 60 _testInvalidTrim(" <!-- - -- -- >",XML_PROLOG+"<hello></hello>"); 61 _testInvalidTrim(" <!-- - -- -->x ","<hello></hello>"); 62 _testInvalidTrim(" <!-- - -- -->x ",XML_PROLOG+"<hello></hello>"); 63 _testInvalidTrim(" <!-- - -- --> x <!-- - -- --> ","<hello></hello>"); 64 _testInvalidTrim(" <!-- - -- --> x <!-- - -- --> ",XML_PROLOG+"<hello></hello>"); 65 _testInvalidTrim(" <!-- - -- --> x\n <!-- - -- --> ","<hello></hello>"); 66 _testInvalidTrim(" <!-- - -- --> x\n <!-- - -- --> ",XML_PROLOG+"<hello></hello>"); 67 } 68 69 public void testHtmlEntities() throws Exception { 70 _testValidEntities("<hello></hello>"); 71 _testValidEntities(XML_PROLOG+"<hello></hello>"); 72 _testValidEntities(" <!-- just in case -->\n"+XML_PROLOG+"<hello></hello>"); 73 74 _testValidEntities("<hello>'¥ú¥</hello>"); 75 _testValidEntities(XML_PROLOG+"<hello>'¥ú¥</hello>"); 76 _testValidEntities(" <!-- just in case -->\n"+XML_PROLOG+"<hello>'¥ú¥</hello>"); 77 78 _testInvalidEntities("<hello>'&yexn;ú¥</hello>"); 79 _testInvalidEntities(XML_PROLOG+"<hello>'&yexn;ú¥</hello>"); 80 _testInvalidEntities(" <!-- just in case -->\n"+XML_PROLOG+"<hello>'&yexn;ú¥</hello>"); 81 82 _testInvalidEntities("<hello>'¥x50;¥</hello>"); 83 _testInvalidEntities(XML_PROLOG+"<hello>'¥x50;¥</hello>"); 84 _testInvalidEntities(" <!-- just in case -->\n"+XML_PROLOG+"<hello>'¥x50;¥</hello>"); 85 86 } 87 88 protected void _testXmlParse(String garbish,String xmlDoc) throws Exception { 89 InputStream is = getStream(garbish,xmlDoc); 90 Reader reader = new XmlReader(is); 91 reader = new XmlFixerReader(reader); 92 SAXBuilder saxBuilder = new SAXBuilder(); 93 saxBuilder.build(reader); 94 } 95 96 protected void _testValidTrim(String garbish,String xmlDoc) throws Exception { 97 _testXmlParse(garbish,xmlDoc); 98 } 99 100 protected void _testInvalidTrim(String garbish,String xmlDoc) throws Exception { 101 try { 102 _testXmlParse(garbish,xmlDoc); 103 assertTrue(false); 104 } 105 catch (Exception ex) { 106 } 107 } 108 109 protected void _testValidEntities(String xmlDoc) throws Exception { 110 _testXmlParse("",xmlDoc); 111 } 112 113 protected void _testInvalidEntities(String xmlDoc) throws Exception { 114 try { 115 _testXmlParse("",xmlDoc); 116 assertTrue(false); 117 } 118 catch (Exception ex) { 119 } 120 } 121 122 124 protected InputStream getStream(String garbish,String xmlDoc) throws IOException { 125 ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); 126 Writer writer = new OutputStreamWriter(baos); 127 writer.write(garbish); 128 writer.write(xmlDoc); 129 writer.close(); 130 return new ByteArrayInputStream(baos.toByteArray()); 131 } 132 133 134 } 135 | Popular Tags |