diff options
author | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2014-03-07 04:38:37 +0400 |
---|---|---|
committer | Michael Hutchinson <m.j.hutchinson@gmail.com> | 2014-03-07 04:38:37 +0400 |
commit | 56ee49820e21fae8b100e8ba292b86abb3fb45b3 (patch) | |
tree | ee5633129e928bfc197b0d2fb58982d306e0067a /main/tests | |
parent | ba6b8718427ca4c81d04b98714f091def7ad185e (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.cs | 73 |
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); + } } } |