001: package com.mockrunner.test.web;
002:
003: import java.io.IOException;
004: import java.util.ArrayList;
005: import java.util.Enumeration;
006: import java.util.List;
007:
008: import javax.servlet.http.HttpServletResponse;
009:
010: import junit.framework.TestCase;
011:
012: import com.mockrunner.mock.web.MockHttpServletResponse;
013: import com.mockrunner.mock.web.MockServletOutputStream;
014:
015: public class MockHttpServletResponseTest extends TestCase {
016: private MockHttpServletResponse response;
017:
018: protected void setUp() throws Exception {
019: super .setUp();
020: response = new MockHttpServletResponse();
021: }
022:
023: public void testResetAll() throws Exception {
024: response.addHeader("header", "headervalue");
025: response.sendError(HttpServletResponse.SC_BAD_REQUEST);
026: response.setBufferSize(10);
027: response.resetAll();
028: assertNull(response.getHeader("header"));
029: assertEquals(8192, response.getBufferSize());
030: assertFalse(response.wasErrorSent());
031: }
032:
033: public void testHeaders() {
034: response.addHeader("testHeader", "xyz");
035: response.addHeader("testHeader", "abc");
036: assertTrue(response.getHeaderList("testHeader").size() == 2);
037: assertTrue(response.getHeaderList("testHeader").contains("xyz"));
038: assertTrue(response.getHeaderList("testHeader").contains("abc"));
039: response.setHeader("testHeader", "abc");
040: assertTrue(response.getHeaderList("testHeader").size() == 1);
041: assertTrue(response.getHeaderList("testHeader").contains("abc"));
042: assertEquals("abc", response.getHeader("testHeader"));
043: response.addDateHeader("dateHeader", 0);
044: String expectedDateString = "Thu, 1 Jan 1970 00:00:00 GMT";
045: assertEquals(expectedDateString, response
046: .getHeader("dateHeader"));
047: response.setDateHeader("dateHeader", 0);
048: assertEquals(expectedDateString, response
049: .getHeader("dateHeader"));
050: response.addIntHeader("intHeader", 0);
051: assertEquals("0", response.getHeader("intHeader"));
052: response.clearHeaders();
053: Enumeration headers = response.getHeaderNames();
054: assertFalse(headers.hasMoreElements());
055: }
056:
057: public void testGetHeaderNames() {
058: response.addHeader("testHeader1", "xyz1");
059: response.addHeader("testHeader1", "abc");
060: response.addHeader("testHeader2", "xyz2");
061: response.addHeader("testHeader3", "xyz3");
062: Enumeration headerNamesEnum = response.getHeaderNames();
063: List headerNames = new ArrayList();
064: while (headerNamesEnum.hasMoreElements()) {
065: headerNames.add(headerNamesEnum.nextElement());
066: }
067: assertEquals(3, headerNames.size());
068: assertTrue(headerNames.contains("testHeader1"));
069: assertTrue(headerNames.contains("testHeader2"));
070: assertTrue(headerNames.contains("testHeader3"));
071: }
072:
073: public void testHeadersCaseInsensitive() {
074: response.addHeader("testHeader", "xyz");
075: response.addHeader("TESTHeader", "abc");
076: response.addHeader("MYHEADER1", "xyz");
077: response.addHeader("myHeader2", "abc");
078: assertEquals("xyz", response.getHeader("myheader1"));
079: assertEquals("abc", response.getHeader("MYHEADER2"));
080: Enumeration headers = response.getHeaderNames();
081: List headerNames = new ArrayList();
082: while (headers.hasMoreElements()) {
083: headerNames.add(headers.nextElement());
084: }
085: assertEquals(3, headerNames.size());
086: assertTrue(headerNames.contains("testHeader"));
087: assertTrue(headerNames.contains("MYHEADER1"));
088: assertTrue(headerNames.contains("myHeader2"));
089: }
090:
091: public void testOutputStreams() throws IOException {
092: response.getOutputStream().print("test");
093: response.getWriter().print(true);
094: response.getWriter().print("test");
095: response.flushBuffer();
096: assertEquals("testtruetest", response.getOutputStreamContent());
097: }
098:
099: public void testGetSetContentType() throws IOException {
100: assertNull(response.getContentType());
101: response.setContentType("myType");
102: assertEquals("myType", response.getContentType());
103: }
104:
105: public void testFlush() throws IOException {
106: response.getOutputStream().write('a');
107: response.flushBuffer();
108: assertEquals("a", ((MockServletOutputStream) response
109: .getOutputStream()).getContent());
110: }
111:
112: public void testReset() throws IOException {
113: response.addHeader("testHeader", "xyz");
114: assertTrue(response.getHeaderList("testHeader").size() == 1);
115: response.getOutputStream().write('a');
116: response.getWriter().write("xyz");
117: response.resetBuffer();
118: assertEquals("", ((MockServletOutputStream) response
119: .getOutputStream()).getContent());
120: assertTrue(response.getHeaderList("testHeader").size() == 1);
121: response.reset();
122: assertNull(response.getHeaderList("testHeader"));
123: }
124:
125: public void testSetCharacterEncoding() throws IOException {
126: response.setCharacterEncoding("ISO-8859-1");
127: response.getWriter().write("ä");
128: response.getWriter().flush();
129: response.getOutputStream().println("ä");
130: response.setCharacterEncoding("US-ASCII");
131: assertFalse(response.getOutputStreamContent().startsWith("ää"));
132: response.setCharacterEncoding("ISO-8859-1");
133: assertTrue(response.getOutputStreamContent().startsWith("ää"));
134: }
135: }
|