]> Cypherpunks repositories - gostls13.git/commitdiff
html: dump attributes when running parser tests.
authorAndrew Balholm <andybalholm@gmail.com>
Mon, 24 Oct 2011 22:33:15 +0000 (09:33 +1100)
committerNigel Tao <nigeltao@golang.org>
Mon, 24 Oct 2011 22:33:15 +0000 (09:33 +1100)
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

src/pkg/html/parse_test.go

index 652bf805de9318423f96ebd173ea467abe003f3e..beba98d3ad2f5336d9f9d949e6bb77adfb5e5efc 100644 (file)
@@ -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 {