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

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Hutchinson <m.j.hutchinson@gmail.com>2014-03-07 04:38:37 +0400
committerMichael Hutchinson <m.j.hutchinson@gmail.com>2014-03-07 04:38:37 +0400
commit56ee49820e21fae8b100e8ba292b86abb3fb45b3 (patch)
treeee5633129e928bfc197b0d2fb58982d306e0067a /main/tests
parentba6b8718427ca4c81d04b98714f091def7ad185e (diff)
[Xml] Add unit test for parser's tree mode
Diffstat (limited to 'main/tests')
-rw-r--r--main/tests/UnitTests/MonoDevelop.Xml.StateEngine/ParsingTests.cs73
1 files changed, 70 insertions, 3 deletions
diff --git a/main/tests/UnitTests/MonoDevelop.Xml.StateEngine/ParsingTests.cs b/main/tests/UnitTests/MonoDevelop.Xml.StateEngine/ParsingTests.cs
index 32ffa22116..3d09ae4610 100644
--- a/main/tests/UnitTests/MonoDevelop.Xml.StateEngine/ParsingTests.cs
+++ b/main/tests/UnitTests/MonoDevelop.Xml.StateEngine/ParsingTests.cs
@@ -26,9 +26,6 @@
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
//
-using System;
-using System.Collections.Generic;
-using MonoDevelop.Ide.Gui.Content;
using System.Linq;
using NUnit.Framework;
@@ -237,5 +234,75 @@ namespace MonoDevelop.Xml.StateEngine
Assert.AreEqual (1, parser.Errors [0].Region.BeginLine);
Assert.AreEqual (26, parser.Errors [0].Region.BeginColumn);
}
+
+ [Test]
+ public void SimpleTree ()
+ {
+ var parser = new TestParser (CreateRootState (), true);
+ parser.Parse (@"
+<doc>
+ <a>
+ <b>
+ <c/>
+ <d>
+ <e/>
+ </d>
+ <f>
+ <g/>
+ </f>
+ </b>
+ </a>
+</doc>");
+ parser.AssertErrorCount (0);
+
+ var doc = ((XDocument)parser.Nodes.Peek ()).RootElement;
+ Assert.NotNull (doc);
+ Assert.AreEqual ("doc", doc.Name.Name);
+ Assert.True (doc.IsEnded);
+
+ var a = (XElement)doc.FirstChild;
+ Assert.NotNull (a);
+ Assert.AreEqual ("a", a.Name.Name);
+ Assert.True (a.IsEnded);
+ Assert.False (a.IsSelfClosing);
+ Assert.IsNull (a.NextSibling);
+
+ var b = (XElement)a.FirstChild;
+ Assert.NotNull (b);
+ Assert.AreEqual ("b", b.Name.Name);
+ Assert.True (b.IsEnded);
+ Assert.False (b.IsSelfClosing);
+ Assert.IsNull (b.NextSibling);
+
+ var c = (XElement) b.FirstChild;
+ Assert.NotNull (c);
+ Assert.AreEqual ("c", c.Name.Name);
+ Assert.True (c.IsEnded);
+ Assert.True (c.IsSelfClosing);
+ Assert.IsNull (c.FirstChild);
+
+ var d = (XElement) c.NextSibling;
+ Assert.True (d.IsEnded);
+ Assert.False (d.IsSelfClosing);
+ Assert.AreEqual ("d", d.Name.Name);
+
+ var e = (XElement) d.FirstChild;
+ Assert.NotNull (e);
+ Assert.True (e.IsEnded);
+ Assert.True (e.IsSelfClosing);
+ Assert.AreEqual ("e", e.Name.Name);
+
+ var f = (XElement) d.NextSibling;
+ Assert.AreEqual (f, b.LastChild);
+ Assert.True (f.IsEnded);
+ Assert.False (f.IsSelfClosing);
+ Assert.AreEqual ("f", f.Name.Name);
+
+ var g = (XElement) f.FirstChild;
+ Assert.NotNull (g);
+ Assert.True (g.IsEnded);
+ Assert.True (g.IsSelfClosing);
+ Assert.AreEqual ("g", g.Name.Name);
+ }
}
}