diff options
author | Andrew Balholm <andybalholm@gmail.com> | 2011-10-25 09:33:15 +1100 |
---|---|---|
committer | Nigel Tao <nigeltao@golang.org> | 2011-10-25 09:33:15 +1100 |
commit | 2f3f3aa2ed298344f03813214d6b8d486b5f113e (patch) | |
tree | 54ef8d87c8143c70d17d15287fbd2af5a331f0de | |
parent | 2b5aa28383b78c33e5d6a3e2a8994a6c7a9dee0f (diff) | |
download | go-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.go | 13 |
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 { |