/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.web.data;
import static org.junit.Assert.*;
import java.util.List;
import org.apache.wicket.Component;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.CatalogInfo;
import org.geoserver.catalog.DataStoreInfo;
import org.geoserver.catalog.FeatureTypeInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.data.test.SystemTestData;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Test;
public class ConfirmRemovalPanelTest extends GeoServerWicketTestSupport {
@Override
protected void onSetUp(SystemTestData testData) throws Exception {
super.onSetUp(testData);
Catalog catalog = getCatalog();
testData.addStyle(catalog.getWorkspaceByName(MockData.CITE_PREFIX), "lakes", "Lakes.sld", SystemTestData.class, catalog);
}
void setupPanel(final CatalogInfo... roots) {
tester.startPage(new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new ConfirmRemovalPanel(id, roots);
}
}));
}
@Test
public void testRemoveWorkspace() {
setupPanel(getCatalog().getWorkspaceByName(MockData.CITE_PREFIX));
// print(tester.getLastRenderedPage(), true, true);
tester.assertRenderedPage(FormTestPage.class);
tester.assertNoErrorMessage();
tester.assertLabel("form:panel:removedObjects:storesRemoved:stores", "cite");
tester.assertLabel("form:panel:removedObjects:stylesRemoved:styles", "lakes");
String layers = tester.getComponentFromLastRenderedPage("form:panel:removedObjects:layersRemoved:layers").getDefaultModelObjectAsString();
String[] layerArray = layers.split(", ");
DataStoreInfo citeStore = getCatalog().getStoreByName("cite", DataStoreInfo.class);
List<FeatureTypeInfo> typeInfos = getCatalog().getResourcesByStore(citeStore, FeatureTypeInfo.class);
assertEquals(typeInfos.size(), layerArray.length);
}
@Test
public void testRemoveLayer() {
setupPanel(getCatalog().getLayerByName(getLayerId(MockData.BUILDINGS)));
// print(tester.getLastRenderedPage(), true, true);
tester.assertRenderedPage(FormTestPage.class);
tester.assertNoErrorMessage();
// damn wicket tester, it does not have a assertHidden...
assertFalse(tester.getLastRenderedPage().get("form:panel:removedObjects:storesRemoved").isVisible());
assertFalse(tester.getLastRenderedPage().get("form:panel:modifiedObjects").isVisible());
}
@Test
public void testRemoveStyle() {
setupPanel(getCatalog().getStyleByName(MockData.BUILDINGS.getLocalPart()));
// print(tester.getLastRenderedPage(), true, true);
tester.assertRenderedPage(FormTestPage.class);
tester.assertNoErrorMessage();
// damn wicket tester, it does not have a assertHidden...
assertFalse(tester.getLastRenderedPage().get("form:panel:removedObjects:storesRemoved").isVisible());
tester.assertLabel("form:panel:modifiedObjects:layersModified:layers", "Buildings");
}
}