2 // System.Xml.XmlReaderSettingsTests.cs
5 // Atsushi Enomoto <atsushi@ximian.com>
14 using System
.Xml
.Schema
;
15 using NUnit
.Framework
;
17 namespace MonoTests
.System
.Xml
20 public class XmlReaderSettingsTests
: Assertion
23 public void DefaultValue ()
25 XmlReaderSettings s
= new XmlReaderSettings ();
26 AssertEquals (true, s
.CheckCharacters
);
27 AssertEquals (ConformanceLevel
.Document
, s
.ConformanceLevel
);
28 AssertEquals (false, s
.DtdValidate
);
29 AssertEquals (false, s
.IgnoreComments
);
30 AssertEquals (true, s
.IgnoreInlineSchema
);
31 AssertEquals (false, s
.IgnoreProcessingInstructions
);
32 AssertEquals (true, s
.IgnoreSchemaLocation
);
33 AssertEquals (true, s
.IgnoreValidationWarnings
);
34 AssertEquals (false, s
.IgnoreWhitespace
);
35 AssertEquals (0, s
.LineNumberOffset
);
36 AssertEquals (0, s
.LinePositionOffset
);
37 AssertNull (s
.NameTable
);
38 AssertEquals (0, s
.Schemas
.Count
);
39 AssertEquals (false, s
.XsdValidate
);
43 [ExpectedException (typeof (XmlException
))]
44 public void SetSchemas ()
46 XmlReaderSettings s
= new XmlReaderSettings ();
47 s
.Schemas
= new XmlSchemaSet ();
51 public void CloseInput ()
53 StringReader sr
= new StringReader ("<root/><root/>");
54 XmlReader xtr
= XmlReader
.Create (sr
); // default false
57 // It should without error, unlike usual XmlTextReader.
62 public void CreateAndNormalization ()
64 StringReader sr
= new StringReader (
65 "<root attr=' value '>test\rstring</root>");
66 XmlReaderSettings settings
= new XmlReaderSettings ();
67 settings
.CheckCharacters
= false;
68 XmlReader xtr
= XmlReader
.Create (
69 sr
, null, null, settings
);
71 xtr
.MoveToFirstAttribute ();
72 AssertEquals (" value ", xtr
.Value
);
74 // Text string is normalized
75 AssertEquals ("test\nstring", xtr
.Value
);
79 public void CheckCharactersAndNormalization ()
81 // It should *not* raise an error (even Normalization
82 // is set by default).
83 StringReader sr
= new StringReader (
84 "<root attr='�'>�</root>");
85 XmlReaderSettings settings
= new XmlReaderSettings ();
86 settings
.CheckCharacters
= false;
87 XmlReader xtr
= XmlReader
.Create (
88 sr
, null, null, settings
);
89 // After creation, changes on source XmlReaderSettings
91 settings
.CheckCharacters
= false;
93 xtr
.MoveToFirstAttribute ();
94 AssertEquals ("\0", xtr
.Value
);
96 AssertEquals ("\0", xtr
.Value
);
99 // Hmm, does it really make sense? :-/
101 public void CheckCharactersForNonTextReader ()
103 // It should *not* raise an error (even Normalization
104 // is set by default).
105 StringReader sr
= new StringReader (
106 "<root attr='�'>�</root>");
107 XmlReaderSettings settings
= new XmlReaderSettings ();
108 settings
.CheckCharacters
= false;
109 XmlReader xr
= XmlReader
.Create (
110 sr
, null, null, settings
);
112 // Enable character checking for XmlNodeReader.
113 settings
.CheckCharacters
= true;
114 XmlDocument doc
= new XmlDocument ();
116 xr
= XmlReader
.Create (new XmlNodeReader (doc
), settings
);
118 // But it won't work against XmlNodeReader.
120 xr
.MoveToFirstAttribute ();
121 AssertEquals ("\0", xr
.Value
);
123 AssertEquals ("\0", xr
.Value
);