/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.server; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import com.enonic.cms.core.Attribute; import com.enonic.cms.core.vhost.VirtualHostHelper; import static org.junit.Assert.*; /** * Aug 24, 2010 */ public class DeploymentAndRequestSetupTest { /** * Deployed @ / * Request is via admin debug @ http://localhost/admin/site/0/political news shortcut */ @Test public void when_deployed_at_root_debug_requested_at_localhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().originalRequest( "localhost", "/admin/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminDebugAt().setupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "localhost", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( "requestURL", "http://localhost:80/site/0/political+news+shortcut", request.getRequestURL().toString() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertNull( VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ / * Vhost: admin.enonic-cms.com = /admin * Request is via admin debug @ http://admin.enonic-cms.com/site/0/political news shortcut */ @Test public void when_deployed_at_root_debug_requested_at_vhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().addVirtualHost( "admin.enonic-cms.com", "/admin" ).originalRequest( "admin.enonic-cms.com", "/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminDebugAt().setupAtRoot().back().setup( request ); assertEquals( "requestURL", "http://admin.enonic-cms.com:80/site/0/political+news+shortcut", request.getRequestURL().toString() ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "admin.enonic-cms.com", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( "", VirtualHostHelper.getBasePath( request ) ); } /** * Vhost: www.mysite.com/admin = /admin * Deployed @ / * Request is via debug @ http://www.mysite.com/admin/site/0/political news shortcut */ @Test public void when_deployed_at_root_debug_requested_at_vhost_under_admin() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().addVirtualHost( "www.mysite.com/admin", "admin" ).originalRequest( "www.mysite.com", "/admin/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminDebugAt().setupAtDefaultPath().back().setup( request ); assertEquals( "requestURL", "http://www.mysite.com:80/site/0/political+news+shortcut", request.getRequestURL().toString() ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "www.mysite.com", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( "/admin", VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ /cms * Request is via debug @ http://www.mysite.com/cms/admin/site/0/political news shortcut */ @Test public void when_deployed_at_cms_debug_requested_at_under_subpath_admin() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAt( "/cms" ).originalRequest( "www.mysite.com", "/cms/admin/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminDebugAt().setupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "www.mysite.com", request.getServerName() ); assertEquals( "contextPath", "/cms", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/cms/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( null, VirtualHostHelper.getBasePath( request ) ); assertEquals( "requestURL", "http://www.mysite.com:80/cms/site/0/political+news+shortcut", request.getRequestURL().toString() ); } /** * Deployed @ / * Request is via admin preview @ http://localhost/admin/preview/0/political news shortcut */ @Test public void when_deployed_at_root_preview_requested_at_localhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().originalRequest( "localhost", "/admin/preview/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminPreviewAt().setupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "localhost", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( Attribute.PREVIEW_ENABLED, "true", request.getAttribute( Attribute.PREVIEW_ENABLED ) ); assertNull( VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ /cms * Request is via admin preview @ http://localhost/cms/admin/preview/0/political news shortcut */ @Test public void when_deployed_at_cms_preview_requested_at_localhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAt( "/cms" ).originalRequest( "localhost", "/admin/preview/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedAdminPreviewAt().setupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "localhost", request.getServerName() ); assertEquals( "contextPath", "/cms", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/cms/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( Attribute.PREVIEW_ENABLED, "true", request.getAttribute( Attribute.PREVIEW_ENABLED ) ); assertNull( VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ / * Request is via portal @ http://localhost/site/0/political news shortcut */ @Test public void when_deployed_at_root_portal_requested_at_localhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().originalRequest( "localhost", "/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedPortalAt().siteSetupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "localhost", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertNull( VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ /cms * Request is via portal @ http://localhost/cms/site/0/political news shortcut */ @Test public void when_deployed_at_cms_portal_requested_at_localhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAt( "/cms" ).originalRequest( "localhost", "/cms/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedPortalAt().siteSetupAtDefaultPath().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "localhost", request.getServerName() ); assertEquals( "contextPath", "/cms", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/cms/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertNull( VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ / * Request is via portal @ http://www.mysite.com/en/political news shortcut */ @Test public void when_deployed_at_root_portal_requested_at_vhost_under_subpath() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().addVirtualHost( "www.mysite.com/en", "/site/0" ).originalRequest( "www.mysite.com", "/en/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedPortalAt().siteSetupAtPath( "/en" ).back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "www.mysite.com", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( "basePath", "/en", VirtualHostHelper.getBasePath( request ) ); } /** * Deployed @ / * Request is via portal @ http://www.mysite.com/political news shortcut */ @Test public void when_deployed_at_root_portal_requested_at_vhost() { MockHttpServletRequest request = new MockHttpServletRequest(); new DeploymentAndRequestSetup().appDeployedAtRoot().addVirtualHost( "www.mysite.com", "/site/0" ).originalRequest( "www.mysite.com", "/site/0/political news shortcut" ).requestedSite( 0, "political news shortcut" ).requestedPortalAt().siteSetupAtRoot().back().setup( request ); assertEquals( "scheme", "http", request.getScheme() ); assertEquals( "serverName", "www.mysite.com", request.getServerName() ); assertEquals( "contextPath", "", request.getContextPath() ); assertEquals( "servletPath", "/site", request.getServletPath() ); assertEquals( "requestURI", "/site/0/political+news+shortcut", request.getRequestURI() ); assertEquals( "requestURL", "http://www.mysite.com:80/site/0/political+news+shortcut", request.getRequestURL().toString() ); assertEquals( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME, null, request.getAttribute( Attribute.BASEPATH_OVERRIDE_ATTRIBUTE_NAME ) ); assertEquals( "basePath", "", VirtualHostHelper.getBasePath( request ) ); } }