Fixed inadvertent recursion in SelectNodes. Updated/add tests for this behavior

This commit is contained in:
Shaun Duncan 2013-10-25 16:44:32 -04:00
parent d5a758279d
commit ecf8264ac7
2 changed files with 33 additions and 12 deletions

View file

@ -28,10 +28,10 @@ func TestWildcard(t *testing.T) {
return
}
list := doc.SelectNodes("ns", "*")
list := doc.SelectNodesRecursive("ns", "*")
if len(list) != 1 {
t.Errorf("Wrong number of child elements. Expected 1, got %d.", len(list))
if len(list) != 7 {
t.Errorf("Wrong number of child elements. Expected 7, got %d.", len(list))
return
}
}
@ -94,13 +94,36 @@ func TestNodeSearch(t *testing.T) {
return
}
nodes := doc.SelectNodes("", "item")
nodes := doc.SelectNodesRecursive("", "item")
if len(nodes) == 0 {
t.Errorf("SelectNodes(): no nodes found.")
return
}
}
func TestSelectNodes(t *testing.T) {
doc := New()
if err := doc.LoadFile("test1.xml", nil); err != nil {
t.Errorf("LoadFile(): %s", err)
return
}
ch := doc.SelectNode("", "channel")
topLevelLinks := ch.SelectNodes("", "link")
if len(topLevelLinks) != 1 {
t.Errorf("SelectNodes(): Expected 1, Got %d", len(topLevelLinks))
return
}
allLinks := ch.SelectNodesRecursive("", "link")
if len(allLinks) != 8 {
t.Errorf("SelectNodes(): Expected 8, Got %d", len(allLinks))
return
}
}
type Image struct {
Title string `xml:"title"`
Url string `xml:"url"`