📄 localefiltertest.java
字号:
package com.cib.webapp.filter;import java.util.Locale;import javax.servlet.jsp.jstl.core.Config;import junit.framework.TestCase;import com.cib.Constants;import org.springframework.context.i18n.LocaleContextHolder;import org.springframework.mock.web.MockFilterConfig;import org.springframework.mock.web.MockHttpServletRequest;import org.springframework.mock.web.MockHttpServletResponse;import org.springframework.mock.web.MockHttpSession;public class LocaleFilterTest extends TestCase { private LocaleFilter filter = null; protected void setUp() throws Exception { filter = new LocaleFilter(); filter.init(new MockFilterConfig()); } public void testSetLocaleInSessionWhenSessionIsNull() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("locale", "es"); MockHttpServletResponse response = new MockHttpServletResponse(); filter.doFilter(request, response, new MockFilterChain()); // no session, should result in null assertNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY)); // thread locale should always have it, regardless of session assertNotNull(LocaleContextHolder.getLocale()); } public void testSetLocaleInSessionWhenSessionNotNull() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("locale", "es"); MockHttpServletResponse response = new MockHttpServletResponse(); request.setSession(new MockHttpSession(null)); filter.doFilter(request, response, new MockFilterChain()); // session not null, should result in not null Locale locale = (Locale) request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY); assertNotNull(locale); assertNotNull(LocaleContextHolder.getLocale()); assertEquals(new Locale("es"), locale); } public void testSetInvalidLocale() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("locale", "foo"); MockHttpServletResponse response = new MockHttpServletResponse(); request.setSession(new MockHttpSession(null)); filter.doFilter(request, response, new MockFilterChain()); // a locale will get set regardless - there's no such thing as an invalid one assertNotNull(request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY)); } public void testJstlLocaleIsSet() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); request.addParameter("locale", "es"); MockHttpServletResponse response = new MockHttpServletResponse(); request.setSession(new MockHttpSession(null)); filter.doFilter(request, response, new MockFilterChain()); assertNotNull(Config.get(request.getSession(), Config.FMT_LOCALE)); } public void testLocaleAndCountry() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); request.setSession(new MockHttpSession()); request.addParameter("locale", "zh_TW"); MockHttpServletResponse response = new MockHttpServletResponse(); filter.doFilter(request, response, new MockFilterChain()); // session not null, should result in not null Locale locale = (Locale) request.getSession().getAttribute(Constants.PREFERRED_LOCALE_KEY); assertNotNull(locale); assertEquals(new Locale("zh", "TW"), locale); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -