package org.geoserver.security.impl; import static org.junit.Assert.*; import org.geoserver.catalog.LayerGroupInfo; import org.geoserver.catalog.LayerGroupVisibilityPolicy; import org.geoserver.catalog.impl.AdvertisedCatalog; import org.geoserver.ows.Dispatcher; import org.geoserver.ows.Request; import org.junit.After; import org.junit.Before; import org.junit.Test; public class AdvertisedCatalogTest extends AbstractAuthorizationTest { @Before public void setUp() throws Exception { super.setUp(); Dispatcher.REQUEST.set(new Request()); Dispatcher.REQUEST.get().setRequest("GetCapabilities"); populateCatalog(); } @After public void tearDown() throws Exception { Dispatcher.REQUEST.set(null); } @Test public void testNotAdvertisedLayersInGroupWithHideGroupIfEmptyPolicy() throws Exception { AdvertisedCatalog sc = new AdvertisedCatalog(catalog); sc.setLayerGroupVisibilityPolicy(LayerGroupVisibilityPolicy.HIDE_EMPTY); assertNull(sc.getLayerByName("topp:states")); assertNull(sc.getLayerByName("topp:roads")); LayerGroupInfo layerGroup = sc.getLayerGroupByName("topp", "layerGroupWithSomeLockedLayer"); assertNull(layerGroup); } @Test public void testNotAdvertisedLayersInGroupWithNeverHideGroupPolicy() throws Exception { AdvertisedCatalog sc = new AdvertisedCatalog(catalog); sc.setLayerGroupVisibilityPolicy(LayerGroupVisibilityPolicy.HIDE_NEVER); assertNull(sc.getLayerByName("topp:states")); assertNull(sc.getLayerByName("topp:roads")); LayerGroupInfo layerGroup = sc.getLayerGroupByName("topp", "layerGroupWithSomeLockedLayer"); assertNotNull(layerGroup); assertEquals(0, layerGroup.getLayers().size()); } @Test public void testLayerSpecificCapabilities() throws Exception { AdvertisedCatalog sc = new AdvertisedCatalog(catalog); Dispatcher.REQUEST.get().setContext("topp/states"); assertNotNull(sc.getLayerByName("topp:states")); } }