/* (c) 2016 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web; import static org.junit.Assert.assertEquals; import org.apache.wicket.util.tester.WicketTester; import org.geoserver.config.GeoServerInfo; import org.geoserver.config.GeoServerInfo.WebUIMode; import org.geoserver.security.GeoServerSecurityTestSupport; import org.geoserver.web.admin.StatusPage; import org.junit.Before; import org.junit.Test; /** * * @author Niels Charlier * */ public class GeoServerRedirectTest extends GeoServerSecurityTestSupport { public GeoServerApplication getGeoServerApplication(){ return (GeoServerApplication) applicationContext.getBean("webApplication"); } @Before public void init() { login("admin", "geoserver", "ROLE_ADMINISTRATOR"); } @Test public void testRedirect() throws Exception { GeoServerInfo global = getGeoServer().getGlobal(); global.setWebUIMode(WebUIMode.REDIRECT); getGeoServer().save(global); GeoServerApplication app = getGeoServerApplication(); app.init(); WicketTester tester = new WicketTester(app, false); tester.startPage(StatusPage.class); assertEquals(2, tester.getPreviousResponses().size()); assertEquals(302, tester.getPreviousResponses().get(0).getStatus()); } @Test public void testDoNotRedirect() throws Exception { GeoServerInfo global = getGeoServer().getGlobal(); global.setWebUIMode(WebUIMode.DO_NOT_REDIRECT); getGeoServer().save(global); GeoServerApplication app = getGeoServerApplication(); app.init(); WicketTester tester = new WicketTester(app, false); tester.startPage(StatusPage.class); assertEquals(1, tester.getPreviousResponses().size()); assertEquals(200, tester.getPreviousResponses().get(0).getStatus()); } @Test public void testDefaultRedirect() throws Exception { GeoServerInfo global = getGeoServer().getGlobal(); global.setWebUIMode(WebUIMode.DEFAULT); getGeoServer().save(global); GeoServerApplication app = getGeoServerApplication(); app.setDefaultIsRedirect(true); app.init(); WicketTester tester = new WicketTester(app, false); tester.startPage(StatusPage.class); assertEquals(2, tester.getPreviousResponses().size()); assertEquals(302, tester.getPreviousResponses().get(0).getStatus()); } @Test public void testDefaultDoNotRedirect() throws Exception { GeoServerInfo global = getGeoServer().getGlobal(); global.setWebUIMode(WebUIMode.DEFAULT); getGeoServer().save(global); GeoServerApplication app = getGeoServerApplication(); app.setDefaultIsRedirect(false); app.init(); WicketTester tester = new WicketTester(app, false); tester.startPage(StatusPage.class); assertEquals(1, tester.getPreviousResponses().size()); assertEquals(200, tester.getPreviousResponses().get(0).getStatus()); } }