/* (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.publish;
import static org.junit.Assert.*;
import org.apache.wicket.Component;
import org.apache.wicket.feedback.ErrorLevelFeedbackMessageFilter;
import org.apache.wicket.feedback.FeedbackMessage;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.Model;
import org.apache.wicket.util.tester.FormTester;
import org.geoserver.catalog.LayerInfo;
import org.geoserver.data.test.MockData;
import org.geoserver.web.ComponentBuilder;
import org.geoserver.web.FormTestPage;
import org.geoserver.web.GeoServerWicketTestSupport;
import org.junit.Before;
import org.junit.Test;
public class HTTPLayerConfigTest extends GeoServerWicketTestSupport {
LayerInfo polygons;
FormTestPage page;
@Before
public void init() {
polygons = getCatalog().getLayerByName(MockData.BASIC_POLYGONS.getLocalPart());
page = new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new HTTPLayerConfig(id, new Model(polygons));
}
});
tester.startPage(page);
}
@Test
public void testDefaults() {
tester.assertRenderedPage(FormTestPage.class);
FormTester ft = tester.newFormTester("form");
ft.submit();
assertEquals(0, page.getSession().getFeedbackMessages().messages(new ErrorLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
}
@Test
public void testInvalid() {
final LayerInfo polygons = getCatalog().getLayerByName(MockData.BASIC_POLYGONS.getLocalPart());
FormTestPage page = new FormTestPage(new ComponentBuilder() {
public Component buildComponent(String id) {
return new HTTPLayerConfig(id, new Model(polygons));
}
});
tester.startPage(page);
tester.assertComponent("form:panel:cacheAgeMax", TextField.class);
tester.assertRenderedPage(FormTestPage.class);
FormTester ft = tester.newFormTester("form");
ft.setValue("panel:cacheAgeMax", "-20");
ft.submit();
tester.assertErrorMessages("The value of 'cacheAgeMax' must be between 0 and 9223372036854775807.");
}
@Test
public void testValid() {
FormTester ft = tester.newFormTester("form");
ft.setValue("panel:cacheAgeMax", "3600");
ft.submit();
// System.out.println(page.getSession().getFeedbackMessages());
assertEquals(0, page.getSession().getFeedbackMessages().messages(new ErrorLevelFeedbackMessageFilter(FeedbackMessage.ERROR)).size());
// System.out.println(polygons.getResource().getMetadata().get("cacheAgeMax").getClass());
assertEquals(Integer.valueOf(3600), polygons.getResource().getMetadata().get("cacheAgeMax",Integer.class));
}
}