Skip to content
quarry Artifact [4d3faa14e7]
Login

Artifact [4d3faa14e7]

Artifact 4d3faa14e77a59c2e59e69c691c558d6662c9ad52c6ade02918329c7b27e71f1:


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)
	}
}