package com.limegroup.gnutella.xml; import java.io.IOException; import java.util.List; import java.util.Map; import org.limewire.gnutella.tests.LimeTestCase; import org.limewire.gnutella.tests.LimeTestUtils; import org.xml.sax.SAXException; import com.google.inject.Injector; public class LimeXMLDocumentHelperTest extends LimeTestCase { LimeXMLDocumentHelper limeXMLDocumentHelper; public LimeXMLDocumentHelperTest(String name) { super(name); } @Override protected void setUp() throws Exception { Injector injector = LimeTestUtils.createInjectorNonEagerly(); limeXMLDocumentHelper = injector.getInstance(LimeXMLDocumentHelper.class); } public void testGetDocuments() throws IOException, SAXException { /* * Capitalitzed XML Tags */ String xmlCapitalTag = "<?xml version=\"1.0\"?>"+ "<AUDIOS xsi:noNamespaceSchemaLocation=\"http://www.limewire.com/schemas/audio.xsd\">"+ "<audio genre=\"rock\" identifier=\"def1.txt\" index=\"0\" action=\"test\" addActionDetail = \"detail\" license = \"DRM\" licensetype = \"licensed: DRM\" bitrate=\"190\"/></AUDIOS>"; List listXMLDocuments; listXMLDocuments = limeXMLDocumentHelper.getDocuments(xmlCapitalTag, 1); LimeXMLDocument[] newLimeDocArray = (LimeXMLDocument[]) listXMLDocuments.get(0); LimeXMLDocument newLimeDoc = newLimeDocArray[0]; String xml = newLimeDoc.toString(); //parse LimeXMLDocument for the fields XMLParsingUtils.ParseResult r = XMLParsingUtils.parse(xml, 1); Map<String, String> result = r.get(0); //check values //canonicalKeyPrefix should be lowercase assertEquals("audios__audio__", r.canonicalKeyPrefix); assertEquals("audio", r.type); assertEquals(result.toString(), "rock", result.get("audios__audio__genre__")); assertEquals(result.toString(), "DRM", result.get("audios__audio__license__")); assertEquals(result.toString(), "licensed: DRM", result.get("audios__audio__licensetype__")); assertEquals(result.toString(), "190", result.get("audios__audio__bitrate__")); /* * with capitalized attributes */ xmlCapitalTag = "<?xml version=\"1.0\"?>"+ "<AUDIOS xsi:noNamespaceSchemaLocation=\"http://www.limewire.com/schemas/audio.xsd\">"+ "<audio GENRE=\"rock\" identifier=\"def1.txt\" index=\"0\" action=\"test\" addActionDetail = \"detail\" license = \"DRM\" licensetype = \"licensed: DRM\" bitrate=\"190\"/></AUDIOS>"; listXMLDocuments = limeXMLDocumentHelper.getDocuments(xmlCapitalTag, 1); newLimeDocArray = (LimeXMLDocument[]) listXMLDocuments.get(0); newLimeDoc = newLimeDocArray[0]; newLimeDoc.toString(); //parse LimeXMLDocument for the fields r = XMLParsingUtils.parse(xml, 1); result = r.get(0); //check values //canonicalKeyPrefix should be lowercase assertEquals("audios__audio__", r.canonicalKeyPrefix); assertEquals("audio", r.type); assertEquals(result.toString(), "rock", result.get("audios__audio__genre__")); assertEquals(result.toString(), "DRM", result.get("audios__audio__license__")); assertEquals(result.toString(), "licensed: DRM", result.get("audios__audio__licensetype__")); assertEquals(result.toString(), "190", result.get("audios__audio__bitrate__")); /* * with capitalized attributes and SHA1 */ xmlCapitalTag = "<?xml version=\"1.0\"?>"+ "<AUDIOS xsi:noNamespaceSchemaLocation=\"http://www.limewire.com/schemas/audio.xsd\">"+ "<audio GENRE=\"rock\" identifier=\"def1.txt\" index=\"0\" action=\"test\" addActionDetail = \"detail\" license = \"DRM\" SHA1 = \"SHA1Test\" licensetype = \"licensed: DRM\" bitrate=\"190\"/></AUDIOS>"; listXMLDocuments = limeXMLDocumentHelper.getDocuments(xmlCapitalTag, 1); newLimeDocArray = (LimeXMLDocument[]) listXMLDocuments.get(0); newLimeDoc = newLimeDocArray[0]; newLimeDoc.toString(); //parse LimeXMLDocument for the fields r = XMLParsingUtils.parse(xml, 1); result = r.get(0); //check values //canonicalKeyPrefix should be lowercase assertEquals("audios__audio__", r.canonicalKeyPrefix); assertEquals("audio", r.type); assertEquals(result.toString(), "rock", result.get("audios__audio__genre__")); assertEquals(result.toString(), "DRM", result.get("audios__audio__license__")); assertEquals(result.toString(), "licensed: DRM", result.get("audios__audio__licensetype__")); assertEquals(result.toString(), "190", result.get("audios__audio__bitrate__")); } }