aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Balholm <andybalholm@gmail.com>2011-10-25 09:33:15 +1100
committerNigel Tao <nigeltao@golang.org>2011-10-25 09:33:15 +1100
commit2f3f3aa2ed298344f03813214d6b8d486b5f113e (patch)
tree54ef8d87c8143c70d17d15287fbd2af5a331f0de
parent2b5aa28383b78c33e5d6a3e2a8994a6c7a9dee0f (diff)
downloadgo-2f3f3aa2ed298344f03813214d6b8d486b5f113e.tar.gz
go-2f3f3aa2ed298344f03813214d6b8d486b5f113e.zip
html: dump attributes when running parser tests.
The WebKit test data shows attributes as though they were child nodes: <a X>0<b>1<a Y>2 dumps as: | <html> | <head> | <body> | <a> | x="" | "0" | <b> | "1" | <b> | <a> | y="" | "2" So we need to do the same when dumping a tree to compare with it. R=nigeltao CC=golang-dev https://golang.org/cl/5322044
-rw-r--r--src/pkg/html/parse_test.go13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go
index 652bf805de..beba98d3ad 100644
--- a/src/pkg/html/parse_test.go
+++ b/src/pkg/html/parse_test.go
@@ -69,11 +69,15 @@ func readDat(filename string, c chan io.Reader) {
}
}
-func dumpLevel(w io.Writer, n *Node, level int) os.Error {
+func dumpIndent(w io.Writer, level int) {
io.WriteString(w, "| ")
for i := 0; i < level; i++ {
io.WriteString(w, " ")
}
+}
+
+func dumpLevel(w io.Writer, n *Node, level int) os.Error {
+ dumpIndent(w, level)
switch n.Type {
case ErrorNode:
return os.NewError("unexpected ErrorNode")
@@ -81,6 +85,11 @@ func dumpLevel(w io.Writer, n *Node, level int) os.Error {
return os.NewError("unexpected DocumentNode")
case ElementNode:
fmt.Fprintf(w, "<%s>", n.Data)
+ for _, a := range n.Attr {
+ io.WriteString(w, "\n")
+ dumpIndent(w, level+1)
+ fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
+ }
case TextNode:
fmt.Fprintf(w, "%q", n.Data)
case CommentNode:
@@ -123,7 +132,7 @@ func TestParser(t *testing.T) {
rc := make(chan io.Reader)
go readDat(filename, rc)
// TODO(nigeltao): Process all test cases, not just a subset.
- for i := 0; i < 31; i++ {
+ for i := 0; i < 32; i++ {
// Parse the #data section.
b, err := ioutil.ReadAll(<-rc)
if err != nil {