/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.web.portal; import java.io.IOException; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import junit.framework.TestCase; import com.enonic.cms.core.MockSitePropertiesService; import com.enonic.cms.core.SiteURLResolver; import com.enonic.cms.core.UrlPathHelperManager; public class SiteRedirectHelperTest extends TestCase { private SiteRedirectHelper siteRedirectHelper; private PortalSitePathResolver sitePathResolver; private SiteURLResolver siteURLResolver; private MockSitePropertiesService sitePropertiesService; private UrlPathHelperManager urlPathHelperManager; private MockHttpServletRequest request; private MockHttpServletResponse response; protected void setUp() throws Exception { super.setUp(); sitePropertiesService = new MockSitePropertiesService(); urlPathHelperManager = new UrlPathHelperManager(); sitePathResolver = new PortalSitePathResolver(); sitePathResolver.setUrlPathHelperManager( urlPathHelperManager ); sitePathResolver.setSitePathPrefix( SiteURLResolver.DEFAULT_SITEPATH_PREFIX ); siteURLResolver = new SiteURLResolver(); siteURLResolver.setCharacterEncoding( "UTF-8" ); siteURLResolver.setSitePropertiesService( sitePropertiesService ); siteRedirectHelper = new SiteRedirectHelper(); siteRedirectHelper.setSitePathResolver( sitePathResolver ); siteRedirectHelper.setSiteURLResolver( siteURLResolver ); request = new MockHttpServletRequest(); response = new MockHttpServletResponse(); } public void testSendRedirectWithHttpUrl() throws IOException { request.setScheme( "http" ); siteRedirectHelper.sendRedirect( request, response, "http://someurl.com" ); assertEquals( "http://someurl.com", response.getHeader( "Location" ) ); } public void testSendRedirectWithHttpsUrl() throws IOException { request.setScheme( "http" ); siteRedirectHelper.sendRedirect( request, response, "https://someurl.com" ); assertEquals( "https://someurl.com", response.getHeader( "Location" ) ); } public void testSendRedirectHeaderInjectionProtection() throws IOException { siteRedirectHelper.sendRedirect( request, response, "https://someurl.com?create=\n\rX-Header:hacked" ); assertEquals( "https://someurl.com?create=X-Header:hacked", response.getHeader( "Location" ) ); } }