public void IncompleteTags()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<doc>
	<tag.a att1 >
		<tag.b att2="" >
			<tag.c att3 = ' 
				<tag.d $ att4 = >
					<tag.e att5='' att6=' att7 = >
						<tag.f id='$foo' />
					</tag.e>
				</tag.d>
			</tag.c>
		</tag.b>
	</tag.a>
</doc>
",
                         delegate {
                parser.AssertStateIs <XmlTagState> ();
                Assert.IsFalse(parser.Nodes.Peek(1).IsComplete);
                parser.AssertNodeDepth(6);
                parser.AssertPath("//doc/tag.a/tag.b/tag.c/tag.d");
            },
                         delegate {
                parser.AssertStateIs <XmlAttributeValueState> ();
                parser.AssertNodeDepth(9);
                Assert.IsTrue(parser.Nodes.Peek(3) is XElement eld && eld.Name.Name == "tag.d" && eld.IsComplete);
                Assert.IsTrue(parser.Nodes.Peek(2) is XElement ele && ele.Name.Name == "tag.e" && !ele.IsComplete);
                Assert.IsTrue(parser.Nodes.Peek(1) is XElement elf && elf.Name.Name == "tag.f" && !elf.IsComplete);
                Assert.IsTrue(parser.Nodes.Peek() is XAttribute att && !att.IsComplete);
                parser.AssertPath("//doc/tag.a/tag.b/tag.c/tag.d/tag.e/tag.f/@id");
            }
Exemple #2
0
        public void Unclosed()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<doc>
	<tag.a>
		<tag.b><tag.b>$
	</tag.a>$
</doc>
",
                         delegate {
                parser.AssertStateIs <XmlRootState> ();
                parser.AssertNodeDepth(5);
                parser.AssertPath("//doc/tag.a/tag.b/tag.b");
            },
                         delegate {
                parser.AssertStateIs <XmlRootState> ();
                parser.AssertNodeDepth(2);
                parser.AssertPath("//doc");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(2);
        }
Exemple #3
0
        public void Misc()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<doc>
	<!DOCTYPE $  >
	<![CDATA[ ]  $ ]  ]]>
	<!--   <foo> <bar arg=""> $  -->
</doc>
",
                         delegate {
                parser.AssertStateIs <XmlDocTypeState> ();
                parser.AssertNodeDepth(3);
                parser.AssertPath("//doc/<!DOCTYPE>");
            },
                         delegate {
                parser.AssertStateIs <XmlCDataState> ();
                parser.AssertNodeDepth(3);
                parser.AssertPath("//doc/<![CDATA[ ]]>");
            },
                         delegate {
                parser.AssertStateIs <XmlCommentState> ();
                parser.AssertNodeDepth(3);
                parser.AssertPath("//doc/<!-- -->");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(0);
        }
Exemple #4
0
        public void IncompleteTags()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<doc>
	<tag.a att1 >
		<tag.b att2="" >
			<tag.c att3 = ' 
				<tag.d att4 = >
					<tag.e att5='' att6=' att7 = >
						<tag.f id='$foo' />
					</tag.e>
				</tag.d>
			</tag.c>
		</tag.b>
	</tag.a>
</doc>
",
                         delegate {
                parser.AssertStateIs <XmlAttributeValueState> ();
                parser.AssertNodeDepth(9);
                parser.AssertPath("//doc/tag.a/tag.b/tag.c/tag.d/tag.e/tag.f/@id");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(5, x => x.ErrorType == ErrorType.Error);
        }
Exemple #5
0
 public void PathTest1()
 {
     TestXmlParser.AssertTree(
         "<foo xmlns='" + namespaceURI + "'$><bar>",
         n => TestXmlParser.AssertPath(
             n,
             new QualifiedName("foo", namespaceURI)
             )
         );
 }
Exemple #6
0
 public void PathTest10()
 {
     TestXmlParser.AssertTree(
         "<foo xmlns='" + namespaceURI + "'><bar $Id=\r\n</foo>",
         n => TestXmlParser.AssertPath(
             n,
             new QualifiedName("foo", namespaceURI),
             new QualifiedName("bar", namespaceURI)
             )
         );
 }
Exemple #7
0
 public void PathTest9()
 {
     TestXmlParser.AssertTree(
         "<foo xmlns='" + namespaceURI + "'><bar \n\n hi='$'>",
         n => TestXmlParser.AssertPath(
             n,
             new QualifiedName("foo", namespaceURI),
             new QualifiedName("bar", namespaceURI)
             )
         );
 }
 public void PathTest7()
 {
     TestXmlParser.Parse(
         "<foo xmlns='" + namespaceURI + "'><bar a='a'  $>",
         n => TestXmlParser.AssertPath(
             n,
             new QualifiedName("foo", namespaceURI),
             new QualifiedName("bar", namespaceURI)
             )
         );
 }
        public void AttributeName()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<doc>
	<tag.a>
		<tag.b id=""$foo"" />
	</tag.a>
</doc>
",
                         delegate {
                parser.AssertStateIs <XmlAttributeValueState> ();
                parser.AssertPath("//doc/tag.a/tag.b/@id");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(0);
        }