From: Oleg T. <he...@us...> - 2005-11-20 21:57:05
|
Update of /cvsroot/mvp-xml/Common/v2/test/MvpXslTransformTests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20469/v2/test/MvpXslTransformTests Modified Files: MvpXslTransformTests.cs Added Files: resolver-test.xslt Log Message: --- NEW FILE: resolver-test.xslt --- <?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <out> <xsl:copy-of select="document('my://data')" /> </out> </xsl:template> </xsl:stylesheet> Index: MvpXslTransformTests.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v2/test/MvpXslTransformTests/MvpXslTransformTests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- MvpXslTransformTests.cs 19 Nov 2005 22:21:10 -0000 1.1 +++ MvpXslTransformTests.cs 20 Nov 2005 21:56:58 -0000 1.2 @@ -13,7 +13,8 @@ public class MvpXslTransformTests { byte[] standardResult; - MvpXslTransform xslt; + byte[] resolverTestStandardResult; + MvpXslTransform xslt, xslt2; XsltArgumentList args; public MvpXslTransformTests() @@ -25,7 +26,17 @@ { xslt.Transform(r, Arguments, ms); } - standardResult = ms.ToArray(); + standardResult = ms.ToArray(); + XslCompiledTransform xslt2 = new XslCompiledTransform(); + xslt2.Load("../../MvpXslTransformTests/resolver-test.xslt", XsltSettings.TrustedXslt, null); + MemoryStream ms2 = new MemoryStream(); + XmlWriter w = XmlWriter.Create(ms2); + using (XmlReader r2 = XmlReader.Create("../../MvpXslTransformTests/test.xml")) + { + xslt2.Transform(r2, Arguments, w, new MyXmlResolver()); + } + w.Close(); + resolverTestStandardResult = ms2.ToArray(); } private XsltArgumentList Arguments @@ -50,6 +61,16 @@ return xslt; } + private MvpXslTransform GetMvpXslTransform2() + { + if (xslt2 == null) + { + xslt2 = new MvpXslTransform(); + xslt2.Load("../../MvpXslTransformTests/resolver-test.xslt", XsltSettings.TrustedXslt, null); + } + return xslt2; + } + private static void CompareResults(byte[] standard, byte[] test) { Assert.AreEqual(standard.Length, test.Length, string.Format("Lengths are different: {0}, {1}", standard.Length, test.Length)); @@ -249,6 +270,78 @@ fs.Read(bytes, 0, bytes.Length); CompareResults(standardResult, bytes); } - } + } + + + [Test] + public void ResolverTestStringInput() + { + MvpXslTransform xslt = GetMvpXslTransform2(); + XmlInput input = new XmlInput("../../MvpXslTransformTests/test.xml", new MyXmlResolver()); + MemoryStream ms = new MemoryStream(); + xslt.Transform(input, Arguments, new XmlOutput(ms)); + CompareResults(resolverTestStandardResult, ms.ToArray()); + } + + [Test] + public void ResolverTestStreamInput() + { + MvpXslTransform xslt = GetMvpXslTransform2(); + using (FileStream fs = File.OpenRead("../../MvpXslTransformTests/test.xml")) + { + XmlInput input = new XmlInput(fs, new MyXmlResolver()); + MemoryStream ms = new MemoryStream(); + xslt.Transform(input, Arguments, new XmlOutput(ms)); + CompareResults(resolverTestStandardResult, ms.ToArray()); + } + } + + [Test] + public void ResolverTestTextReaderInput() + { + MvpXslTransform xslt = GetMvpXslTransform2(); + XmlInput input = new XmlInput(new StreamReader("../../MvpXslTransformTests/test.xml"), new MyXmlResolver()); + MemoryStream ms = new MemoryStream(); + xslt.Transform(input, Arguments, new XmlOutput(ms)); + CompareResults(resolverTestStandardResult, ms.ToArray()); + } + + [Test] + public void ResolverTestXmlReaderInput() + { + MvpXslTransform xslt = GetMvpXslTransform2(); + XmlInput input = new XmlInput(XmlReader.Create("../../MvpXslTransformTests/test.xml"), new MyXmlResolver()); + MemoryStream ms = new MemoryStream(); + xslt.Transform(input, Arguments, new XmlOutput(ms)); + CompareResults(resolverTestStandardResult, ms.ToArray()); + } + + [Test] + public void ResolverTestIXPathNavigableInput() + { + MvpXslTransform xslt = GetMvpXslTransform2(); + XmlInput input = new XmlInput(new XPathDocument("../../MvpXslTransformTests/test.xml"), new MyXmlResolver()); + MemoryStream ms = new MemoryStream(); + xslt.Transform(input, Arguments, new XmlOutput(ms)); + CompareResults(resolverTestStandardResult, ms.ToArray()); + } + } + + public class MyXmlResolver : XmlUrlResolver + { + public MyXmlResolver() {} + + public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn) + { + if (absoluteUri.Scheme == "my") + { + string xml = "<resolver>data</resolver>"; + return XmlReader.Create(new StringReader(xml)); + } + else + { + return base.GetEntity(absoluteUri, role, ofObjectToReturn); + } + } } } |