From 3d910b7477f76d2bc29f6bdcd3eecebe64286252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexander=20K=C3=B6plinger?= Date: Thu, 27 Sep 2018 21:36:24 +0200 Subject: [System.XML] Switch tests to use embedded test resources --- mcs/class/System.XML/Makefile | 36 +- mcs/class/System.XML/System.Xml_test.dll.sources | 1 + .../Test/System.Xml.Schema/XmlSchemaAssertion.cs | 6 +- .../System.Xml.Schema/XmlSchemaCollectionTests.cs | 6 +- .../System.Xml.Schema/XmlSchemaDatatypeTests.cs | 6 +- .../Test/System.Xml.Schema/XmlSchemaSetTests.cs | 6 +- .../Test/System.Xml.Schema/XmlSchemaTests.cs | 22 +- .../System.Xml.Schema/XmlSchemaValidatorTests.cs | 20 +- .../ComplexDataStructure.cs | 6 +- .../XmlCodeExporterTests.cs | 4 +- .../XmlSchemaImporterTests.cs | 6 +- .../Test/System.Xml.Xsl/XslTransformTests.cs | 36 +- .../System.XML/Test/System.Xml/XmlNodeTests.cs | 4 +- .../Test/System.Xml/XmlReaderCommonTests.cs | 6 +- .../Test/System.Xml/XmlReaderSettingsTests.cs | 12 +- .../Test/System.Xml/XmlTextReaderTests.cs | 8 +- .../Test/System.Xml/XmlUrlResolverTests.cs | 4 +- .../Test/System.Xml/XsdParticleValidationTests.cs | 4 +- .../Test/System.Xml/XsdValidatingReaderTests.cs | 1266 ++++++++++---------- .../System.XML/Test/System.Xml/nist_dom/util.cs | 14 +- 20 files changed, 756 insertions(+), 717 deletions(-) (limited to 'mcs/class') diff --git a/mcs/class/System.XML/Makefile b/mcs/class/System.XML/Makefile index 871bdae89e6..691948cc2a6 100644 --- a/mcs/class/System.XML/Makefile +++ b/mcs/class/System.XML/Makefile @@ -30,28 +30,30 @@ LIB_MCS_FLAGS += -d:CONFIGURATION_DEP endif nist_dom_files = \ - ITest.cs readme.txt util.cs \ - files/noDTDXMLfile.xml files/otherDoc.xml files/staff.dtd files/staff.html files/staff.xml + ITest.cs readme.txt util.cs + +TEST_RESOURCE_FILES = \ + Test/System.Xml/nist_dom/files/noDTDXMLfile.xml \ + Test/System.Xml/nist_dom/files/otherDoc.xml \ + Test/System.Xml/nist_dom/files/staff.dtd \ + Test/System.Xml/nist_dom/files/staff.html \ + Test/System.Xml/nist_dom/files/staff.xml \ + Test/XmlFiles/xsl/current-in-select.ref \ + $(wildcard Test/XmlFiles/*.xsd) \ + $(wildcard Test/XmlFiles/*.xml) \ + $(wildcard Test/XmlFiles/*.dtd) \ + $(wildcard Test/XmlFiles/xsd/*.xml) \ + $(wildcard Test/XmlFiles/xsd/*.xsd) \ + $(wildcard Test/XmlFiles/xsl/*.xml) \ + $(wildcard Test/XmlFiles/xsl/*.xsl) \ + $(wildcard Test/XmlFiles/XsdValidation/*.xsd) -xmlfiles_files = \ - nested-included.dtd literal-data.xml nested-dtd-test.dtd nested-dtd-test.xml simple.xml \ - xsl/empty.xsl \ - XsdValidation/1.xsd XsdValidation/2.xsd XsdValidation/3.xsd XsdValidation/4.xsd \ - xsd/1.xsd xsd/2.xsd xsd/3.xsd xsd/4.xsd xsd/5.xsd xsd/6.xsd xsd/xml.xsd xsd/81360.xsd xsd/81360inc1.xsd xsd/81360inc2.xsd +TEST_MCS_FLAGS += $(foreach r, $(TEST_RESOURCE_FILES), -resource:$(r),$(r)) EXTRA_DISTFILES = \ $(wildcard System.Xml.Serialization/standalone_tests/*.cs) \ $(wildcard System.Xml.Serialization/standalone_tests/*.output) \ - Test/XmlFiles/76102.xml \ - Test/XmlFiles/79683.dtd \ - Test/XmlFiles/496192.xml \ - Test/XmlFiles/*.xsd \ - $(wildcard Test/XmlFiles/xsd/*.xml) \ - $(wildcard Test/XmlFiles/xsd/*.xsd) \ - $(wildcard Test/XmlFiles/xsl/*.xml) \ - $(wildcard Test/XmlFiles/xsl/*.xsl) \ - Test/XmlFiles/xsl/current-in-select.ref \ - $(xmlfiles_files:%=Test/XmlFiles/%) \ + $(TEST_RESOURCE_FILES) \ $(nist_dom_files:%=Test/System.Xml/nist_dom/%) include ../../build/library.make diff --git a/mcs/class/System.XML/System.Xml_test.dll.sources b/mcs/class/System.XML/System.Xml_test.dll.sources index 3698613cca1..cad32a16a91 100644 --- a/mcs/class/System.XML/System.Xml_test.dll.sources +++ b/mcs/class/System.XML/System.Xml_test.dll.sources @@ -1,3 +1,4 @@ +../../test-helpers/TestResourceHelper.cs System.Xml/NameTableTests.cs System.Xml/XmlAssert.cs System.Xml/XmlAttributeCollectionTests.cs diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaAssertion.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaAssertion.cs index d614b39bf8e..72eb2e4b7e7 100644 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaAssertion.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaAssertion.cs @@ -13,13 +13,15 @@ using System.Xml; using System.Xml.Schema; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { public class XmlSchemaAssertion { - public static XmlSchema GetSchema (string path) + public static XmlSchema GetSchema (string resourceName) { - XmlTextReader reader = new XmlTextReader (path); + XmlTextReader reader = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (resourceName)); XmlSchema schema = XmlSchema.Read (reader, null); reader.Close (); return schema; diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaCollectionTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaCollectionTests.cs index 141f9f3d478..9491e21a427 100644 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaCollectionTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaCollectionTests.cs @@ -14,14 +14,16 @@ using System.Xml; using System.Xml.Schema; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] public class XmlSchemaCollectionTests { - private XmlSchema GetSchema (string path) + private XmlSchema GetSchema (string resourceName) { - return XmlSchema.Read (new XmlTextReader (path), null); + return XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource (resourceName)), null); } private XmlQualifiedName QName (string name, string ns) diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaDatatypeTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaDatatypeTests.cs index bf839ac30dd..d39cbf1787c 100644 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaDatatypeTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaDatatypeTests.cs @@ -22,14 +22,16 @@ using SimpleType = System.Xml.Schema.XmlSchemaSimpleType; using SimpleRest = System.Xml.Schema.XmlSchemaSimpleTypeRestriction; using AssertType = NUnit.Framework.Assert; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] public class XmlSchemaDatatypeTests { - private XmlSchema GetSchema (string path) + private XmlSchema GetSchema (string resourceName) { - return XmlSchema.Read (new XmlTextReader (path), null); + return XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource (resourceName)), null); } private XmlQualifiedName QName (string name, string ns) diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaSetTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaSetTests.cs index 9b45b3f8aaa..c8e0c53bb71 100644 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaSetTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaSetTests.cs @@ -15,6 +15,8 @@ using System.Xml; using System.Xml.Schema; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -203,8 +205,8 @@ type=""xsd:string"" use=""required""/> // complexContent schema conformance check, and // 3) the included schema is already added to XmlSchemaSet. XmlSchemaSet xss = new XmlSchemaSet (); - xss.Add (null, "Test/XmlFiles/xsd/import-subst-dbr-base.xsd"); - xss.Add (null, "Test/XmlFiles/xsd/import-subst-dbr-ext.xsd"); + xss.Add (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/import-subst-dbr-base.xsd")); + xss.Add (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/import-subst-dbr-ext.xsd")); // should not result in lack of substitutionGroup // (and conformance error as its result) xss.Compile (); diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs index 1c17e9745af..7d3b3eb1b45 100644 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs @@ -15,6 +15,8 @@ using System.Xml.Schema; using System.Xml.Serialization; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -159,7 +161,7 @@ namespace MonoTests.System.Xml [Test] public void TestSimpleImport () { - XmlSchema schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/xsd/3.xsd"), null); + XmlSchema schema = XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/3.xsd")), null); Assert.AreEqual ("urn:foo", schema.TargetNamespace); XmlSchemaImport import = schema.Includes [0] as XmlSchemaImport; Assert.IsNotNull (import); @@ -177,7 +179,7 @@ namespace MonoTests.System.Xml [Category ("MobileNotWorking")] public void TestSimpleMutualImport () { - XmlReader r = new XmlTextReader ("Test/XmlFiles/xsd/inter-inc-1.xsd"); + XmlReader r = new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/inter-inc-1.xsd")); try { XmlSchema.Read (r, null).Compile (null); } finally { @@ -188,7 +190,7 @@ namespace MonoTests.System.Xml [Test] public void TestQualification () { - XmlSchema schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/xsd/5.xsd"), null); + XmlSchema schema = XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/5.xsd")), null); schema.Compile (null); XmlSchemaElement el = schema.Elements [QName ("Foo", "urn:bar")] as XmlSchemaElement; Assert.IsNotNull (el); @@ -197,7 +199,7 @@ namespace MonoTests.System.Xml XmlSchemaElement elp = seq.Items [0] as XmlSchemaElement; Assert.AreEqual (QName ("Bar", ""), elp.QualifiedName); - schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/xsd/6.xsd"), null); + schema = XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/6.xsd")), null); schema.Compile (null); el = schema.Elements [QName ("Foo", "urn:bar")] as XmlSchemaElement; Assert.IsNotNull (el); @@ -385,7 +387,7 @@ namespace MonoTests.System.Xml // bug #77687 public void CompileFillsSchemaPropertyInExternal () { - string schemaFileName = "Test/XmlFiles/xsd/77687.xsd"; + string schemaFileName = TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/77687.xsd"); XmlTextReader tr = new XmlTextReader (schemaFileName); XmlSchema schema = XmlSchema.Read (tr, null); @@ -401,8 +403,8 @@ namespace MonoTests.System.Xml // two different keys where one is in scope within another) public void DuplicateKeyFieldAttributePath () { - string schemaFileName = "Test/XmlFiles/xsd/78985.xsd"; - string xmlFileName = "Test/XmlFiles/xsd/78985.xml"; + string schemaFileName = TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/78985.xsd"); + string xmlFileName = TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/78985.xml"); XmlTextReader tr = new XmlTextReader (schemaFileName); XmlValidatingReader vr = new XmlValidatingReader ( @@ -415,7 +417,7 @@ namespace MonoTests.System.Xml [Test] public void ThreeLevelNestedInclusion () { - XmlTextReader r = new XmlTextReader ("Test/XmlFiles/xsd/361818.xsd"); + XmlTextReader r = new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/361818.xsd")); try { XmlSchema xs = XmlSchema.Read (r, null); xs.Compile (null); @@ -542,7 +544,7 @@ namespace MonoTests.System.Xml public void TestResolveUri () { XmlSchemaSet schemaSet = new XmlSchemaSet (); - FileStream stream = new FileStream ("Test/XmlFiles/xsd/resolveUriSchema.xsd", FileMode.Open, FileAccess.Read); + FileStream stream = new FileStream (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/resolveUriSchema.xsd"), FileMode.Open, FileAccess.Read); schemaSet.Add ("http://tempuri.org/resolveUriSchema.xsd", new XmlTextReader (stream)); XmlTestResolver resolver = new XmlTestResolver (); @@ -578,7 +580,7 @@ namespace MonoTests.System.Xml settings.Schemas.Add (schemaSet); settings.ValidationType = ValidationType.Schema; - XmlReader reader = XmlReader.Create ("Test/XmlFiles/xsd/xsdimporttest.xml", settings); + XmlReader reader = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/xsdimporttest.xml"), settings); // Parse the file. while (reader.Read()) {} diff --git a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaValidatorTests.cs b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaValidatorTests.cs index bb4935a6ea8..d463c7409da 100755 --- a/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaValidatorTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaValidatorTests.cs @@ -15,6 +15,8 @@ using System.Xml; using System.Xml.Schema; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -36,7 +38,7 @@ namespace MonoTests.System.Xml { // bug #358408 XmlSchemaSet schemas = new XmlSchemaSet (); - schemas.Add (null, "Test/XmlFiles/xsd/358408.xsd"); + schemas.Add (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/358408.xsd")); XmlSchemaValidator v = new XmlSchemaValidator ( new NameTable (), schemas, @@ -83,12 +85,12 @@ namespace MonoTests.System.Xml [Test] public void SkipInvolved () // bug #422581 { - XmlReader schemaReader = XmlReader.Create ("Test/XmlFiles/xsd/422581.xsd"); + XmlReader schemaReader = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/422581.xsd")); XmlSchema schema = XmlSchema.Read (schemaReader, null); XmlReaderSettings settings = new XmlReaderSettings (); settings.ValidationType = ValidationType.Schema; settings.Schemas.Add (schema); - XmlReader reader = XmlReader.Create ("Test/XmlFiles/xsd/422581.xml", settings); + XmlReader reader = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/422581.xml"), settings); while (reader.Read ()); } @@ -149,8 +151,8 @@ namespace MonoTests.System.Xml [Test] public void Bug496192_496205 () { - using (var xmlr = new StreamReader ("Test/XmlFiles/496192.xml")) - using (var xsdr = new StreamReader ("Test/XmlFiles/496192.xsd")) + using (var xmlr = new StreamReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/496192.xml"))) + using (var xsdr = new StreamReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/496192.xsd"))) Validate (xmlr.ReadToEnd (), xsdr.ReadToEnd ()); } @@ -293,8 +295,8 @@ namespace MonoTests.System.Xml [Test] public void Bug584664 () { - Validate (File.ReadAllText ("Test/XmlFiles/xsd/584664a.xml"), File.ReadAllText ("Test/XmlFiles/xsd/584664a.xsd")); - Validate (File.ReadAllText ("Test/XmlFiles/xsd/584664b.xml"), File.ReadAllText ("Test/XmlFiles/xsd/584664b.xsd")); + Validate (File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/584664a.xml")), File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/584664a.xsd"))); + Validate (File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/584664b.xml")), File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/584664b.xsd"))); } [Test] @@ -332,7 +334,7 @@ namespace MonoTests.System.Xml public void FacetsOnBaseSimpleContentRestriction () { XmlReaderSettings settings = new XmlReaderSettings (); - settings.Schemas.Add (null, "Test/XmlFiles/595947.xsd"); + settings.Schemas.Add (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/595947.xsd")); settings.ValidationType = ValidationType.Schema; settings.Schemas.Compile (); @@ -370,7 +372,7 @@ namespace MonoTests.System.Xml [Test] public void Bug676993 () { - Validate (File.ReadAllText ("Test/XmlFiles/676993.xml"), File.ReadAllText ("Test/XmlFiles/676993.xsd")); + Validate (File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/676993.xml")), File.ReadAllText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/676993.xsd"))); } [Test] diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/ComplexDataStructure.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/ComplexDataStructure.cs index e903d3b2f08..589d7f60826 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/ComplexDataStructure.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/ComplexDataStructure.cs @@ -17,6 +17,8 @@ using System.ComponentModel; using NUnit.Framework; using System.Linq; +using MonoTests.Helpers; + namespace MonoTests.System.XmlSerialization { [TestFixture] @@ -35,7 +37,7 @@ namespace MonoTests.System.XmlSerialization string serialized = sw.ToString (); serialized = XmlSerializerTests.Infoset (serialized); - StreamReader sr = new StreamReader ("Test/XmlFiles/literal-data.xml"); + StreamReader sr = new StreamReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/literal-data.xml")); string expected = sr.ReadToEnd (); sr.Close (); @@ -51,7 +53,7 @@ namespace MonoTests.System.XmlSerialization XmlSerializer ss = new XmlSerializer (GetLiteralTypeMapping ()); XmlSerializerNamespaces nams = new XmlSerializerNamespaces (); - StreamReader sr = new StreamReader ("Test/XmlFiles/literal-data.xml"); + StreamReader sr = new StreamReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/literal-data.xml")); Test data = (Test) ss.Deserialize (sr); sr.Close (); diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlCodeExporterTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlCodeExporterTests.cs index bb8222543c4..d08b16b98c8 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlCodeExporterTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlCodeExporterTests.cs @@ -27,6 +27,8 @@ using NUnit.Framework; using MonoTests.System.Xml.TestClasses; +using MonoTests.Helpers; + namespace MonoTests.System.XmlSerialization { [TestFixture] @@ -931,7 +933,7 @@ namespace MonoTests.System.XmlSerialization [Test] public void DuplicateIdentifiers () { - XmlSchema xs = XmlSchema.Read (File.OpenText ("Test/XmlFiles/xsd/82078.xsd"), null); + XmlSchema xs = XmlSchema.Read (File.OpenText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/82078.xsd")), null); XmlSchemas xss = new XmlSchemas (); xss.Add (xs); diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSchemaImporterTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSchemaImporterTests.cs index f0883beaa6b..c48fad629de 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSchemaImporterTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSchemaImporterTests.cs @@ -46,6 +46,8 @@ using NUnit.Framework; using MonoTests.System.Xml.TestClasses; +using MonoTests.Helpers; + namespace MonoTests.System.Xml.Serialization { [TestFixture] @@ -1159,8 +1161,8 @@ namespace MonoTests.System.Xml.Serialization public void ImportWildcardElementAsClass () { var xss = new XmlSchemas (); - xss.Add (XmlSchema.Read (XmlReader.Create ("Test/XmlFiles/xsd/670945-1.xsd"), null)); - xss.Add (XmlSchema.Read (XmlReader.Create ("Test/XmlFiles/xsd/670945-2.xsd"), null)); + xss.Add (XmlSchema.Read (XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/670945-1.xsd")), null)); + xss.Add (XmlSchema.Read (XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/670945-2.xsd")), null)); var imp = new XmlSchemaImporter (xss); var xtm = imp.ImportSchemaType (new XmlQualifiedName ("SystemDateTime", "http://www.onvif.org/ver10/schema")); var cns = new CodeNamespace (); diff --git a/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs b/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs index d85ff8afccf..9b29638f37a 100644 --- a/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs @@ -16,6 +16,8 @@ using System.Xml.XPath; using System.Xml.Xsl; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml.Xsl { [TestFixture] @@ -40,8 +42,8 @@ namespace MonoTests.System.Xml.Xsl { string output = Path.Combine (Path.GetTempPath (), "result.xml"); doc.LoadXml (""); - xslt.Load ("Test/XmlFiles/xsl/empty.xsl"); - xslt.Transform ("Test/XmlFiles/xsl/empty.xsl", output); + xslt.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/empty.xsl")); + xslt.Transform (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/empty.xsl"), output); result.Load (output); Assert.AreEqual (2, result.ChildNodes.Count, "count"); } @@ -380,10 +382,10 @@ xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-micros "; XmlDocument d = new XmlDocument (); - d.Load ("Test/XmlFiles/xsl/91834.xml"); + d.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/91834.xml")); XslTransform t = new XslTransform (); - t.Load ("Test/XmlFiles/xsl/91834.xsl"); + t.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/91834.xsl")); StringWriter sw_raw = new StringWriter (); t.Transform (d, null, sw_raw); @@ -1912,9 +1914,9 @@ Services "; XslTransform t = new XslTransform (); - t.Load ("Test/XmlFiles/xsl/stripspace.xsl"); + t.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/stripspace.xsl")); XPathDocument d = new XPathDocument ( - "Test/XmlFiles/xsl/stripspace.xml", XmlSpace.Preserve); + TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/stripspace.xml"), XmlSpace.Preserve); StringWriter sw = new StringWriter (); t.Transform (d, null, sw); Assert.AreEqual (result, sw.ToString ()); @@ -1924,13 +1926,13 @@ Services public void CurrentInSelect () { XslTransform t = new XslTransform (); - t.Load ("Test/XmlFiles/xsl/current-in-select.xsl"); + t.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/current-in-select.xsl")); XPathDocument d = new XPathDocument ( - "Test/XmlFiles/xsl/current-in-select.xml", XmlSpace.Preserve); + TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/current-in-select.xml"), XmlSpace.Preserve); StringWriter sw = new StringWriter (); t.Transform (d, null, sw); using (StreamReader sr = File.OpenText ( - "Test/XmlFiles/xsl/current-in-select.ref")) { + TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/current-in-select.ref"))) { string s = sr.ReadToEnd (); Assert.AreEqual (s, sw.ToString ()); } @@ -1959,9 +1961,9 @@ Services public void Bug82493 () { XslTransform transformationObj = new XslTransform (); - transformationObj.Load ("Test/XmlFiles/xsl/82493.xsl"); + transformationObj.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/82493.xsl")); XmlDocument doc = new XmlDocument (); - doc.Load ("Test/XmlFiles/xsl/82493.xml"); + doc.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/82493.xml")); XslExtensionClass GetCalculation = new XslExtensionClass ("a4"); XsltArgumentList xslExtensionArgList = new XsltArgumentList (); xslExtensionArgList.AddExtensionObject ("urn:e", GetCalculation); @@ -1974,9 +1976,9 @@ Services public void BugNovell325482 () { XmlDocument doc = new XmlDocument (); - doc.Load ("Test/XmlFiles/xsl/325482.xml"); + doc.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/325482.xml")); XslTransform xt = new XslTransform (); - xt.Load ("Test/XmlFiles/xsl/325482.xsl"); + xt.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/325482.xsl")); xt.Transform (doc, null, TextWriter.Null); } @@ -2167,8 +2169,8 @@ Services [Test] // bug #316238 public void ResolveVariableInXsltArgumentList () { - ResolveVariableInXsltArgumentList ("Test/XmlFiles/xsl/316238-1.xsl"); - ResolveVariableInXsltArgumentList ("Test/XmlFiles/xsl/316238-2.xsl"); + ResolveVariableInXsltArgumentList (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/316238-1.xsl")); + ResolveVariableInXsltArgumentList (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/316238-2.xsl")); } void ResolveVariableInXsltArgumentList (string file) @@ -2360,9 +2362,9 @@ NO XslCompiledTransform xslTransform = new XslCompiledTransform (); XsltSettings settings = new XsltSettings (); settings.EnableDocumentFunction = true; - xslTransform.Load ("Test/XmlFiles/xsl/391424.xsl", settings, new XmlUrlResolver ()); + xslTransform.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/391424.xsl"), settings, new XmlUrlResolver ()); StringWriter sw = new StringWriter (); - xslTransform.Transform (new XPathDocument ("Test/XmlFiles/xsl/391424.xml", XmlSpace.Preserve), null, sw); + xslTransform.Transform (new XPathDocument (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsl/391424.xml"), XmlSpace.Preserve), null, sw); Assert.AreEqual ("Document found", sw.ToString ()); } diff --git a/mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs b/mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs index 89e659542d1..895475450a2 100644 --- a/mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs @@ -16,6 +16,8 @@ using System.Xml; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -448,7 +450,7 @@ namespace MonoTests.System.Xml { // See bug #64120. XmlDocument doc = new XmlDocument (); - doc.Load ("Test/XmlFiles/simple.xml"); + doc.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml")); XmlElement el = doc.CreateElement ("foo"); Assert.AreEqual (String.Empty, el.BaseURI); doc.DocumentElement.AppendChild (el); diff --git a/mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs b/mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs index 764ce368cfc..6cd87631870 100644 --- a/mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs @@ -20,6 +20,8 @@ using System.Threading.Tasks; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -1515,7 +1517,7 @@ namespace MonoTests.System.Xml { XmlReaderSettings s = new XmlReaderSettings (); s.ProhibitDtd = false; - XmlReader xr = XmlReader.Create ("Test/XmlFiles/nested-dtd-test.xml", s); + XmlReader xr = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/nested-dtd-test.xml"), s); xr.Read (); Assert.AreEqual (XmlNodeType.DocumentType, xr.NodeType, "#1"); xr.Read (); @@ -1528,7 +1530,7 @@ namespace MonoTests.System.Xml [ExpectedException (typeof (XmlException))] public void CreateSimpleProhibitDtd () { - XmlReader xr = XmlReader.Create ("Test/XmlFiles/nested-dtd-test.xml"); + XmlReader xr = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/nested-dtd-test.xml")); xr.Read (); } diff --git a/mcs/class/System.XML/Test/System.Xml/XmlReaderSettingsTests.cs b/mcs/class/System.XML/Test/System.Xml/XmlReaderSettingsTests.cs index 2b20f06e971..c596fa2338d 100644 --- a/mcs/class/System.XML/Test/System.Xml/XmlReaderSettingsTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XmlReaderSettingsTests.cs @@ -18,6 +18,8 @@ using System.Reflection; using ValidationFlags = System.Xml.Schema.XmlSchemaValidationFlags; using AssertType = NUnit.Framework.Assert; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -150,7 +152,7 @@ namespace MonoTests.System.Xml public void CreateAndSettings () { Assert.IsNotNull (XmlReader.Create (CreateStream ("")).Settings); - Assert.IsNotNull (XmlReader.Create ("Test/XmlFiles/simple.xml").Settings); + Assert.IsNotNull (XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml")).Settings); } [Test] @@ -297,7 +299,7 @@ namespace MonoTests.System.Xml public void CreateValidatorFromNonIXmlNamespaceResolver () { XmlReaderSettings settings = new XmlReaderSettings (); - settings.Schemas.Add (null, "Test/XmlFiles/xsd/xml.xsd"); + settings.Schemas.Add (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/xml.xsd")); settings.ValidationType = ValidationType.Schema; XmlReader xr = XmlReader.Create (new StringReader ("")); XmlReader dr = new Commons.Xml.XmlDefaultReader (xr); @@ -311,7 +313,7 @@ namespace MonoTests.System.Xml { XmlReaderSettings settings = new XmlReaderSettings (); settings.XmlResolver = null; - using (XmlReader xr = XmlReader.Create ("Test/XmlFiles/simple.xml", settings)) { + using (XmlReader xr = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml"), settings)) { while (!xr.EOF) xr.Read (); } @@ -335,7 +337,7 @@ namespace MonoTests.System.Xml { XmlReaderSettings settings = new XmlReaderSettings (); settings.XmlResolver = new ThrowExceptionResolver (); - using (XmlReader xr = XmlReader.Create ("Test/XmlFiles/simple.xml", settings)) { + using (XmlReader xr = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml"), settings)) { while (!xr.EOF) xr.Read (); } @@ -367,7 +369,7 @@ namespace MonoTests.System.Xml XmlSchema xs = new XmlSchema (); settings.Schemas.Add (xs); settings.ValidationType = ValidationType.Schema; - using (XmlReader r = XmlReader.Create ("Test/XmlFiles/simple.xml", settings)) { + using (XmlReader r = XmlReader.Create (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml"), settings)) { r.Read (); } } diff --git a/mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs b/mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs index 7205ea7d730..0fe11ec16ed 100644 --- a/mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs @@ -15,6 +15,8 @@ using System.Text; using NUnit.Framework; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -651,7 +653,7 @@ namespace MonoTests.System.Xml public void ExternalDocument () { XmlDocument doc = new XmlDocument (); - doc.Load ("Test/XmlFiles/nested-dtd-test.xml"); + doc.Load (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/nested-dtd-test.xml")); } [Test] @@ -868,7 +870,7 @@ namespace MonoTests.System.Xml [Test] public void CloseIsNotAlwaysEOF2 () { - XmlTextReader xtr = new XmlTextReader ("Test/XmlFiles/simple.xml"); + XmlTextReader xtr = new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/simple.xml")); xtr.Close (); Assert.IsTrue (!xtr.EOF); // Close() != EOF } @@ -1119,7 +1121,7 @@ namespace MonoTests.System.Xml { XmlTextReader xtr = null; try { - xtr = new XmlTextReader (File.OpenText ("Test/XmlFiles/76102.xml")); + xtr = new XmlTextReader (File.OpenText (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/76102.xml"))); while (!xtr.EOF) xtr.Read (); } finally { diff --git a/mcs/class/System.XML/Test/System.Xml/XmlUrlResolverTests.cs b/mcs/class/System.XML/Test/System.Xml/XmlUrlResolverTests.cs index 6926379c96a..9d085ec5036 100644 --- a/mcs/class/System.XML/Test/System.Xml/XmlUrlResolverTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XmlUrlResolverTests.cs @@ -12,6 +12,8 @@ using System.Xml; using NUnit.Framework; using System.Reflection; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { [TestFixture] @@ -28,7 +30,7 @@ namespace MonoTests.System.Xml [Test] public void FileUri () { - Uri resolved = resolver.ResolveUri (null, "Test/XmlFiles/xsd/xml.xsd"); + Uri resolved = resolver.ResolveUri (null, TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/xml.xsd")); Assert.AreEqual ("file", resolved.Scheme); Stream s = resolver.GetEntity (resolved, null, typeof (Stream)) as Stream; } diff --git a/mcs/class/System.XML/Test/System.Xml/XsdParticleValidationTests.cs b/mcs/class/System.XML/Test/System.Xml/XsdParticleValidationTests.cs index 69c12c7c525..079ea1d8c83 100644 --- a/mcs/class/System.XML/Test/System.Xml/XsdParticleValidationTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XsdParticleValidationTests.cs @@ -13,6 +13,8 @@ using NUnit.Framework; using ValidationException = System.Xml.Schema.XmlSchemaValidationException; +using MonoTests.Helpers; + namespace MonoTests.System.Xml { // using XmlValidatingReader = XmlTextReader; @@ -26,7 +28,7 @@ namespace MonoTests.System.Xml private void PrepareReader1 (string xsdUrl, string xml) { - schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/XsdValidation/" + xsdUrl), null); + schema = XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/XsdValidation/" + xsdUrl)), null); xr = new XmlTextReader (xml, XmlNodeType.Document, null); xvr = new XmlValidatingReader (xr); xvr.Schemas.Add (schema); diff --git a/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs b/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs index 8bbcf11706a..ac5ced83bb6 100644 --- a/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs +++ b/mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs @@ -1,633 +1,635 @@ -// -// MonoTests.System.Xml.XsdValidatingReaderTests.cs -// -// Author: -// Atsushi Enomoto -// -// (C)2003 Atsushi Enomoto -// (C)2005-2007 Novell, Inc. -// -using System; -using System.IO; -using System.Net; -using System.Xml; -using System.Xml.Schema; -using NUnit.Framework; - -namespace MonoTests.System.Xml -{ - [TestFixture] - public class XsdValidatingReaderTests - { - public XsdValidatingReaderTests () - { - } - - XmlReader xtr; - XmlValidatingReader xvr; - - private XmlValidatingReader PrepareXmlReader (string xml) - { - XmlReader reader = new XmlTextReader (xml, XmlNodeType.Document, null); -// XmlDocument doc = new XmlDocument (); -// doc.LoadXml (xml); -// XmlReader reader = new XmlNodeReader (doc); - - return new XmlValidatingReader (reader); - } - - [Test] - public void TestEmptySchema () - { - string xml = ""; - xvr = PrepareXmlReader (xml); - xvr.ValidationType = ValidationType.Schema; - xvr.Read (); // Is is missing schema component. - } - - [Test] - public void TestSimpleValidation () - { - string xml = ""; - xvr = PrepareXmlReader (xml); - Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); - XmlSchema schema = new XmlSchema (); - XmlSchemaElement elem = new XmlSchemaElement (); - elem.Name = "root"; - schema.Items.Add (elem); - xvr.Schemas.Add (schema); - xvr.Read (); // root - Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); - xvr.Read (); // EOF - - xml = ""; - xvr = PrepareXmlReader (xml); - xvr.Schemas.Add (schema); - try { - xvr.Read (); - Assert.Fail ("element mismatch is incorrectly allowed"); - } catch (XmlSchemaException) { - } - - xml = ""; - xvr = PrepareXmlReader (xml); - xvr.Schemas.Add (schema); - try { - xvr.Read (); - Assert.Fail ("Element in different namespace is incorrectly allowed."); - } catch (XmlSchemaException) { - } - } - - [Test] - public void TestReadTypedValueSimple () - { - string xml = "12"; - XmlSchema schema = new XmlSchema (); - XmlSchemaElement elem = new XmlSchemaElement (); - elem.Name = "root"; - elem.SchemaTypeName = new XmlQualifiedName ("integer", XmlSchema.Namespace); - schema.Items.Add (elem); - - // Lap 1: - - xvr = PrepareXmlReader (xml); - xvr.Schemas.Add (schema); - // Read directly from root. - object o = xvr.ReadTypedValue (); - Assert.AreEqual (ReadState.Initial, xvr.ReadState); - Assert.IsNull (o); - - xvr.Read (); // element root - Assert.AreEqual (XmlNodeType.Element, xvr.NodeType); - Assert.IsNotNull (xvr.SchemaType); - Assert.IsTrue (xvr.SchemaType is XmlSchemaDatatype); - o = xvr.ReadTypedValue (); // read "12" - Assert.AreEqual (XmlNodeType.EndElement, xvr.NodeType); - Assert.IsNotNull (o); - Assert.AreEqual (typeof (decimal), o.GetType ()); - decimal n = (decimal) o; - Assert.AreEqual (12, n); - Assert.IsTrue (!xvr.EOF); - Assert.AreEqual ("root", xvr.Name); - Assert.IsNull (xvr.SchemaType); // EndElement's type - - // Lap 2: - - xvr = PrepareXmlReader (xml); - xvr.Schemas.Add (schema); - xvr.Read (); // root - XmlSchemaDatatype dt = xvr.SchemaType as XmlSchemaDatatype; - Assert.IsNotNull (dt); - Assert.AreEqual (typeof (decimal), dt.ValueType); - Assert.AreEqual (XmlTokenizedType.None, dt.TokenizedType); - xvr.Read (); // text "12" - Assert.IsNull (xvr.SchemaType); - o = xvr.ReadTypedValue (); - // ReadTypedValue is different from ReadString(). - Assert.IsNull (o); - } - - [Test] - [Ignore ("XML Schema validator should not be available for validating non namespace-aware XmlReader that handled colon as a name character")] - public void TestNamespacesFalse () - { - // This tests if Namespaces=false is specified, then - // the reader's NamespaceURI should be always string.Empty and - // validation should be done against such schema that has target ns as "". - string xml = ""; - xvr = PrepareXmlReader (xml); - xvr.Namespaces = false; - Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); - XmlSchema schema = new XmlSchema (); - schema.TargetNamespace = "urn:foo"; - XmlSchemaElement elem = new XmlSchemaElement (); - elem.Name = "root"; - schema.Items.Add (elem); - xvr.Schemas.Add (schema); - xvr.Read (); // root - Assert.IsTrue (!xvr.Namespaces); - Assert.AreEqual ("x:root", xvr.Name); - // LocalName may contain colons. - Assert.AreEqual ("x:root", xvr.LocalName); - // NamespaceURI is not supplied. - Assert.AreEqual ("", xvr.NamespaceURI); - } - - [Test] - public void TestReadTypedAttributeValue () - { - string xml = ""; - XmlSchema schema = new XmlSchema (); - XmlSchemaElement elem = new XmlSchemaElement (); - elem.Name = "root"; - XmlSchemaComplexType ct = new XmlSchemaComplexType (); - XmlSchemaAttribute attr = new XmlSchemaAttribute (); - attr.Name = "attr"; - attr.SchemaTypeName = new XmlQualifiedName ("int", XmlSchema.Namespace); - ct.Attributes.Add (attr); - elem.SchemaType = ct; - schema.Items.Add (elem); - - xvr = PrepareXmlReader (xml); - xvr.Schemas.Add (schema); - xvr.Read (); - Assert.AreEqual ("root", xvr.Name); - Assert.IsTrue (xvr.MoveToNextAttribute ()); // attr - Assert.AreEqual ("attr", xvr.Name); - XmlSchemaDatatype dt = xvr.SchemaType as XmlSchemaDatatype; - Assert.IsNotNull (dt); - Assert.AreEqual (typeof (int), dt.ValueType); - Assert.AreEqual (XmlTokenizedType.None, dt.TokenizedType); - object o = xvr.ReadTypedValue (); - Assert.AreEqual (XmlNodeType.Attribute, xvr.NodeType); - Assert.AreEqual (typeof (int), o.GetType ()); - int n = (int) o; - Assert.AreEqual (12, n); - Assert.IsTrue (xvr.ReadAttributeValue ()); // can read = seems not proceed. - } - - [Test] - public void DuplicateSchemaAssignment () - { - string xml = @""; - string xsd = @" - "; - - string xmlns = "http://www.test.com/schemas/"; - - XmlValidatingReader xvr = new XmlValidatingReader ( - xml, XmlNodeType.Document, null); - XmlSchemaCollection schemas = new XmlSchemaCollection (); - schemas.Add (XmlSchema.Read (new XmlTextReader ( - xsd, XmlNodeType.Document, null), null)); - xvr.Schemas.Add (schemas); - while (!xvr.EOF) - xvr.Read (); - } - - [Test] // bug #76234 - public void DTDValidatorNamespaceHandling () - { - string xml = " "; - XmlValidatingReader vr = new XmlValidatingReader ( - xml, XmlNodeType.Document, null); - vr.Read (); - vr.Read (); // whitespace - Assert.AreEqual (String.Empty, vr.NamespaceURI, "#1"); - vr.Read (); // foo - Assert.AreEqual ("urn:a", vr.NamespaceURI, "#2"); - vr.Read (); // whitespace - vr.Read (); // a:bar - Assert.AreEqual ("urn:a", vr.NamespaceURI, "#3"); - vr.Read (); // whitespace - vr.Read (); // bug - Assert.AreEqual ("urn:a", vr.NamespaceURI, "#4"); - } - - [Test] - public void MultipleSchemaInSchemaLocation () - { - XmlTextReader xtr = new XmlTextReader ("Test/XmlFiles/xsd/multi-schemaLocation.xml"); - XmlValidatingReader vr = new XmlValidatingReader (xtr); - while (!vr.EOF) - vr.Read (); - } - - [Test] - public void ReadTypedValueSimpleTypeRestriction () - { - string xml = "xx"; - string xsd = @" - - - - - - - - -"; - XmlTextReader xir = - new XmlTextReader (xml, XmlNodeType.Document, null); - XmlTextReader xsr = - new XmlTextReader (xsd, XmlNodeType.Document, null); - XmlValidatingReader vr = new XmlValidatingReader (xir); - vr.Schemas.Add (XmlSchema.Read (xsr, null)); - vr.Read (); // root - Assert.AreEqual ("xx", vr.ReadTypedValue ()); - Assert.AreEqual (XmlNodeType.EndElement, vr.NodeType); - } - - // If we normalize string before validating with facets, - // this test will fail. It will also fail if ReadTypedValue() - // ignores whitespace nodes. - [Test] - public void ReadTypedValueWhitespaces () - { - string xml = " "; - string xsd = @" - - - - - - - - -"; - XmlTextReader xir = - new XmlTextReader (xml, XmlNodeType.Document, null); - XmlTextReader xsr = - new XmlTextReader (xsd, XmlNodeType.Document, null); - XmlValidatingReader vr = new XmlValidatingReader (xir); - vr.Schemas.Add (XmlSchema.Read (xsr, null)); - vr.Read (); // root - Assert.AreEqual (" ", vr.ReadTypedValue ()); - Assert.AreEqual (XmlNodeType.EndElement, vr.NodeType); - } - - [Test] // bug #77241 - public void EmptyContentAllowWhitespace () - { - string doc = @" - - - - -"; - string schema = @" - - - - - - - - - -"; - XmlValidatingReader reader = new XmlValidatingReader ( - new XmlTextReader (new StringReader (doc))); - reader.Schemas.Add (null, - new XmlTextReader (new StringReader (schema))); - while (reader.Read ()) - ; - } - - [Test] // bug #79650 +// +// MonoTests.System.Xml.XsdValidatingReaderTests.cs +// +// Author: +// Atsushi Enomoto +// +// (C)2003 Atsushi Enomoto +// (C)2005-2007 Novell, Inc. +// +using System; +using System.IO; +using System.Net; +using System.Xml; +using System.Xml.Schema; +using NUnit.Framework; + +using MonoTests.Helpers; + +namespace MonoTests.System.Xml +{ + [TestFixture] + public class XsdValidatingReaderTests + { + public XsdValidatingReaderTests () + { + } + + XmlReader xtr; + XmlValidatingReader xvr; + + private XmlValidatingReader PrepareXmlReader (string xml) + { + XmlReader reader = new XmlTextReader (xml, XmlNodeType.Document, null); +// XmlDocument doc = new XmlDocument (); +// doc.LoadXml (xml); +// XmlReader reader = new XmlNodeReader (doc); + + return new XmlValidatingReader (reader); + } + + [Test] + public void TestEmptySchema () + { + string xml = ""; + xvr = PrepareXmlReader (xml); + xvr.ValidationType = ValidationType.Schema; + xvr.Read (); // Is is missing schema component. + } + + [Test] + public void TestSimpleValidation () + { + string xml = ""; + xvr = PrepareXmlReader (xml); + Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); + XmlSchema schema = new XmlSchema (); + XmlSchemaElement elem = new XmlSchemaElement (); + elem.Name = "root"; + schema.Items.Add (elem); + xvr.Schemas.Add (schema); + xvr.Read (); // root + Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); + xvr.Read (); // EOF + + xml = ""; + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + try { + xvr.Read (); + Assert.Fail ("element mismatch is incorrectly allowed"); + } catch (XmlSchemaException) { + } + + xml = ""; + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + try { + xvr.Read (); + Assert.Fail ("Element in different namespace is incorrectly allowed."); + } catch (XmlSchemaException) { + } + } + + [Test] + public void TestReadTypedValueSimple () + { + string xml = "12"; + XmlSchema schema = new XmlSchema (); + XmlSchemaElement elem = new XmlSchemaElement (); + elem.Name = "root"; + elem.SchemaTypeName = new XmlQualifiedName ("integer", XmlSchema.Namespace); + schema.Items.Add (elem); + + // Lap 1: + + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + // Read directly from root. + object o = xvr.ReadTypedValue (); + Assert.AreEqual (ReadState.Initial, xvr.ReadState); + Assert.IsNull (o); + + xvr.Read (); // element root + Assert.AreEqual (XmlNodeType.Element, xvr.NodeType); + Assert.IsNotNull (xvr.SchemaType); + Assert.IsTrue (xvr.SchemaType is XmlSchemaDatatype); + o = xvr.ReadTypedValue (); // read "12" + Assert.AreEqual (XmlNodeType.EndElement, xvr.NodeType); + Assert.IsNotNull (o); + Assert.AreEqual (typeof (decimal), o.GetType ()); + decimal n = (decimal) o; + Assert.AreEqual (12, n); + Assert.IsTrue (!xvr.EOF); + Assert.AreEqual ("root", xvr.Name); + Assert.IsNull (xvr.SchemaType); // EndElement's type + + // Lap 2: + + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + xvr.Read (); // root + XmlSchemaDatatype dt = xvr.SchemaType as XmlSchemaDatatype; + Assert.IsNotNull (dt); + Assert.AreEqual (typeof (decimal), dt.ValueType); + Assert.AreEqual (XmlTokenizedType.None, dt.TokenizedType); + xvr.Read (); // text "12" + Assert.IsNull (xvr.SchemaType); + o = xvr.ReadTypedValue (); + // ReadTypedValue is different from ReadString(). + Assert.IsNull (o); + } + + [Test] + [Ignore ("XML Schema validator should not be available for validating non namespace-aware XmlReader that handled colon as a name character")] + public void TestNamespacesFalse () + { + // This tests if Namespaces=false is specified, then + // the reader's NamespaceURI should be always string.Empty and + // validation should be done against such schema that has target ns as "". + string xml = ""; + xvr = PrepareXmlReader (xml); + xvr.Namespaces = false; + Assert.AreEqual (ValidationType.Auto, xvr.ValidationType); + XmlSchema schema = new XmlSchema (); + schema.TargetNamespace = "urn:foo"; + XmlSchemaElement elem = new XmlSchemaElement (); + elem.Name = "root"; + schema.Items.Add (elem); + xvr.Schemas.Add (schema); + xvr.Read (); // root + Assert.IsTrue (!xvr.Namespaces); + Assert.AreEqual ("x:root", xvr.Name); + // LocalName may contain colons. + Assert.AreEqual ("x:root", xvr.LocalName); + // NamespaceURI is not supplied. + Assert.AreEqual ("", xvr.NamespaceURI); + } + + [Test] + public void TestReadTypedAttributeValue () + { + string xml = ""; + XmlSchema schema = new XmlSchema (); + XmlSchemaElement elem = new XmlSchemaElement (); + elem.Name = "root"; + XmlSchemaComplexType ct = new XmlSchemaComplexType (); + XmlSchemaAttribute attr = new XmlSchemaAttribute (); + attr.Name = "attr"; + attr.SchemaTypeName = new XmlQualifiedName ("int", XmlSchema.Namespace); + ct.Attributes.Add (attr); + elem.SchemaType = ct; + schema.Items.Add (elem); + + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + xvr.Read (); + Assert.AreEqual ("root", xvr.Name); + Assert.IsTrue (xvr.MoveToNextAttribute ()); // attr + Assert.AreEqual ("attr", xvr.Name); + XmlSchemaDatatype dt = xvr.SchemaType as XmlSchemaDatatype; + Assert.IsNotNull (dt); + Assert.AreEqual (typeof (int), dt.ValueType); + Assert.AreEqual (XmlTokenizedType.None, dt.TokenizedType); + object o = xvr.ReadTypedValue (); + Assert.AreEqual (XmlNodeType.Attribute, xvr.NodeType); + Assert.AreEqual (typeof (int), o.GetType ()); + int n = (int) o; + Assert.AreEqual (12, n); + Assert.IsTrue (xvr.ReadAttributeValue ()); // can read = seems not proceed. + } + + [Test] + public void DuplicateSchemaAssignment () + { + string xml = @""; + string xsd = @" + "; + + string xmlns = "http://www.test.com/schemas/"; + + XmlValidatingReader xvr = new XmlValidatingReader ( + xml, XmlNodeType.Document, null); + XmlSchemaCollection schemas = new XmlSchemaCollection (); + schemas.Add (XmlSchema.Read (new XmlTextReader ( + xsd, XmlNodeType.Document, null), null)); + xvr.Schemas.Add (schemas); + while (!xvr.EOF) + xvr.Read (); + } + + [Test] // bug #76234 + public void DTDValidatorNamespaceHandling () + { + string xml = " "; + XmlValidatingReader vr = new XmlValidatingReader ( + xml, XmlNodeType.Document, null); + vr.Read (); + vr.Read (); // whitespace + Assert.AreEqual (String.Empty, vr.NamespaceURI, "#1"); + vr.Read (); // foo + Assert.AreEqual ("urn:a", vr.NamespaceURI, "#2"); + vr.Read (); // whitespace + vr.Read (); // a:bar + Assert.AreEqual ("urn:a", vr.NamespaceURI, "#3"); + vr.Read (); // whitespace + vr.Read (); // bug + Assert.AreEqual ("urn:a", vr.NamespaceURI, "#4"); + } + + [Test] + public void MultipleSchemaInSchemaLocation () + { + XmlTextReader xtr = new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/multi-schemaLocation.xml")); + XmlValidatingReader vr = new XmlValidatingReader (xtr); + while (!vr.EOF) + vr.Read (); + } + + [Test] + public void ReadTypedValueSimpleTypeRestriction () + { + string xml = "xx"; + string xsd = @" + + + + + + + + +"; + XmlTextReader xir = + new XmlTextReader (xml, XmlNodeType.Document, null); + XmlTextReader xsr = + new XmlTextReader (xsd, XmlNodeType.Document, null); + XmlValidatingReader vr = new XmlValidatingReader (xir); + vr.Schemas.Add (XmlSchema.Read (xsr, null)); + vr.Read (); // root + Assert.AreEqual ("xx", vr.ReadTypedValue ()); + Assert.AreEqual (XmlNodeType.EndElement, vr.NodeType); + } + + // If we normalize string before validating with facets, + // this test will fail. It will also fail if ReadTypedValue() + // ignores whitespace nodes. + [Test] + public void ReadTypedValueWhitespaces () + { + string xml = " "; + string xsd = @" + + + + + + + + +"; + XmlTextReader xir = + new XmlTextReader (xml, XmlNodeType.Document, null); + XmlTextReader xsr = + new XmlTextReader (xsd, XmlNodeType.Document, null); + XmlValidatingReader vr = new XmlValidatingReader (xir); + vr.Schemas.Add (XmlSchema.Read (xsr, null)); + vr.Read (); // root + Assert.AreEqual (" ", vr.ReadTypedValue ()); + Assert.AreEqual (XmlNodeType.EndElement, vr.NodeType); + } + + [Test] // bug #77241 + public void EmptyContentAllowWhitespace () + { + string doc = @" + + + + +"; + string schema = @" + + + + + + + + + +"; + XmlValidatingReader reader = new XmlValidatingReader ( + new XmlTextReader (new StringReader (doc))); + reader.Schemas.Add (null, + new XmlTextReader (new StringReader (schema))); + while (reader.Read ()) + ; + } + + [Test] // bug #79650 // LAMESPEC: .NET does not throw XmlSchemaValidationException - [ExpectedException (typeof (XmlSchemaException))] - public void EnumerationFacetOnAttribute () - { - string xml = ""; - XmlSchema schema = XmlSchema.Read (new XmlTextReader ("Test/XmlFiles/xsd/79650.xsd"), null); - XmlValidatingReader xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null); - xvr.ValidationType = ValidationType.Schema; - xvr.Schemas.Add (schema); - while (!xvr.EOF) - xvr.Read (); - } - - class XmlErrorResolver : XmlResolver - { - public override ICredentials Credentials { - set { } - } - - public override object GetEntity (Uri uri, string role, Type type) - { - throw new Exception (); - } - } - - [Test] // bug #79924 - public void ValidationTypeNoneIgnoreSchemaLocations () - { - string xml = ""; - XmlValidatingReader vr = new XmlValidatingReader ( - new XmlTextReader (new StringReader (xml))); - vr.ValidationType = ValidationType.None; - vr.XmlResolver = new XmlErrorResolver (); - while (!vr.EOF) - vr.Read (); - } - - [Test] // bug #336625 - public void ValidationTypeNoneIgnoreLocatedSchemaErrors () - { - string xml = ""; - XmlValidatingReader vr = new XmlValidatingReader ( - new XmlTextReader (new StringReader (xml))); - vr.ValidationType = ValidationType.None; - while (!vr.EOF) - vr.Read (); - } - - [Test] - public void Bug81360 () - { - string schemaFile = "Test/XmlFiles/xsd/81360.xsd"; - XmlTextReader treader = new XmlTextReader (schemaFile); - XmlSchema sc = XmlSchema.Read (treader, null); - sc.Compile (null); - string xml = @"
"; - XmlTextReader reader = new XmlTextReader (new StringReader (xml)); - XmlValidatingReader validator = new XmlValidatingReader (reader); - validator.Schemas.Add (sc); - validator.ValidationType = ValidationType.Schema; - while (!validator.EOF) - validator.Read (); - } - - [Test] - public void Bug81460 () - { - string xsd = ""; - string xml = ""; - XmlReaderSettings s = new XmlReaderSettings (); - s.ValidationType = ValidationType.Schema; - s.Schemas.Add (XmlSchema.Read (new StringReader (xsd), null)); - XmlReader r = XmlReader.Create (new StringReader (xml), s); - r.Read (); - r.MoveToFirstAttribute (); // default attribute - Assert.AreEqual (String.Empty, r.Prefix); - } - - [Test] - // annoyance - [ExpectedException (typeof (XmlSchemaValidationException))] - public void Bug82099 () - { - string xsd = @" - - - - - -"; - XmlSchema schema = XmlSchema.Read (new StringReader (xsd), null); - - string xml = " "; - - XmlReaderSettings settings = new XmlReaderSettings (); - settings.Schemas.Add (schema); - settings.ValidationType = ValidationType.Schema; - - XmlReader reader = XmlReader.Create (new StringReader (xml), settings); - - reader.Read (); - reader.Read (); - reader.Read (); - } - - [Test] - public void Bug82010 () - { - string xmlfile = "Test/XmlFiles/xsd/82010.xml"; - string xsdfile = "Test/XmlFiles/xsd/82010.xsd"; - XmlTextReader xr = null, xr2 = null; - try { - xr = new XmlTextReader (xsdfile); - xr2 = new XmlTextReader (xmlfile); - XmlValidatingReader xvr = new XmlValidatingReader (xr2); - xvr.Schemas.Add (XmlSchema.Read (xr, null)); - while (!xvr.EOF) - xvr.Read (); - } finally { - if (xr2 != null) - xr2.Close (); - if (xr != null) - xr.Close (); - } - } - - [Test] - public void Bug376395 () - { - string xmlfile = "Test/XmlFiles/xsd/376395.xml"; - string xsdfile = "Test/XmlFiles/xsd/376395.xsd"; - XmlTextReader xr = null, xr2 = null; - try { - xr = new XmlTextReader (xsdfile); - xr2 = new XmlTextReader (xmlfile); - XmlValidatingReader xvr = new XmlValidatingReader (xr2); - xvr.Schemas.Add (XmlSchema.Read (xr, null)); - while (!xvr.EOF) - xvr.Read (); - } finally { - if (xr2 != null) - xr2.Close (); - if (xr != null) - xr.Close (); - } - } - - [Test] - public void ValidateMixedInsideXsdAny () - { - string xml = @" - text - text -"; - string xsd = @" - - - - - - - - - - - - - - - -"; - XmlTextReader xtr = new XmlTextReader (new StringReader (xml)); - XmlValidatingReader xvr = new XmlValidatingReader (xtr); - XmlReader xsr = new XmlTextReader (new StringReader (xsd)); - xvr.Schemas.Add (XmlSchema.Read (xsr, null)); - while (!xvr.EOF) - xvr.Read (); - xtr = new XmlTextReader (new StringReader (xml)); - xsr = new XmlTextReader (new StringReader (xsd)); - var s = new XmlReaderSettings (); - s.Schemas.Add (XmlSchema.Read (xsr, null)); - s.ValidationType = ValidationType.Schema; - XmlReader xvr2 = XmlReader.Create (xtr, s); - while (!xvr2.EOF) - xvr2.Read (); - } - - [Test] - public void WhitespaceAndElementOnly () - { - string xsd = @" - - - - - - - -"; - string xml = @" - - - - - -"; - RunValidation (xml, xsd); - } - - [Test] - [ExpectedException (typeof (XmlSchemaValidationException))] - public void EnumerationFacet () - { - // bug #339934 - string xsd = @" - - - - - - - - - - - - -"; - string xml = @""; - - RunValidation (xml, xsd); - } - - [Test] - public void Bug501763 () - { - string xsd1 = @" - - - - - "; - - string xsd2 = @" - - - - - - - - - - - - - - - - "; - - - XmlDocument doc = new XmlDocument (); - - XmlSchema schema1 = XmlSchema.Read (XmlReader.Create (new StringReader (xsd1)), null); - XmlSchema schema2 = XmlSchema.Read (XmlReader.Create (new StringReader (xsd2)), null); - - doc.LoadXml (@" - "); - doc.Schemas.Add (schema2); - doc.Validate (null); - - doc = new XmlDocument(); - doc.LoadXml(@" - "); - doc.Schemas.Add (schema2); - doc.Schemas.Add (schema1); - doc.Validate (null); - } - - void RunValidation (string xml, string xsd) - { - XmlReaderSettings s = new XmlReaderSettings (); - s.ValidationType = ValidationType.Schema; - s.Schemas.Add (XmlSchema.Read (XmlReader.Create (new StringReader (xsd)), null)); - - XmlReader r = XmlReader.Create (new StringReader (xml), s); - while (!r.EOF) - r.Read (); - } - } -} + [ExpectedException (typeof (XmlSchemaException))] + public void EnumerationFacetOnAttribute () + { + string xml = ""; + XmlSchema schema = XmlSchema.Read (new XmlTextReader (TestResourceHelper.GetFullPathOfResource ("Test/XmlFiles/xsd/79650.xsd")), null); + XmlValidatingReader xvr = new XmlValidatingReader (xml, XmlNodeType.Document, null); + xvr.ValidationType = ValidationType.Schema; + xvr.Schemas.Add (schema); + while (!xvr.EOF) + xvr.Read (); + } + + class XmlErrorResolver : XmlResolver + { + public override ICredentials Credentials { + set { } + } + + public override object GetEntity (Uri uri, string role, Type type) + { + throw new Exception (); + } + } + + [Test] // bug #79924 + public void ValidationTypeNoneIgnoreSchemaLocations () + { + string xml = ""; + XmlValidatingReader vr = new XmlValidatingReader ( + new XmlTextReader (new StringReader (xml))); + vr.ValidationType = ValidationType.None; + vr.XmlResolver = new XmlErrorResolver (); + while (!vr.EOF) + vr.Read (); + } + + [Test] // bug #336625 + public void ValidationTypeNoneIgnoreLocatedSchemaErrors () + { + string xml = ""; + XmlValidatingReader vr = new XmlValidatingReader ( + new XmlTextReader (new StringReader (xml))); + vr.ValidationType = ValidationType.None; + while (!vr.EOF) + vr.Read (); + } + + [Test] + public void Bug81360 () + { + string schemaResource = "Test/XmlFiles/xsd/81360.xsd"; + XmlTextReader treader = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (schemaResource)); + XmlSchema sc = XmlSchema.Read (treader, null); + sc.Compile (null); + string xml = @"
"; + XmlTextReader reader = new XmlTextReader (new StringReader (xml)); + XmlValidatingReader validator = new XmlValidatingReader (reader); + validator.Schemas.Add (sc); + validator.ValidationType = ValidationType.Schema; + while (!validator.EOF) + validator.Read (); + } + + [Test] + public void Bug81460 () + { + string xsd = ""; + string xml = ""; + XmlReaderSettings s = new XmlReaderSettings (); + s.ValidationType = ValidationType.Schema; + s.Schemas.Add (XmlSchema.Read (new StringReader (xsd), null)); + XmlReader r = XmlReader.Create (new StringReader (xml), s); + r.Read (); + r.MoveToFirstAttribute (); // default attribute + Assert.AreEqual (String.Empty, r.Prefix); + } + + [Test] + // annoyance + [ExpectedException (typeof (XmlSchemaValidationException))] + public void Bug82099 () + { + string xsd = @" + + + + + +"; + XmlSchema schema = XmlSchema.Read (new StringReader (xsd), null); + + string xml = " "; + + XmlReaderSettings settings = new XmlReaderSettings (); + settings.Schemas.Add (schema); + settings.ValidationType = ValidationType.Schema; + + XmlReader reader = XmlReader.Create (new StringReader (xml), settings); + + reader.Read (); + reader.Read (); + reader.Read (); + } + + [Test] + public void Bug82010 () + { + string xmlresource = "Test/XmlFiles/xsd/82010.xml"; + string xsdresource = "Test/XmlFiles/xsd/82010.xsd"; + XmlTextReader xr = null, xr2 = null; + try { + xr = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (xsdresource)); + xr2 = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (xmlresource)); + XmlValidatingReader xvr = new XmlValidatingReader (xr2); + xvr.Schemas.Add (XmlSchema.Read (xr, null)); + while (!xvr.EOF) + xvr.Read (); + } finally { + if (xr2 != null) + xr2.Close (); + if (xr != null) + xr.Close (); + } + } + + [Test] + public void Bug376395 () + { + string xmlresource = "Test/XmlFiles/xsd/376395.xml"; + string xsdresource = "Test/XmlFiles/xsd/376395.xsd"; + XmlTextReader xr = null, xr2 = null; + try { + xr = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (xsdresource)); + xr2 = new XmlTextReader (TestResourceHelper.GetFullPathOfResource (xmlresource)); + XmlValidatingReader xvr = new XmlValidatingReader (xr2); + xvr.Schemas.Add (XmlSchema.Read (xr, null)); + while (!xvr.EOF) + xvr.Read (); + } finally { + if (xr2 != null) + xr2.Close (); + if (xr != null) + xr.Close (); + } + } + + [Test] + public void ValidateMixedInsideXsdAny () + { + string xml = @" + text + text +"; + string xsd = @" + + + + + + + + + + + + + + + +"; + XmlTextReader xtr = new XmlTextReader (new StringReader (xml)); + XmlValidatingReader xvr = new XmlValidatingReader (xtr); + XmlReader xsr = new XmlTextReader (new StringReader (xsd)); + xvr.Schemas.Add (XmlSchema.Read (xsr, null)); + while (!xvr.EOF) + xvr.Read (); + xtr = new XmlTextReader (new StringReader (xml)); + xsr = new XmlTextReader (new StringReader (xsd)); + var s = new XmlReaderSettings (); + s.Schemas.Add (XmlSchema.Read (xsr, null)); + s.ValidationType = ValidationType.Schema; + XmlReader xvr2 = XmlReader.Create (xtr, s); + while (!xvr2.EOF) + xvr2.Read (); + } + + [Test] + public void WhitespaceAndElementOnly () + { + string xsd = @" + + + + + + + +"; + string xml = @" + + + + + +"; + RunValidation (xml, xsd); + } + + [Test] + [ExpectedException (typeof (XmlSchemaValidationException))] + public void EnumerationFacet () + { + // bug #339934 + string xsd = @" + + + + + + + + + + + + +"; + string xml = @""; + + RunValidation (xml, xsd); + } + + [Test] + public void Bug501763 () + { + string xsd1 = @" + + + + + "; + + string xsd2 = @" + + + + + + + + + + + + + + + + "; + + + XmlDocument doc = new XmlDocument (); + + XmlSchema schema1 = XmlSchema.Read (XmlReader.Create (new StringReader (xsd1)), null); + XmlSchema schema2 = XmlSchema.Read (XmlReader.Create (new StringReader (xsd2)), null); + + doc.LoadXml (@" + "); + doc.Schemas.Add (schema2); + doc.Validate (null); + + doc = new XmlDocument(); + doc.LoadXml(@" + "); + doc.Schemas.Add (schema2); + doc.Schemas.Add (schema1); + doc.Validate (null); + } + + void RunValidation (string xml, string xsd) + { + XmlReaderSettings s = new XmlReaderSettings (); + s.ValidationType = ValidationType.Schema; + s.Schemas.Add (XmlSchema.Read (XmlReader.Create (new StringReader (xsd)), null)); + + XmlReader r = XmlReader.Create (new StringReader (xml), s); + while (!r.EOF) + r.Read (); + } + } +} diff --git a/mcs/class/System.XML/Test/System.Xml/nist_dom/util.cs b/mcs/class/System.XML/Test/System.Xml/nist_dom/util.cs index ec03b3b79b8..f06293b8ab5 100644 --- a/mcs/class/System.XML/Test/System.Xml/nist_dom/util.cs +++ b/mcs/class/System.XML/Test/System.Xml/nist_dom/util.cs @@ -14,6 +14,8 @@ using System; using System.Xml; +using MonoTests.Helpers; + namespace nist_dom { public class XmlNodeArrayList : XmlNodeList @@ -117,12 +119,12 @@ namespace nist_dom try { //System.Console.WriteLine(System.IO.Directory.GetCurrentDirectory()); - masterDoc.Load("Test/System.Xml/nist_dom/files/staff.xml"); - originalDoc.Load("Test/System.Xml/nist_dom/files/staff.xml"); - masterXML.Load("Test/System.Xml/nist_dom/files/staff.html"); - otherDoc.Load("Test/System.Xml/nist_dom/files/otherDoc.xml"); - HTMLDoc.Load("Test/System.Xml/nist_dom/files/staff.html"); - noDTDXMLObject.Load("Test/System.Xml/nist_dom/files/noDTDXMLfile.xml"); + masterDoc.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/staff.xml")); + originalDoc.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/staff.xml")); + masterXML.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/staff.html")); + otherDoc.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/otherDoc.xml")); + HTMLDoc.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/staff.html")); + noDTDXMLObject.Load(TestResourceHelper.GetFullPathOfResource ("Test/System.Xml/nist_dom/files/noDTDXMLfile.xml")); } catch (System.Exception ex) { -- cgit v1.2.3