summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/net/html/parse_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/net/html/parse_test.go')
-rw-r--r--vendor/golang.org/x/net/html/parse_test.go54
1 files changed, 34 insertions, 20 deletions
diff --git a/vendor/golang.org/x/net/html/parse_test.go b/vendor/golang.org/x/net/html/parse_test.go
index 7e47d11..0b72a12 100644
--- a/vendor/golang.org/x/net/html/parse_test.go
+++ b/vendor/golang.org/x/net/html/parse_test.go
@@ -125,6 +125,7 @@ func (a sortedAttributes) Swap(i, j int) {
func dumpLevel(w io.Writer, n *Node, level int) error {
dumpIndent(w, level)
+ level++
switch n.Type {
case ErrorNode:
return errors.New("unexpected ErrorNode")
@@ -140,13 +141,19 @@ func dumpLevel(w io.Writer, n *Node, level int) error {
sort.Sort(attr)
for _, a := range attr {
io.WriteString(w, "\n")
- dumpIndent(w, level+1)
+ dumpIndent(w, level)
if a.Namespace != "" {
fmt.Fprintf(w, `%s %s="%s"`, a.Namespace, a.Key, a.Val)
} else {
fmt.Fprintf(w, `%s="%s"`, a.Key, a.Val)
}
}
+ if n.Namespace == "" && n.DataAtom == atom.Template {
+ io.WriteString(w, "\n")
+ dumpIndent(w, level)
+ level++
+ io.WriteString(w, "content")
+ }
case TextNode:
fmt.Fprintf(w, `"%s"`, n.Data)
case CommentNode:
@@ -176,7 +183,7 @@ func dumpLevel(w io.Writer, n *Node, level int) error {
}
io.WriteString(w, "\n")
for c := n.FirstChild; c != nil; c = c.NextSibling {
- if err := dumpLevel(w, c, level+1); err != nil {
+ if err := dumpLevel(w, c, level); err != nil {
return err
}
}
@@ -196,34 +203,36 @@ func dump(n *Node) (string, error) {
return b.String(), nil
}
-const testDataDir = "testdata/webkit/"
+var testDataDirs = []string{"testdata/webkit/", "testdata/go/"}
func TestParser(t *testing.T) {
- testFiles, err := filepath.Glob(testDataDir + "*.dat")
- if err != nil {
- t.Fatal(err)
- }
- for _, tf := range testFiles {
- f, err := os.Open(tf)
+ for _, testDataDir := range testDataDirs {
+ testFiles, err := filepath.Glob(testDataDir + "*.dat")
if err != nil {
t.Fatal(err)
}
- defer f.Close()
- r := bufio.NewReader(f)
-
- for i := 0; ; i++ {
- text, want, context, err := readParseTest(r)
- if err == io.EOF {
- break
- }
+ for _, tf := range testFiles {
+ f, err := os.Open(tf)
if err != nil {
t.Fatal(err)
}
+ defer f.Close()
+ r := bufio.NewReader(f)
- err = testParseCase(text, want, context)
+ for i := 0; ; i++ {
+ text, want, context, err := readParseTest(r)
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ t.Fatal(err)
+ }
- if err != nil {
- t.Errorf("%s test #%d %q, %s", tf, i, text, err)
+ err = testParseCase(text, want, context)
+
+ if err != nil {
+ t.Errorf("%s test #%d %q, %s", tf, i, text, err)
+ }
}
}
}
@@ -373,6 +382,11 @@ func TestNodeConsistency(t *testing.T) {
}
}
+func TestParseFragmentWithNilContext(t *testing.T) {
+ // This shouldn't panic.
+ ParseFragment(strings.NewReader("<p>hello</p>"), nil)
+}
+
func BenchmarkParser(b *testing.B) {
buf, err := ioutil.ReadFile("testdata/go1.html")
if err != nil {