[Practicalxml-commits] SF.net SVN: practicalxml:[30] trunk/src/test/java/net/sf/practicalxml/ TestP
Brought to you by:
kdgregory
From: Auto-Generated S. C. M. <pra...@li...> - 2008-10-12 13:05:15
|
Revision: 30 http://practicalxml.svn.sourceforge.net/practicalxml/?rev=30&view=rev Author: kdgregory Date: 2008-10-12 13:05:05 +0000 (Sun, 12 Oct 2008) Log Message: ----------- TestParseUtil: lost a few test cases in previous revision Modified Paths: -------------- trunk/src/test/java/net/sf/practicalxml/TestParseUtil.java Modified: trunk/src/test/java/net/sf/practicalxml/TestParseUtil.java =================================================================== --- trunk/src/test/java/net/sf/practicalxml/TestParseUtil.java 2008-10-08 01:43:42 UTC (rev 29) +++ trunk/src/test/java/net/sf/practicalxml/TestParseUtil.java 2008-10-12 13:05:05 UTC (rev 30) @@ -1,5 +1,6 @@ package net.sf.practicalxml; +import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; @@ -7,6 +8,7 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Text; +import org.xml.sax.EntityResolver; import org.xml.sax.ErrorHandler; import org.xml.sax.InputSource; import org.xml.sax.SAXException; @@ -61,8 +63,38 @@ assertEquals("TestErrorHandler warnings", numWarnings, warnings.size()); } } + + + /** + * An EntityResolver that will resolve a single entity. + */ + private static class TestEntityResolver + implements EntityResolver + { + private String _publicId; + private String _systemId; + private String _content; + + public TestEntityResolver(String publicId, String systemId, String content) + { + _publicId = publicId; + _systemId = systemId; + _content = content; + } + public InputSource resolveEntity(String publicId, String systemId) + throws SAXException, IOException + { + if (((publicId == null) || publicId.equals(_publicId)) + && ((systemId == null) || systemId.equals(_systemId))) + { + return new InputSource(new StringReader(_content)); + } + return null; + } + } + //---------------------------------------------------------------------------- // Test Cases //---------------------------------------------------------------------------- @@ -168,4 +200,42 @@ assertEquals("foo", doc.getDocumentElement().getTagName()); errHandler.assertResults(0, 2, 0); } + + + public void testValidatingParseWithMissingDoctype() throws Exception + { + String xml + = "<foo name='zippy'>" + + "<bar>something here</bar>" + + "<baz/>" + + "</foo>"; + + TestErrorHandler errHandler = new TestErrorHandler(); + Document doc = ParseUtil.validatingParse( + new InputSource(new StringReader(xml)), + errHandler); + + assertEquals("foo", doc.getDocumentElement().getTagName()); + errHandler.assertResults(0, 2, 0); + } + + + public void testValidatingParseWithResolvedDTD() throws Exception + { + String xml + = "<!DOCTYPE foo SYSTEM \"test\">" + + "<foo name='zippy'>" + + "<bar>something here</bar>" + + "<baz/>" + + "</foo>"; + + TestErrorHandler errHandler = new TestErrorHandler(); + TestEntityResolver resolver = new TestEntityResolver(null, "test", BASIC_DTD); + Document doc = ParseUtil.validatingParse( + new InputSource(new StringReader(xml)), + resolver, errHandler); + + assertEquals("foo", doc.getDocumentElement().getTagName()); + errHandler.assertResults(0, 0, 0); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |