Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/mcs/class
diff options
context:
space:
mode:
authorAlexander Köplinger <alex.koeplinger@outlook.com>2018-09-27 22:36:24 +0300
committerAlexander Köplinger <alex.koeplinger@outlook.com>2018-09-27 23:47:14 +0300
commit3d910b7477f76d2bc29f6bdcd3eecebe64286252 (patch)
tree67c634728eee7f485eab09b724a8d35598136f72 /mcs/class
parentebfcbad23204c4af7124923a3391fc480c9da6ef (diff)
[System.XML] Switch tests to use embedded test resources
Diffstat (limited to 'mcs/class')
-rw-r--r--mcs/class/System.XML/Makefile36
-rw-r--r--mcs/class/System.XML/System.Xml_test.dll.sources1
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaAssertion.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaCollectionTests.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaDatatypeTests.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaSetTests.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaTests.cs22
-rwxr-xr-xmcs/class/System.XML/Test/System.Xml.Schema/XmlSchemaValidatorTests.cs20
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Serialization/ComplexDataStructure.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Serialization/XmlCodeExporterTests.cs4
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Serialization/XmlSchemaImporterTests.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml.Xsl/XslTransformTests.cs36
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XmlNodeTests.cs4
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XmlReaderCommonTests.cs6
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XmlReaderSettingsTests.cs12
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XmlTextReaderTests.cs8
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XmlUrlResolverTests.cs4
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XsdParticleValidationTests.cs4
-rw-r--r--mcs/class/System.XML/Test/System.Xml/XsdValidatingReaderTests.cs1266
-rw-r--r--mcs/class/System.XML/Test/System.Xml/nist_dom/util.cs14
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)
{