1 package org.appfuse.webapp.filter; 2 3 import java.util.Locale ; 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 { 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 assertNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY)); 33 assertNotNull(LocaleContextHolder.getLocale()); 35 } 36 37 public void testSetLocaleInSessionWhenSessionNotNull() throws Exception { 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 Locale locale = (Locale ) request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY); 48 assertNotNull(locale); 49 assertNotNull(LocaleContextHolder.getLocale()); 50 assertEquals(new Locale ("es"), locale); 51 } 52 53 public void testSetInvalidLocale() throws Exception { 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 assertNotNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY)); 64 } 65 66 public void testJstlLocaleIsSet() throws Exception { 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 |