public void TestHtmlImplicitClosing ()
		{
			var parser = new TestXmlParser (CreateRootState ());
			parser.Parse(@"
<html>
	<body>
		<li><li>$
		<dt><img><dd>$</dd>
		<tr><tr>$</tr></li>
		<p>
		<table>$</table>
		<td><th><td>$
	</body>
</html>
",
				delegate {
					parser.AssertPath ("//html/body/li");
				},
				delegate {
					parser.AssertPath ("//html/body/li/dd");
				},
				delegate {
					parser.AssertPath ("//html/body/li/tr");
				},
				delegate {
					parser.AssertPath ("//html/body/table");
				},
				delegate {
					parser.AssertPath ("//html/body/td");
				}
			);
			parser.AssertEmpty ();
			parser.AssertErrorCount (1);

		}
		public void TestAutoClosing ()
		{
			var parser = new TestXmlParser (CreateRootState ());
			parser.Parse (@"
<html>
	<body>
		<p><img>$
		<p><div> $ </div>
		<p>
		<p><a href =""http://mono-project.com/"" ><b>foo $ </a>
		<p>
		<p>$
		<div><div>$</div></div>
	</body>
</html>
",
				delegate {
					parser.AssertPath ("//html/body/p");
				},
				delegate {
					parser.AssertPath ("//html/body/div");
				},
				delegate {
					parser.AssertPath ("//html/body/p/a/b");
				},
				delegate {
					parser.AssertPath ("//html/body/p");
				},
				delegate {
					parser.AssertPath ("//html/body/div/div");
				}
			);
			parser.AssertEmpty ();
			parser.AssertErrorCount (1);
		}
Example #3
0
        public void TestHtmlImplicitClosing()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<html>
	<body>
		<li><li>$
		<dt><img><dd>$</dd>
		<tr><tr>$</tr></li>
		<p>
		<table>$</table>
		<td><th><td>$
	</body>
</html>
",
                         delegate {
                parser.AssertPath("//html/body/li");
            },
                         delegate {
                parser.AssertPath("//html/body/li/dd");
            },
                         delegate {
                parser.AssertPath("//html/body/li/tr");
            },
                         delegate {
                parser.AssertPath("//html/body/table");
            },
                         delegate {
                parser.AssertPath("//html/body/td");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(1);
        }
Example #4
0
        public void TestAutoClosing()
        {
            var parser = new TestXmlParser(CreateRootState());

            parser.Parse(@"
<html>
	<body>
		<p><img>$
		<p><div> $ </div>
		<p>
		<p><a href =""http://mono-project.com/"" ><b>foo $ </a>
		<p>
		<p>$
		<div><div>$</div></div>
	</body>
</html>
",
                         delegate {
                parser.AssertPath("//html/body/p");
            },
                         delegate {
                parser.AssertPath("//html/body/div");
            },
                         delegate {
                parser.AssertPath("//html/body/p/a/b");
            },
                         delegate {
                parser.AssertPath("//html/body/p");
            },
                         delegate {
                parser.AssertPath("//html/body/div/div");
            }
                         );
            parser.AssertEmpty();
            parser.AssertErrorCount(1);
        }
		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);
		}
		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);
		}
		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);
		}
		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);
		}