| 1 16 package org.ditchnet.jsp.util; 17 18 import junit.framework.Test; 19 import junit.framework.TestSuite; 20 import junit.framework.TestCase; 21 import org.ditchnet.test.DitchBaseTestCase; 22 import org.ditchnet.xml.Xhtml; 23 24 25 public class JspResponseWriterTest extends DitchBaseTestCase { 26 27 JspResponseWriter writer; 28 StringBuffer buff; 29 30 public JspResponseWriterTest(String name) { 31 super(name); 32 } 33 34 public void setUp() { 35 writer = new JspResponseWriter(); 36 buff = writer.getBuffer(); 37 } 38 39 private void dump(String expected,StringBuffer buff) { 40 super.dump("expected:"+expected,"\n\nbuff:"+buff.toString()); 41 } 42 43 public void testStartElement() { 44 String expected = "\n<div"; 45 writer.startElement(Xhtml.Tag.DIV); 46 assertEquals(expected,buff.toString()); 48 } 49 50 public void testPrettyPrinting() { 51 String expected = "\n<html>\n\t<head>\n\t<title>\n\t</title>\n\t" + 52 "</head>\n\t</html>"; 53 writer.startElement(Xhtml.Tag.HTML); 54 writer.startElement(Xhtml.Tag.HEAD); 55 writer.startElement(Xhtml.Tag.TITLE); 56 writer.endElement(Xhtml.Tag.TITLE); 57 writer.endElement(Xhtml.Tag.HEAD); 58 writer.endElement(Xhtml.Tag.HTML); 59 } 60 61 public void testFalseArgConstructor() { 62 String expected = "<div><img border=\"1\" /></div><!-- " + 63 "xul is cool -->"; 64 JspResponseWriter writer = new JspResponseWriter(false); 65 StringBuffer buff = writer.getBuffer(); 66 writer.startElement(Xhtml.Tag.DIV); 67 writer.startElement(Xhtml.Tag.IMG); 68 writer.attribute(Xhtml.Attr.BORDER,"1"); 69 writer.endElement(Xhtml.Tag.IMG); 70 writer.endElement(Xhtml.Tag.DIV); 71 writer.comment("xul is cool"); 72 assertEquals(expected,buff.toString()); 73 } 74 75 public void testTrueArgConstructor() { 76 String expected = "\n<div>\n\t<img border=\"1\" />\n</div><!-- " + 77 "xul is cool -->"; 78 JspResponseWriter writer = new JspResponseWriter(true); 79 StringBuffer buff = writer.getBuffer(); 80 writer.startElement(Xhtml.Tag.DIV); 81 writer.startElement(Xhtml.Tag.IMG); 82 writer.attribute(Xhtml.Attr.BORDER,"1"); 83 writer.endElement(Xhtml.Tag.IMG); 84 writer.endElement(Xhtml.Tag.DIV); 85 writer.comment("xul is cool"); 86 assertEquals(expected,buff.toString()); 88 } 89 90 public void testEndElement() { 91 writer.endElement(Xhtml.Tag.SPAN); 92 assertEquals(buff.toString(),"\n</span>"); 93 } 94 95 public void testNSStartElement() { 96 String expected = "\n<html:body"; 97 writer.startElement("html",Xhtml.Tag.BODY); 98 assertEquals(expected,buff.toString()); 99 } 100 101 public void testNSEndElement() { 102 String expected = "\n</xhtml:script>"; 103 writer.endElement("xhtml",Xhtml.Tag.SCRIPT); 104 assertEquals(expected,buff.toString()); 105 } 106 107 public void testLineBreak() { 108 String expected = "\n"; 109 writer.lineBreak(); 110 assertEquals(expected,buff.toString()); 111 } 112 113 public void testTabStop() { 114 String expected = "\t"; 115 writer.tabStop(); 116 assertEquals(expected,buff.toString()); 117 } 118 119 public void testAttribute() { 120 String expected = "\n<input type=\"button\""; 121 writer.startElement(Xhtml.Tag.INPUT); 122 writer.attribute(Xhtml.Attr.TYPE,"button"); 123 assertEquals(expected,buff.toString()); 124 } 125 126 public void testAttributeNS() { 127 String expected = "\n<div xml:lang=\"en-uk\">\n</div>"; 128 writer.startElement(Xhtml.Tag.DIV); 129 writer.attribute("xml",Xhtml.Attr.LANG,"en-uk"); 130 writer.lineBreak(); 131 writer.endElement(Xhtml.Tag.DIV); 132 } 133 134 public void testIllegalStateAttribute() { 135 try { 136 writer.attribute(Xhtml.Attr.TYPE,"text"); 137 fail("Should have thrown IllegalStateException for illegal " + 138 "attribute"); 139 } catch (IllegalStateException expected) { 140 assertTrue(true); 141 } 142 } 143 144 public void testNullAttributeName() { 145 writer.startElement(Xhtml.Tag.INPUT); 146 try { 147 writer.attribute(null,"12"); 148 fail("Should have thrown NullPointerException for null attribute" + 149 " name"); 150 } catch (NullPointerException expected) { 151 assertTrue(true); 152 } 153 } 154 155 public void testText() { 156 String expected = "\n<html>hey dude"; 157 writer.startElement(Xhtml.Tag.HTML); 158 writer.text("hey dude"); 159 assertEquals(expected,buff.toString()); 160 } 161 162 public void testNullText() { 163 try { 164 writer.text(null); 165 fail("Should have thrown NullPointerException for null text"); 166 } catch (NullPointerException expected) { 167 assertTrue(true); 168 } 169 } 170 171 public void testComment() { 172 String expected = "\n<body><!-- cool man -->"; 173 writer.startElement(Xhtml.Tag.BODY); 174 writer.comment("cool man"); 175 assertEquals(expected,buff.toString()); 176 } 177 178 public void testNullComment() { 179 try { 180 writer.comment(null); 181 fail("Should have thrown NullPointerException for null comment"); 182 } catch (NullPointerException expected) { 183 assertTrue(true); 184 } 185 } 186 187 public void testEmptyElement() { 188 String expected = "\n<img alt=\"a picture\" />\n<span>\n</span>"; 189 writer.startElement(Xhtml.Tag.IMG); 190 writer.attribute(Xhtml.Attr.ALT,"a picture"); 191 writer.endElement(Xhtml.Tag.IMG); 192 writer.startElement(Xhtml.Tag.SPAN); 193 writer.text(""); 194 writer.endElement(Xhtml.Tag.SPAN); 195 assertEquals(expected,buff.toString()); 197 } 198 199 public void testLineBreakCreatesNonEmptyElement() { 200 String expected = "\n<span>\n\n</span>\n<div lang=\"us-en\">\n\n</div>"; 201 writer.startElement(Xhtml.Tag.SPAN); 202 writer.lineBreak(); 203 writer.endElement(Xhtml.Tag.SPAN); 204 writer.startElement(Xhtml.Tag.DIV); 205 writer.attribute(Xhtml.Attr.LANG,"us-en"); 206 writer.lineBreak(); 207 writer.endElement(Xhtml.Tag.DIV); 208 assertEquals(expected,buff.toString()); 210 } 211 212 public void testTabStopCreatesNonEmptyElement() { 213 String expected = "\n<span>\t\n</span>"; 214 writer.startElement(Xhtml.Tag.SPAN); 215 writer.tabStop(); 216 writer.endElement(Xhtml.Tag.SPAN); 217 assertEquals(expected,buff.toString()); 219 } 220 221 public static Test suite() { 222 return new TestSuite(JspResponseWriterTest.class); 223 } 224 225 } | Popular Tags |