syncthing/vendor/github.com/d4l3k/messagediff/example/atom_test.go
2016-09-13 22:20:22 +02:00

60 lines
1.2 KiB
Go

package examples
import (
"fmt"
"github.com/d4l3k/messagediff"
"golang.org/x/net/html"
"golang.org/x/net/html/atom"
)
func ExampleAtom() {
got := data2()
want := data1()
diff, equal := messagediff.PrettyDiff(want, got)
fmt.Printf("%v %s", equal, diff)
// Output: false modified: [0].FirstChild.NextSibling.Attr = " baz"
}
func data1() []*html.Node {
n := &html.Node{
Type: html.ElementNode, Data: atom.Span.String(),
Attr: []html.Attribute{
{Key: atom.Class.String(), Val: "foo"},
},
}
n.AppendChild(
&html.Node{
Type: html.ElementNode, Data: atom.Span.String(),
Attr: []html.Attribute{
{Key: atom.Class.String(), Val: "bar"},
},
},
)
n.AppendChild(&html.Node{
Type: html.TextNode, Data: "baz",
})
return []*html.Node{n}
}
func data2() []*html.Node {
n := &html.Node{
Type: html.ElementNode, Data: atom.Span.String(),
Attr: []html.Attribute{
{Key: atom.Class.String(), Val: "foo"},
},
}
n.AppendChild(
&html.Node{
Type: html.ElementNode, Data: atom.Span.String(),
Attr: []html.Attribute{
{Key: atom.Class.String(), Val: "bar"},
},
},
)
n.AppendChild(&html.Node{
Type: html.TextNode, Data: " baz",
})
return []*html.Node{n}
}