1 package com.atlassian.seraph.service.rememberme;
2
3 import com.atlassian.seraph.config.SecurityConfig;
4 import junit.framework.TestCase;
5 import static org.mockito.Mockito.mock;
6 import static org.mockito.Mockito.when;
7
8 import javax.servlet.http.HttpServletRequest;
9
10
11
12 public class TestDefaultRememberMeConfiguration extends TestCase
13 {
14 public static final int TWO_WEEKS = 2 * 7 * 24 * 60 * 60;
15 private static final String COOKIE_NAME = "atlassian.seraph.remember.me";
16
17 private SecurityConfig securityConfig;
18 private HttpServletRequest servletRequest;
19 private DefaultRememberMeConfiguration configuration;
20
21 @Override
22 protected void setUp() throws Exception
23 {
24 securityConfig = mock(SecurityConfig.class);
25 servletRequest = mock(HttpServletRequest.class);
26 configuration = new DefaultRememberMeConfiguration(securityConfig);
27 }
28
29 public void testDefaults()
30 {
31 when(securityConfig.getLoginCookieKey()).thenReturn(COOKIE_NAME);
32 when(securityConfig.getLoginCookiePath()).thenReturn(null);
33 when(securityConfig.isInsecureCookie()).thenReturn(false);
34
35 assertEquals(COOKIE_NAME, configuration.getCookieName());
36 assertEquals(false, configuration.isInsecureCookieAlwaysUsed());
37 assertEquals(null, configuration.getCookieDomain(null));
38 assertEquals(TWO_WEEKS, configuration.getCookieMaxAgeInSeconds());
39 assertEquals(false, configuration.isCookieHttpOnly());
40 }
41
42 public void testSetPaths_NotSpecified_NoContext()
43 {
44 when(securityConfig.getLoginCookiePath()).thenReturn(null);
45 when(servletRequest.getContextPath()).thenReturn("");
46
47 assertEquals("/", configuration.getCookiePath(servletRequest));
48 }
49
50 public void testSetPaths_NotSpecified_RootContext()
51 {
52 when(securityConfig.getLoginCookiePath()).thenReturn(null);
53 when(servletRequest.getContextPath()).thenReturn("/");
54
55 assertEquals("/", configuration.getCookiePath(servletRequest));
56 }
57
58 public void testSetPaths_NotSpecified_WithContext()
59 {
60 when(securityConfig.getLoginCookiePath()).thenReturn(null);
61 when(servletRequest.getContextPath()).thenReturn("/context");
62 assertEquals("/context", configuration.getCookiePath(servletRequest));
63 }
64
65 public void testSetPaths_Specified()
66 {
67 when(securityConfig.getLoginCookiePath()).thenReturn("/specified");
68 assertEquals("/specified", configuration.getCookiePath(servletRequest));
69 }
70 }