package markup
import (
"strings"
"testing"
"golang.org/x/net/html"
"golang.org/x/net/html/atom"
)
func attr(n *html.Node, key string) string {
for _, a := range n.Attr {
if a.Key == key {
return a.Val
}
}
return ""
}
func hasClass(n *html.Node, want string) bool {
for _, c := range strings.Fields(attr(n, "class")) {
if c == want {
return true
}
}
return false
}
func TestTableAlignmentSurvivesSanitizer(t *testing.T) {
doc := parseBody(t, "| a | b | c |\n|:--|:-:|--:|\n| 1 | 2 | 3 |\n")
got := []string{}
for _, th := range findAll(doc, atom.Th) {
got = append(got, attr(th, "align"))
}
if strings.Join(got, ",") != "left,center,right" {
t.Fatalf("th align = %v", got)
}
got = got[:0]
for _, td := range findAll(doc, atom.Td) {
got = append(got, attr(td, "align"))
}
if strings.Join(got, ",") != "left,center,right" {
t.Fatalf("td align = %v", got)
}
}