KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > appfuse > webapp > filter > LocaleFilterTest


1 package org.appfuse.webapp.filter;
2
3 import java.util.Locale JavaDoc;
4
5 import javax.servlet.jsp.jstl.core.Config;
6
7 import junit.framework.TestCase;
8
9 import org.appfuse.Constants;
10 import org.springframework.context.i18n.LocaleContextHolder;
11 import org.springframework.mock.web.MockFilterConfig;
12 import org.springframework.mock.web.MockHttpServletRequest;
13 import org.springframework.mock.web.MockHttpServletResponse;
14 import org.springframework.mock.web.MockHttpSession;
15
16 public class LocaleFilterTest extends TestCase {
17     private LocaleFilter filter = null;
18     
19     protected void setUp() {
20         filter = new LocaleFilter();
21         filter.setFilterConfig(new MockFilterConfig());
22     }
23     
24     public void testSetLocaleInSessionWhenSessionIsNull() throws Exception JavaDoc {
25         MockHttpServletRequest request = new MockHttpServletRequest();
26         request.addParameter("locale", "es");
27
28         MockHttpServletResponse response = new MockHttpServletResponse();
29         filter.doFilter(request, response, new MockFilterChain());
30         
31         // no session, should result in null
32
assertNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY));
33         // thread locale should always have it, regardless of session
34
assertNotNull(LocaleContextHolder.getLocale());
35     }
36     
37     public void testSetLocaleInSessionWhenSessionNotNull() throws Exception JavaDoc {
38         MockHttpServletRequest request = new MockHttpServletRequest();
39         request.addParameter("locale", "es");
40
41         MockHttpServletResponse response = new MockHttpServletResponse();
42         request.setSession(new MockHttpSession(null));
43         
44         filter.doFilter(request, response, new MockFilterChain());
45         
46         // session not null, should result in not null
47
Locale JavaDoc locale = (Locale JavaDoc) request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY);
48         assertNotNull(locale);
49         assertNotNull(LocaleContextHolder.getLocale());
50         assertEquals(new Locale JavaDoc("es"), locale);
51     }
52     
53     public void testSetInvalidLocale() throws Exception JavaDoc {
54         MockHttpServletRequest request = new MockHttpServletRequest();
55         request.addParameter("locale", "foo");
56
57         MockHttpServletResponse response = new MockHttpServletResponse();
58         request.setSession(new MockHttpSession(null));
59         
60         filter.doFilter(request, response, new MockFilterChain());
61         
62         // a locale will get set regardless - there's no such thing as an invalid one
63
assertNotNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY));
64     }
65     
66     public void testJstlLocaleIsSet() throws Exception JavaDoc {
67         MockHttpServletRequest request = new MockHttpServletRequest();
68         request.addParameter("locale", "es");
69
70         MockHttpServletResponse response = new MockHttpServletResponse();
71         request.setSession(new MockHttpSession(null));
72         
73         filter.doFilter(request, response, new MockFilterChain());
74         
75         assertNotNull(Config.get(request.getSession(), Config.FMT_LOCALE));
76     }
77 }
78
Popular Tags