Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / class / Commons.Xml.Relaxng / Test / RelaxngReaderTests.cs
1 //
2 // RelaxngReaderTests.cs
3 //
4 // Authors:
5 //   Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
6 //
7 // (C) 2003 Atsushi Enomoto
8 //
9
10 using System;
11 using System.IO;
12 using System.Xml;
13 using Commons.Xml.Relaxng;
14 using NUnit.Framework;
15
16 namespace MonoTests.Commons.Xml.Relaxng
17 {
18         [TestFixture]
19         public class RelaxngReaderTests
20         {
21                 RelaxngReader reader;
22
23                 [SetUp]
24                 public void SetUp ()
25                 {
26                 }
27                 
28                 private void loadGrammarFromUrl (string url)
29                 {
30                         reader = new RelaxngReader (new XmlTextReader (url));
31                 }
32                 
33                 [Test]
34                 public void SimpleRead ()
35                 {
36                         loadGrammarFromUrl ("Test/XmlFiles/SimpleElementPattern1.rng");
37                         RelaxngPattern p = reader.ReadPattern ();
38
39                         Assert.AreEqual (RelaxngPatternType.Element, p.PatternType);
40                 }
41
42                 [Test]
43                 public void CompileRelaxngGrammar ()
44                 {
45                         loadGrammarFromUrl ("Test/XmlFiles/relaxng.rng");
46                         RelaxngPattern p = reader.ReadPattern ();
47
48                         Assert.AreEqual (RelaxngPatternType.Grammar, p.PatternType);
49
50                         p.Compile ();
51                 }
52
53                 [Test]
54                 public void Bug347945 ()
55                 {
56                         string rng = @"
57 <element name='x' xmlns='http://relaxng.org/ns/structure/1.0'>
58   <interleave>
59     <element name='y'><text/></element>
60     <element name='z'><text/></element>
61   </interleave>
62 </element>";
63                         RelaxngPattern p = RelaxngPattern.Read (new XmlTextReader (rng, XmlNodeType.Document, null));
64                 }
65         }
66 }