/* * GeoTools - The Open Source Java GIS Toolkit * http://geotools.org * * (C) 2002-2010, Open Source Geospatial Foundation (OSGeo) * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; * version 2.1 of the License. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. */ package org.geotools.se.v1_1.bindings; import org.geotools.se.v1_1.SE; import org.geotools.se.v1_1.SETestSupport; import org.geotools.styling.ExternalGraphic; import org.geotools.xlink.XLINK; import org.w3c.dom.Element; /** * @author Sebastian Graca, ISPiK S.A. */ public class ExternalGraphicBindingTest extends SETestSupport { public void testOnlineResource() throws Exception { document.appendChild(document.createElementNS(SE.NAMESPACE, "ExternalGraphic")); Element r = document.createElementNS(SE.NAMESPACE, "OnlineResource"); r.setAttributeNS(XLINK.NAMESPACE, "href", SETestSupport.class.getResource("inlineContent-image.png").toString()); Element f = document.createElementNS(SE.NAMESPACE, "Format"); f.appendChild(document.createTextNode("image/png")); document.getDocumentElement().appendChild(r); document.getDocumentElement().appendChild(f); ExternalGraphic externalGraphic = (ExternalGraphic) parse(); assertNotNull(externalGraphic); assertEquals(SETestSupport.class.getResource("inlineContent-image.png"), externalGraphic.getLocation()); assertEquals("image/png", externalGraphic.getFormat()); assertNull(externalGraphic.getInlineContent()); } public void testInlineContent() throws Exception { document.appendChild(document.createElementNS(SE.NAMESPACE, "ExternalGraphic")); Element c = document.createElementNS(SE.NAMESPACE, "InlineContent"); c.setAttributeNS(SE.NAMESPACE, "encoding", "base64"); c.appendChild(document.createTextNode("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAK3RFWHRDcmVhdGlvbiBUaW1lAFd0IDE0IHdyeiAyMDEwIDEyOjA2OjAyICswMTAweoAlkgAAAAd0SU1FB9oJDgo6HdmGt90AAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAEZ0FNQQAAsY8L/GEFAAABfklEQVR42mP8//8/AwYACn779o2bmxtTiokBG9iwboOfq9+1K9eI0vDp06cZk2e8ffp2zuQ5mPZj0bB963aGLwxTI6YdO3QMiyX/UcHz58/tLeyXZ674O+NfgVthWnTaz58/kRWg27B8yXKu31yeGp6MjIwpVimnjp86fvg4Tic9ffp0zfI1ZU7lfBx8QK6WpFasSdzMiTN//fqFRQPQusULFsvzyFsqWMIFw4zDHt5+uH/Xfiwarl27tnj+4nSzdDYWNrigtIB0iF5IZ1MnMOhQNACNnztjrq64roWiJQMqCDUO+/D6w/YN21E0XLp06fD+w3l2+cjGwy1Jt82YO3Pe+/fvoRqAfupq6bKVs7VQsMAa8REmEf8+/V04fSFUw/Hjxy+cvZBklgwMSqwagIGWYpm6cOEiYDCyAI2fPnG6mrD6n39/Lj25xIADAB325/vvVQtXsXz58uX7z+8vfr7I2ZrNgBew87HfvnebERg+X79+/ffvHwMRgJWVFQBa4Mt756r78AAAAABJRU5ErkJggg==")); Element f = document.createElementNS(SE.NAMESPACE, "Format"); f.appendChild(document.createTextNode("image/png")); document.getDocumentElement().appendChild(c); document.getDocumentElement().appendChild(f); ExternalGraphic externalGraphic = (ExternalGraphic) parse(); assertNotNull(externalGraphic); assertEquals("image/png", externalGraphic.getFormat()); assertImagesEqual(getReferenceImage("inlineContent-image.png"), externalGraphic.getInlineContent()); assertNull(externalGraphic.getLocation()); } public void testInlineContentWithINvalidData() throws Exception { document.appendChild(document.createElementNS(SE.NAMESPACE, "ExternalGraphic")); Element c = document.createElementNS(SE.NAMESPACE, "InlineContent"); c.setAttributeNS(SE.NAMESPACE, "encoding", "base64"); c.appendChild(document.createTextNode("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCg==")); Element f = document.createElementNS(SE.NAMESPACE, "Format"); f.appendChild(document.createTextNode("image/png")); document.getDocumentElement().appendChild(c); document.getDocumentElement().appendChild(f); ExternalGraphic externalGraphic = (ExternalGraphic) parse(); assertNotNull(externalGraphic); assertEquals("image/png", externalGraphic.getFormat()); assertNotNull(externalGraphic.getInlineContent()); assertEquals(1, externalGraphic.getInlineContent().getIconWidth()); assertEquals(1, externalGraphic.getInlineContent().getIconHeight()); assertNull(externalGraphic.getLocation()); } }