diff options
author | Alexander Köplinger <alex.koeplinger@outlook.com> | 2018-09-27 22:36:24 +0300 |
---|---|---|
committer | Alexander Köplinger <alex.koeplinger@outlook.com> | 2018-09-27 23:47:14 +0300 |
commit | 3d910b7477f76d2bc29f6bdcd3eecebe64286252 (patch) | |
tree | 67c634728eee7f485eab09b724a8d35598136f72 /mcs/class | |
parent | ebfcbad23204c4af7124923a3391fc480c9da6ef (diff) |
[System.XML] Switch tests to use embedded test resources
Diffstat (limited to 'mcs/class')
20 files changed, 756 insertions, 717 deletions
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 ("<root/>"); - 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 ("<?xml version=\"1.0\" encoding=\"utf-16\"?>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 ("<xml/>")).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 ("<root/>")); 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 <ginga@kit.hi-ho.ne.jp>
-//
-// (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 = "<root/>";
- xvr = PrepareXmlReader (xml);
- xvr.ValidationType = ValidationType.Schema;
- xvr.Read (); // Is is missing schema component.
- }
-
- [Test]
- public void TestSimpleValidation ()
- {
- string xml = "<root/>";
- 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 = "<hoge/>";
- xvr = PrepareXmlReader (xml);
- xvr.Schemas.Add (schema);
- try {
- xvr.Read ();
- Assert.Fail ("element mismatch is incorrectly allowed");
- } catch (XmlSchemaException) {
- }
-
- xml = "<hoge xmlns='urn:foo' />";
- 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 = "<root>12</root>";
- 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 = "<x:root xmlns:x='urn:foo' />";
- 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 = "<root attr='12'></root>";
- 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 = @"<data
- xmlns='http://www.test.com/schemas/'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xsi:schemaLocation='http://www.test.com/schemas/ /home/user/schema.xsd' />";
- string xsd = @"<xs:schema
- targetNamespace='http://www.test.com/schemas/'
- xmlns:xs='http://www.w3.org/2001/XMLSchema'
- xmlns='http://www.test.com/schemas/' >
- <xs:element name='data' /></xs:schema>";
-
- 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 = "<xml xmlns='urn:a'> <foo> <a:bar xmlns='urn:b' xmlns:a='urn:a' /> <bug /> </foo> </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 = "<root>xx</root><!-- after -->";
- string xsd = @"
-<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
- <xs:element name='root'>
- <xs:simpleType>
- <xs:restriction base='xs:string'>
- <xs:minLength value='2' />
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
-</xs:schema>";
- 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 = "<root> </root><!-- after -->";
- string xsd = @"
-<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
- <xs:element name='root'>
- <xs:simpleType>
- <xs:restriction base='xs:string'>
- <xs:minLength value='2' />
- </xs:restriction>
- </xs:simpleType>
- </xs:element>
-</xs:schema>";
- 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 = @"
-<root>
- <!-- some comment -->
- <child/>
-</root>
-";
- string schema = @"
-<xsd:schema xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
- <xsd:element name=""root"">
- <xsd:complexType>
- <xsd:sequence>
- <xsd:element name=""child"" type=""xsd:string"" />
- </xsd:sequence>
- </xsd:complexType>
- </xsd:element>
-</xsd: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 <ginga@kit.hi-ho.ne.jp> +// +// (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 = "<root/>"; + xvr = PrepareXmlReader (xml); + xvr.ValidationType = ValidationType.Schema; + xvr.Read (); // Is is missing schema component. + } + + [Test] + public void TestSimpleValidation () + { + string xml = "<root/>"; + 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 = "<hoge/>"; + xvr = PrepareXmlReader (xml); + xvr.Schemas.Add (schema); + try { + xvr.Read (); + Assert.Fail ("element mismatch is incorrectly allowed"); + } catch (XmlSchemaException) { + } + + xml = "<hoge xmlns='urn:foo' />"; + 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 = "<root>12</root>"; + 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 = "<x:root xmlns:x='urn:foo' />"; + 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 = "<root attr='12'></root>"; + 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 = @"<data + xmlns='http://www.test.com/schemas/' + xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' + xsi:schemaLocation='http://www.test.com/schemas/ /home/user/schema.xsd' />"; + string xsd = @"<xs:schema + targetNamespace='http://www.test.com/schemas/' + xmlns:xs='http://www.w3.org/2001/XMLSchema' + xmlns='http://www.test.com/schemas/' > + <xs:element name='data' /></xs:schema>"; + + 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 = "<xml xmlns='urn:a'> <foo> <a:bar xmlns='urn:b' xmlns:a='urn:a' /> <bug /> </foo> </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 = "<root>xx</root><!-- after -->"; + string xsd = @" +<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:element name='root'> + <xs:simpleType> + <xs:restriction base='xs:string'> + <xs:minLength value='2' /> + </xs:restriction> + </xs:simpleType> + </xs:element> +</xs:schema>"; + 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 = "<root> </root><!-- after -->"; + string xsd = @" +<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:element name='root'> + <xs:simpleType> + <xs:restriction base='xs:string'> + <xs:minLength value='2' /> + </xs:restriction> + </xs:simpleType> + </xs:element> +</xs:schema>"; + 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 = @" +<root> + <!-- some comment --> + <child/> +</root> +"; + string schema = @" +<xsd:schema xmlns:xsd=""http://www.w3.org/2001/XMLSchema""> + <xsd:element name=""root""> + <xsd:complexType> + <xsd:sequence> + <xsd:element name=""child"" type=""xsd:string"" /> + </xsd:sequence> + </xsd:complexType> + </xsd:element> +</xsd: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 = "<test mode='NOT AN ENUMERATION VALUE' />";
- 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 = "<project xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='nosuchschema.xsd'/>";
- 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 = "<test xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='Test/XmlFiles/xsd/336625.xsd'/>";
- 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 = @"<body xmlns='" + sc.TargetNamespace + "'><div></div></body>";
- 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 = "<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'><xs:element name='foo'><xs:complexType><xs:attribute name='a' default='x' /></xs:complexType></xs:element></xs:schema>";
- string xml = "<foo/>";
- 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 = @"
-<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
- <xsd:element name='Customer' type='CustomerType' />
- <xsd:complexType name='CustomerType'>
- <xsd:attribute name='name' type='xsd:string' />
- </xsd:complexType>
-</xsd:schema>";
- XmlSchema schema = XmlSchema.Read (new StringReader (xsd), null);
-
- string xml = "<Customer name='Bob'> </Customer>";
-
- 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 = @"<root xmlns='urn:foo'>
- <X><Z>text</Z></X>
- <Y><X><Z>text</Z></X></Y>
-</root>";
- string xsd = @"
-<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'
- targetNamespace='urn:foo' xmlns='urn:foo'>
- <xs:complexType name='root-type'>
- <xs:sequence><xs:element ref='X' /><xs:element ref='Y' /></xs:sequence>
- </xs:complexType>
- <xs:complexType name='X-type'>
- <xs:choice minOccurs='1' maxOccurs='unbounded'>
- <xs:any processContents='skip'/>
- </xs:choice>
- </xs:complexType>
- <xs:complexType name='Y-type'>
- <xs:sequence><xs:element ref='X' /></xs:sequence>
- </xs:complexType>
- <xs:element name='root' type='root-type' />
- <xs:element name='X' type='X-type' />
- <xs:element name='Y' type='Y-type' />
-</xs:schema>";
- 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 = @"<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>
- <xs:element name='element_list'>
- <xs:complexType>
- <xs:sequence>
- <xs:element name='element' maxOccurs='unbounded' />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-</xs:schema>";
- string xml = @"<element_list>
- <!-- blah blah blah -->
- <element />
-
- <!-- blah blah -->
- <element />
-</element_list>";
- RunValidation (xml, xsd);
- }
-
- [Test]
- [ExpectedException (typeof (XmlSchemaValidationException))]
- public void EnumerationFacet ()
- {
- // bug #339934
- string xsd = @"<xs:schema id='schema' xmlns:xs='http://www.w3.org/2001/XMLSchema'>
- <xs:simpleType name='ModeType'>
- <xs:restriction base='xs:string'>
- <xs:enumeration value='on' />
- <xs:enumeration value='off' />
- </xs:restriction>
- </xs:simpleType>
- <xs:element name='test'>
- <xs:complexType>
- <xs:sequence/>
- <xs:attribute name='mode' type='ModeType' use='required' />
- </xs:complexType>
- </xs:element>
-</xs:schema>";
- string xml = @"<test mode='out of scope'></test>";
-
- RunValidation (xml, xsd);
- }
-
- [Test]
- public void Bug501763 ()
- {
- string xsd1 = @"
- <xs:schema id='foo1'
- targetNamespace='foo1'
- elementFormDefault='qualified'
- xmlns='foo1'
- xmlns:xs='http://www.w3.org/2001/XMLSchema'
- xmlns:f2='foo2'>
-
- <xs:import namespace='foo2' />
- <xs:element name='Foo1Element' type='f2:Foo2ExtendedType'/>
- </xs:schema>";
-
- string xsd2 = @"
- <xs:schema id='foo2'
- targetNamespace='foo2'
- elementFormDefault='qualified'
- xmlns='foo2'
- xmlns:xs='http://www.w3.org/2001/XMLSchema' >
-
- <xs:element name='Foo2Element' type='Foo2Type' />
-
- <xs:complexType name='Foo2Type'>
- <xs:attribute name='foo2Attr' type='xs:string' use='required'/>
- </xs:complexType>
-
- <xs:complexType name='Foo2ExtendedType'>
- <xs:complexContent>
- <xs:extension base='Foo2Type'>
- <xs:attribute name='foo2ExtAttr' type='xs:string' use='required'/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:schema>";
-
-
- 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 (@"
- <Foo2Element
- foo2Attr='dummyvalue1'
- xmlns='foo2'
- />");
- doc.Schemas.Add (schema2);
- doc.Validate (null);
-
- doc = new XmlDocument();
- doc.LoadXml(@"
- <Foo1Element
- foo2Attr='dummyvalue1'
- foo2ExtAttr='dummyvalue2'
- xmlns='foo1'
- />");
- 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 = "<test mode='NOT AN ENUMERATION VALUE' />"; + 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 = "<project xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='nosuchschema.xsd'/>"; + 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 = "<test xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='Test/XmlFiles/xsd/336625.xsd'/>"; + 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 = @"<body xmlns='" + sc.TargetNamespace + "'><div></div></body>"; + 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 = "<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'><xs:element name='foo'><xs:complexType><xs:attribute name='a' default='x' /></xs:complexType></xs:element></xs:schema>"; + string xml = "<foo/>"; + 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 = @" +<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'> + <xsd:element name='Customer' type='CustomerType' /> + <xsd:complexType name='CustomerType'> + <xsd:attribute name='name' type='xsd:string' /> + </xsd:complexType> +</xsd:schema>"; + XmlSchema schema = XmlSchema.Read (new StringReader (xsd), null); + + string xml = "<Customer name='Bob'> </Customer>"; + + 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 = @"<root xmlns='urn:foo'> + <X><Z>text</Z></X> + <Y><X><Z>text</Z></X></Y> +</root>"; + string xsd = @" +<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' + targetNamespace='urn:foo' xmlns='urn:foo'> + <xs:complexType name='root-type'> + <xs:sequence><xs:element ref='X' /><xs:element ref='Y' /></xs:sequence> + </xs:complexType> + <xs:complexType name='X-type'> + <xs:choice minOccurs='1' maxOccurs='unbounded'> + <xs:any processContents='skip'/> + </xs:choice> + </xs:complexType> + <xs:complexType name='Y-type'> + <xs:sequence><xs:element ref='X' /></xs:sequence> + </xs:complexType> + <xs:element name='root' type='root-type' /> + <xs:element name='X' type='X-type' /> + <xs:element name='Y' type='Y-type' /> +</xs:schema>"; + 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 = @"<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:element name='element_list'> + <xs:complexType> + <xs:sequence> + <xs:element name='element' maxOccurs='unbounded' /> + </xs:sequence> + </xs:complexType> + </xs:element> +</xs:schema>"; + string xml = @"<element_list> + <!-- blah blah blah --> + <element /> + + <!-- blah blah --> + <element /> +</element_list>"; + RunValidation (xml, xsd); + } + + [Test] + [ExpectedException (typeof (XmlSchemaValidationException))] + public void EnumerationFacet () + { + // bug #339934 + string xsd = @"<xs:schema id='schema' xmlns:xs='http://www.w3.org/2001/XMLSchema'> + <xs:simpleType name='ModeType'> + <xs:restriction base='xs:string'> + <xs:enumeration value='on' /> + <xs:enumeration value='off' /> + </xs:restriction> + </xs:simpleType> + <xs:element name='test'> + <xs:complexType> + <xs:sequence/> + <xs:attribute name='mode' type='ModeType' use='required' /> + </xs:complexType> + </xs:element> +</xs:schema>"; + string xml = @"<test mode='out of scope'></test>"; + + RunValidation (xml, xsd); + } + + [Test] + public void Bug501763 () + { + string xsd1 = @" + <xs:schema id='foo1' + targetNamespace='foo1' + elementFormDefault='qualified' + xmlns='foo1' + xmlns:xs='http://www.w3.org/2001/XMLSchema' + xmlns:f2='foo2'> + + <xs:import namespace='foo2' /> + <xs:element name='Foo1Element' type='f2:Foo2ExtendedType'/> + </xs:schema>"; + + string xsd2 = @" + <xs:schema id='foo2' + targetNamespace='foo2' + elementFormDefault='qualified' + xmlns='foo2' + xmlns:xs='http://www.w3.org/2001/XMLSchema' > + + <xs:element name='Foo2Element' type='Foo2Type' /> + + <xs:complexType name='Foo2Type'> + <xs:attribute name='foo2Attr' type='xs:string' use='required'/> + </xs:complexType> + + <xs:complexType name='Foo2ExtendedType'> + <xs:complexContent> + <xs:extension base='Foo2Type'> + <xs:attribute name='foo2ExtAttr' type='xs:string' use='required'/> + </xs:extension> + </xs:complexContent> + </xs:complexType> + </xs:schema>"; + + + 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 (@" + <Foo2Element + foo2Attr='dummyvalue1' + xmlns='foo2' + />"); + doc.Schemas.Add (schema2); + doc.Validate (null); + + doc = new XmlDocument(); + doc.LoadXml(@" + <Foo1Element + foo2Attr='dummyvalue1' + foo2ExtAttr='dummyvalue2' + xmlns='foo1' + />"); + 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) { |