/* Copyright (c) 2001 - 2010 TOPP - www.openplans.org. All rights reserved.
* This code is licensed under the GPL 2.0 license, availible at the root
* application directory.
*/
package org.vfny.geoserver.util;
import java.io.File;
import java.io.IOException;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.geoserver.platform.GeoServerResourceLoader;
import org.geoserver.test.GeoServerTestSupport;
public class SLDValidatorTest extends GeoServerTestSupport {
@Override
protected void setUpInternal() throws Exception {
GeoServerResourceLoader rl = getResourceLoader();
copyToWebInf(rl, "gml/2.1.2.1/geometry.xsd");
copyToWebInf(rl, "gml/2.1.2.1/feature.xsd");
copyToWebInf(rl, "xlink/1.0.0/xlinks.xsd");
copyToWebInf(rl, "filter/1.0.0/expr.xsd");
copyToWebInf(rl, "filter/1.0.0/filter.xsd");
copyToWebInf(rl, "sld/StyledLayerDescriptor.xsd");
}
void copyToWebInf(GeoServerResourceLoader rl, String file) throws IOException {
File f = new File("../web/app/src/main/webapp/schemas/" + file);
FileUtils.copyFile(f, rl.createFile("WEB-INF/schemas/"+file));
}
public void testValid() throws Exception {
SLDValidator validator = new SLDValidator();
List errors = validator.validateSLD(getClass().getResourceAsStream("valid.sld"),null);
//showErrors(errors);
assertTrue(errors.isEmpty());
}
public void testInvalid() throws Exception {
SLDValidator validator = new SLDValidator();
List errors = validator.validateSLD(getClass().getResourceAsStream("invalid.sld"),null);
showErrors(errors);
assertFalse(errors.isEmpty());
}
void showErrors(List errors) {
for (Exception err : (List<Exception>)errors) {
System.out.println(err.getMessage());
}
}
}