package hierarchy import "testing" const sampleDump = ` ` func TestParseCountsNodes(t *testing.T) { tree, err := Parse(sampleDump) if err != nil { t.Fatalf("Parse: %v", err) } if len(tree.Elements) != 4 { t.Fatalf("want 4 elements, got %d", len(tree.Elements)) } } func TestFindByIDSuffix(t *testing.T) { tree, _ := Parse(sampleDump) element := tree.Find("id:title") if element == nil { t.Fatal("expected match for id:title") } if element.Text != "Hello" { t.Fatalf("unexpected text %q", element.Text) } } func TestFindByText(t *testing.T) { tree, _ := Parse(sampleDump) element := tree.Find("text:Alice") if element == nil { t.Fatal("expected match for text:Alice") } } func TestFindAllReturnsDuplicates(t *testing.T) { tree, _ := Parse(sampleDump) elements := tree.FindAll("id:row") if len(elements) != 2 { t.Fatalf("want 2, got %d", len(elements)) } } func TestBoundsCenter(t *testing.T) { tree, _ := Parse(sampleDump) element := tree.Find("text:Alice") x, y := element.Bounds.Center() if x != 540 || y != 150 { t.Fatalf("unexpected center %d,%d", x, y) } } func TestParseEmpty(t *testing.T) { tree, err := Parse("") if err != nil { t.Fatalf("Parse: %v", err) } if len(tree.Elements) != 0 { t.Fatalf("want empty, got %d", len(tree.Elements)) } } func TestUnknownSelector(t *testing.T) { tree, _ := Parse(sampleDump) if tree.Find("bogus:value") != nil { t.Fatal("unknown kind should not match") } } func TestDescPrefix(t *testing.T) { xml := ` ` tree, _ := Parse(xml) rows := tree.FindAll("descPrefix:customer_row_") if len(rows) != 2 { t.Fatalf("want 2 customer rows, got %d", len(rows)) } }