1 17 package servletunit.tests; 18 19 import junit.framework.TestCase; 20 import servletunit.HttpServletRequestSimulator; 21 import servletunit.ServletContextSimulator; 22 23 import javax.servlet.RequestDispatcher; 24 import java.io.File; 25 import java.text.ParseException; 26 import java.text.SimpleDateFormat; 27 import java.util.Enumeration; 28 import java.util.Locale; 29 import java.util.Date; 30 31 36 37 public class TestHttpServletRequestSimulator extends TestCase { 38 39 HttpServletRequestSimulator request; 40 ServletContextSimulator context; 41 42 public TestHttpServletRequestSimulator(String testCase) { 43 super(testCase); 44 } 45 46 public void setUp() { 47 context = new ServletContextSimulator(); 48 request = new HttpServletRequestSimulator(context); 49 } 50 51 public void testAddParameterArray() { 52 String[] values = { "value1", "value2" }; 53 request.addParameter("name1",values); 54 String[] result = request.getParameterValues("name1"); 55 if (result.length != 2) 56 fail(); 57 if (!((result[0].equals("value1")) && (result[1].equals("value2")))) 58 fail(); 59 } 60 61 public void testGetParameterValuesSingle() { 62 request.addParameter("name1","value1"); 63 String[] result = request.getParameterValues("name1"); 64 if (result.length != 1) 65 fail(); 66 if (!(result[0].equals("value1"))) 67 fail(); 68 } 69 70 public void testGetParameterWithNullKey() { 71 String result = request.getParameter(null); 72 assertNull(result); 73 74 } 75 76 public void testGetParameterValuesWithNullKey() { 77 String[] result = request.getParameterValues(null); 78 assertNull(result); 79 80 } 81 82 public void testGetParameterWithArray() { 83 String[] values = { "value1", "value2" }; 84 request.addParameter("name1",values); 85 String result = request.getParameter("name1"); 86 if (!(result.equals("value1"))) 87 fail(); 88 } 89 90 public void testSetAttributeNullValue() { 91 request.setAttribute("test1","value1"); 92 assertEquals(request.getAttribute("test1"),"value1"); 93 request.setAttribute("test1",null); 94 assertNull(request.getAttribute("test1")); 95 } 96 97 public void testSetAttribute() { 98 request.setAttribute("test1","value1"); 99 assertEquals(request.getAttribute("test1"),"value1"); 100 } 101 102 public void testIsUserInRole() { 103 request.setUserRole("role1"); 104 assertTrue(request.isUserInRole("role1")); 105 } 106 107 public void testIsUserInRoleFalse() { 108 request.setUserRole("role2"); 109 assertTrue(!request.isUserInRole("role1")); 110 } 111 112 public void testGetServerPort() { 113 request.setServerPort(8080); 114 assertEquals(request.getServerPort(),8080); 115 } 116 117 public void testGetRequestURLWithQueryString() { 118 request.setRequestURL("https://server:8080/my/request/url?param=1"); 119 assertEquals("https://server:8080/my/request/url",request.getRequestURL().toString()); 120 assertEquals("param=1",request.getQueryString()); 121 assertEquals("https",request.getScheme()); 122 assertTrue(request.isSecure()); 123 assertEquals("/my/request/url",request.getRequestURI()); 124 assertEquals("server",request.getServerName()); 125 assertEquals(8080,request.getServerPort()); 126 } 127 128 public void testGetRequestURLWithoutQueryStringOrPort() { 129 request.setRequestURL("http://server/my/request/url"); 130 assertEquals("http://server/my/request/url",request.getRequestURL().toString()); 131 assertNull(request.getQueryString()); 132 assertEquals("http",request.getScheme()); 133 assertTrue(!request.isSecure()); 134 assertEquals("/my/request/url",request.getRequestURI()); 135 assertEquals("server",request.getServerName()); 136 assertEquals(80,request.getServerPort()); 137 } 138 139 public void testGetSecurePort() { 140 request.setRequestURL("https://server/my/request/url?param=1"); 141 assertTrue(request.isSecure()); 142 assertEquals(443,request.getServerPort()); 143 } 144 145 public void testGetLocales() { 146 Enumeration enum = request.getLocales(); 147 for (Object enumObject = enum.nextElement(); enum.hasMoreElements(); enumObject = enum.nextElement()) { 148 Locale locale = (Locale) enumObject; 149 if (!locale.equals(Locale.US)) 150 fail(); 151 } 152 } 153 154 public void testGetDateHeaderNoHeader() { 155 assertEquals(-1,request.getDateHeader("foo")); 156 } 157 158 public void testGetDateHeaderBadHeader() { 159 request.setHeader("DATE_HEADER","foofoofoo"); 160 try { 161 request.getDateHeader("DATE_HEADER"); 162 } catch (IllegalArgumentException iae) { 163 return; 164 } 165 fail(); 166 } 167 168 public void testGetDateHeader() throws ParseException 169 { 170 String date = "05/23/73 8:05 PM, PST"; 171 long time = new SimpleDateFormat().parse(date).getTime(); 172 request.setDateHeader("DATE_HEADER",time); 173 assertEquals(time,request.getDateHeader("DATE_HEADER")); 174 } 175 176 public void testGetRealPath() { 177 File file = new File(System.getProperty("basedir")); 178 context.setContextDirectory(file); 179 assertEquals(new File(file,"test.html").getAbsolutePath(),request.getRealPath("/test.html")); 180 } 181 182 public void testGetRealPathNotSet() { 183 assertNull(request.getRealPath("/test.html")); 184 } 185 186 public void testReturnsRequestDispatcher() { 187 RequestDispatcher dispatcher = request.getRequestDispatcher("/test/login.jsp"); 188 assertNotNull(dispatcher); 189 } 190 191 192 } 193 194 | Popular Tags |