/* (c) 2014 - 2015 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.wms.web.publish;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.catalog.LayerGroupInfo;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.catalog.PublishedInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Test;
public class AttributionLayerConfigTest extends GeoServerWicketTestSupport {
public <T extends PublishedInfo> void testPublished(final IModel<T> publishedInfoModel) {
FormTestPage page = new FormTestPage(new ComponentBuilder() {
private static final long serialVersionUID = 6999752257807054508L;
public Component buildComponent(String id) {
return new AttributionLayerConfigPanel(id, publishedInfoModel);
}
}
);
tester.startPage(page);
tester.assertRenderedPage(FormTestPage.class);
tester.assertComponent("form", Form.class);
tester.assertComponent("form:panel:wms.attribution.logo", TextField.class);
// check setting something else works
String target = "http://example.com/";
FormTester ft = tester.newFormTester("form");
ft.setValue("panel:wms.attribution.logo", target);
ft.submit();
tester.assertModelValue("form:panel:wms.attribution.logo", target);
}
@Test
public void testLayer() {
final LayerInfo layer = getCatalog().getLayerByName(MockData.PONDS.getLocalPart());
testPublished(new Model<LayerInfo>(layer));
}
@Test
public void testLayerGroup() {
final LayerGroupInfo layerGroup = getCatalog().getFactory().createLayerGroup();
testPublished(new Model<LayerGroupInfo>(layerGroup));
}
}