KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > servletunit > tests > TestHttpServletRequestSimulator


1 // StrutsTestCase - a JUnit extension for testing Struts actions
2
// within the context of the ActionServlet.
3
// Copyright (C) 2002 Deryl Seale
4
//
5
// This library is free software; you can redistribute it and/or
6
// modify it under the terms of the Apache Software License as
7
// published by the Apache Software Foundation; either version 1.1
8
// of the License, or (at your option) any later version.
9
//
10
// This library is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// Apache Software Foundation Licens for more details.
14
//
15
// You may view the full text here: http://www.apache.org/LICENSE.txt
16

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 /**
32  * A Junit based test of the HttpServletResponseSimulator class
33  * @author Sean Pritchard
34  * @version 1.0
35  */

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