package org.lightadmin.core.context; import org.junit.Test; import org.lightadmin.core.config.LightAdminConfiguration; import org.lightadmin.core.config.StandardLightAdminConfiguration; import org.springframework.mock.web.MockServletContext; import javax.servlet.ServletContext; import static java.lang.String.valueOf; import static org.junit.Assert.*; import static org.lightadmin.core.util.LightAdminConfigurationUtils.*; public class StandardWebContextTest { @Test public void testApplicationBaseUrlWithoutEndSeparator() { LightAdminConfiguration lightAdminConfiguration = new StandardLightAdminConfiguration(servletContext("/admin")); assertEquals("/admin", lightAdminConfiguration.getApplicationBaseUrl()); assertEquals("/admin/url", lightAdminConfiguration.getApplicationUrl("/url")); } @Test public void testApplicationBaseUrlWithEndSeparator() { LightAdminConfiguration lightAdminConfiguration = new StandardLightAdminConfiguration(servletContext("/admin/")); assertEquals("/admin/", lightAdminConfiguration.getApplicationBaseUrl()); assertEquals("/admin/url", lightAdminConfiguration.getApplicationUrl("/url")); } @Test public void testSecurityEnabled() { final ServletContext servletContext = servletContext("/admin/", true, null); LightAdminConfiguration lightAdminConfiguration = new StandardLightAdminConfiguration(servletContext); assertTrue(lightAdminConfiguration.isSecurityEnabled()); assertEquals("/lightadmin-demo/admin/logout", lightAdminConfiguration.getSecurityLogoutUrl()); } @Test public void testSecurityDisabledByDefault() { final ServletContext servletContext = servletContext("/admin/", null, null); LightAdminConfiguration lightAdminConfiguration = new StandardLightAdminConfiguration(servletContext); assertFalse(lightAdminConfiguration.isSecurityEnabled()); assertEquals("/lightadmin-demo#", lightAdminConfiguration.getSecurityLogoutUrl()); } @Test public void testExternalSecurityEnabledWithLogoutUrl() { final ServletContext servletContext = servletContext("/admin/", false, "/external_logout"); LightAdminConfiguration lightAdminConfiguration = new StandardLightAdminConfiguration(servletContext); assertFalse(lightAdminConfiguration.isSecurityEnabled()); assertEquals("/lightadmin-demo/external_logout", lightAdminConfiguration.getSecurityLogoutUrl()); } private ServletContext servletContext(final String applicationBaseUrl) { return servletContext(applicationBaseUrl, false, null); } private ServletContext servletContext(final String applicationBaseUrl, final Boolean securityEnabled, String securityLogoutUrl) { final MockServletContext servletContext = new MockServletContext(); servletContext.setContextPath("/lightadmin-demo"); servletContext.addInitParameter(LIGHT_ADMINISTRATION_BASE_URL, applicationBaseUrl); servletContext.addInitParameter(LIGHT_ADMINISTRATION_SECURITY, valueOf(securityEnabled)); servletContext.addInitParameter(LIGHT_ADMINISTRATION_SECURITY_LOGOUT_URL, securityLogoutUrl); return servletContext; } }