public void Parse_should_create_ID_expression_nominal() { var path = DomPath.Parse("//*[@id=\"hello\"]"); Assert.Equal("//*[@id=\"hello\"]", path.ToString()); Assert.Equal("f", path.Select(Document)[0].LocalName); }
public void Parse_should_create_index_expressions() { var path = DomPath.Parse("/html/body/div[4]/main"); Assert.Equal("/html/body/div[4]/main", path.ToString()); Assert.Equal(new [] { DomPathExpressionType.Root, DomPathExpressionType.Element, DomPathExpressionType.Element, DomPathExpressionType.Element, DomPathExpressionType.Element, }, path.Expressions.Select(e => e.Type)); Assert.Equal(new [] { "html", "body", "div", "main", }, path.Expressions.Skip(1).Select(e => e.LocalName)); Assert.Equal(new [] { -1, -1, 4, -1, }, path.Expressions.Skip(1).Select(e => e.Index)); }
public void Parse_should_create_attribute_expressions() { var path = DomPath.Parse("/root/a/b@one"); Assert.Equal("/root/a/b@one", path.ToString()); Assert.Same(BElement.Attributes["one"], path.Select(Document)[0]); }
public void Parse_should_create_expressions_and_match() { var path = DomPath.Parse("/root/a/b/c"); Assert.Equal("/root/a/b/c", path.ToString()); Assert.Same(BElement.FirstChild, path.Select(Document)[0]); }
public void Parse_should_match_index_expression() { var path = DomPath.Parse("/root/a/b/c[2]"); Assert.Equal("/root/a/b/c[2]", path.ToString()); var actual = path.Select(Document)[0] as DomElement; Assert.Equal("c", actual.LocalName); Assert.Equal("present", actual.Attribute("attr")); }