From: Oleg T. <he...@us...> - 2004-11-24 16:24:01
|
Update of /cvsroot/mvp-xml/Common/v1/test/XmlBaseAwareXmlTextReaderTests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18418/v1/test/XmlBaseAwareXmlTextReaderTests Modified Files: Tests.cs test.xml Log Message: Fixed XmlBase impl... Thanks to kzu for reporting it! Index: test.xml =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/test/XmlBaseAwareXmlTextReaderTests/test.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- test.xml 25 Oct 2004 18:18:06 -0000 1.1 +++ test.xml 24 Nov 2004 16:23:45 -0000 1.2 @@ -2,5 +2,15 @@ <catalog> <files xml:base="file:///d:/Files/"> <file name="file1.xml"/> + <?pi ?> </files> + <a> + <b xml:base="file:///d:/Files/a/"> + <c xml:base="file:///d:/Files/c/"> + <e>text</e> + </c> + <d></d> + <!-- comment --> + </b> + </a> </catalog> Index: Tests.cs =================================================================== RCS file: /cvsroot/mvp-xml/Common/v1/test/XmlBaseAwareXmlTextReaderTests/Tests.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Tests.cs 25 Oct 2004 18:18:06 -0000 1.1 +++ Tests.cs 24 Nov 2004 16:23:40 -0000 1.2 @@ -15,14 +15,52 @@ XmlTextReader r = new XmlBaseAwareXmlTextReader( Globals.GetResource( this.GetType().Namespace + ".test.xml")); - XPathDocument doc = new XPathDocument(r); - XPathNavigator nav = doc.CreateNavigator(); - XPathNodeIterator ni = nav.Select("/catalog"); - ni.MoveNext(); - Assert.IsTrue(ni.Current.BaseURI == ""); - ni = nav.Select("/catalog/files/file"); - ni.MoveNext(); - Assert.IsTrue(ni.Current.BaseURI == "file:///d:/Files/"); + while (r.Read()) + { + if (r.NodeType == XmlNodeType.Element) + { + switch (r.Name) + { + case "catalog": + Assert.IsTrue(r.BaseURI == ""); + break; + case "files": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/"); + break; + case "file": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/"); + break; + case "a": + Assert.IsTrue(r.BaseURI == ""); + break; + case "b": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/a/"); + break; + case "c": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/c/"); + break; + case "e": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/c/"); + break; + case "d": + Assert.IsTrue(r.BaseURI == "file:///d:/Files/a/"); + break; + } + } + else if (r.NodeType == XmlNodeType.Text && r.Value.Trim() != "") + { + Assert.IsTrue(r.BaseURI == "file:///d:/Files/c/"); + } + else if (r.NodeType == XmlNodeType.Comment) + { + Assert.IsTrue(r.BaseURI == "file:///d:/Files/a/"); + } + else if (r.NodeType == XmlNodeType.ProcessingInstruction) + { + Assert.IsTrue(r.BaseURI == "file:///d:/Files/"); + } + } + r.Close(); } } } |