diff options
Diffstat (limited to 'libgo/go/exp/html/render_test.go')
-rw-r--r-- | libgo/go/exp/html/render_test.go | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/libgo/go/exp/html/render_test.go b/libgo/go/exp/html/render_test.go new file mode 100644 index 00000000000..0584f35abdb --- /dev/null +++ b/libgo/go/exp/html/render_test.go @@ -0,0 +1,111 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package html + +import ( + "bytes" + "testing" +) + +func TestRenderer(t *testing.T) { + n := &Node{ + Type: ElementNode, + Data: "html", + Child: []*Node{ + { + Type: ElementNode, + Data: "head", + }, + { + Type: ElementNode, + Data: "body", + Child: []*Node{ + { + Type: TextNode, + Data: "0<1", + }, + { + Type: ElementNode, + Data: "p", + Attr: []Attribute{ + { + Key: "id", + Val: "A", + }, + { + Key: "foo", + Val: `abc"def`, + }, + }, + Child: []*Node{ + { + Type: TextNode, + Data: "2", + }, + { + Type: ElementNode, + Data: "b", + Attr: []Attribute{ + { + Key: "empty", + Val: "", + }, + }, + Child: []*Node{ + { + Type: TextNode, + Data: "3", + }, + }, + }, + { + Type: ElementNode, + Data: "i", + Attr: []Attribute{ + { + Key: "backslash", + Val: `\`, + }, + }, + Child: []*Node{ + { + Type: TextNode, + Data: "&4", + }, + }, + }, + }, + }, + { + Type: TextNode, + Data: "5", + }, + { + Type: ElementNode, + Data: "blockquote", + }, + { + Type: ElementNode, + Data: "br", + }, + { + Type: TextNode, + Data: "6", + }, + }, + }, + }, + } + want := `<html><head></head><body>0<1<p id="A" foo="abc"def">` + + `2<b empty="">3</b><i backslash="\">&4</i></p>` + + `5<blockquote></blockquote><br/>6</body></html>` + b := new(bytes.Buffer) + if err := Render(b, n); err != nil { + t.Fatal(err) + } + if got := b.String(); got != want { + t.Errorf("got vs want:\n%s\n%s\n", got, want) + } +} |