/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.resolver; import javax.servlet.http.Cookie; import javax.servlet.http.HttpSession; import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpSession; import static org.junit.Assert.*; /** * Created by rmy - Date: May 6, 2009 */ public class ForceResolverValueServiceImplTest { private ForceResolverValueServiceImpl forcedResolverValueServiceImpl; private MockHttpServletRequest requestMock; private MockHttpServletResponse responseMock; private HttpSession sessionMock; private static final String FORCED_VALUE_KEY = "forcedValueKey"; private static final String FORCED_VALUE_VALUE = "forcedValue"; @Before public void setUp() { forcedResolverValueServiceImpl = new ForceResolverValueServiceImpl(); requestMock = new MockHttpServletRequest(); requestMock.setRequestURI( "/site/0/Frontpage" ); responseMock = new MockHttpServletResponse(); sessionMock = new MockHttpSession(); } @Test public void testSetPermanentForcedValue() { ResolverContext context = new ResolverContext( requestMock, null ); forcedResolverValueServiceImpl.setForcedValue( context, responseMock, FORCED_VALUE_KEY, ForcedResolverValueLifetimeSettings.permanent, FORCED_VALUE_VALUE ); String forcedValue = responseMock.getCookie( FORCED_VALUE_KEY ).getValue(); assertEquals( FORCED_VALUE_VALUE, forcedValue ); } @Test public void testSetSessionForcedValue() { ResolverContext context = new ResolverContext( requestMock, null ); forcedResolverValueServiceImpl.setForcedValue( context, responseMock, FORCED_VALUE_KEY, ForcedResolverValueLifetimeSettings.session, FORCED_VALUE_VALUE ); String forcedValue = forcedResolverValueServiceImpl.getForcedResolverValue( context, FORCED_VALUE_KEY ); String sessionForcedValue = (String) requestMock.getSession().getAttribute( FORCED_VALUE_KEY ); assertEquals( FORCED_VALUE_VALUE, forcedValue ); assertEquals( FORCED_VALUE_VALUE, sessionForcedValue ); } @Test public void testClearPermanentForcedValue() { Cookie cookie = new Cookie( FORCED_VALUE_KEY, FORCED_VALUE_VALUE ); cookie.setMaxAge( 999 ); Cookie[] cookies = new Cookie[]{cookie}; requestMock.setCookies( cookies ); ResolverContext context = new ResolverContext( requestMock, null ); forcedResolverValueServiceImpl.clearForcedValue( context, responseMock, FORCED_VALUE_KEY ); assertEquals( 0, responseMock.getCookie( FORCED_VALUE_KEY ).getMaxAge() ); } }