From c5e4539c38dbec90fc650bd0571712af82839974 Mon Sep 17 00:00:00 2001 From: Hiromu OCHIAI Date: Thu, 10 Dec 2020 18:42:43 +0900 Subject: [PATCH] Add test for Walk --- all_test.go | 21 +++++++++++++++++++++ opengraph.go | 11 ++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/all_test.go b/all_test.go index 6defad0..6e65bf2 100644 --- a/all_test.go +++ b/all_test.go @@ -11,6 +11,7 @@ import ( "github.com/otiai10/marmoset" . "github.com/otiai10/mint" + "golang.org/x/net/html" ) func TestNew(t *testing.T) { @@ -115,6 +116,26 @@ func TestFetchWithContext(t *testing.T) { cancel100ms() } +func TestOpenGraph_Walk(t *testing.T) { + s := dummyServer(2) + res, err := http.Get(s.URL) + Expect(t, err).ToBe(nil) + + node, err := html.Parse(res.Body) + Expect(t, err).ToBe(nil) + + og := New(s.URL) + err = og.Walk(node) + Expect(t, err).ToBe(nil) + Expect(t, og.Title).ToBe("はいさいナイト") + res.Body.Close() + + again := New(s.URL) + err = again.Walk(node) + Expect(t, err).ToBe(nil) + Expect(t, again.Title).ToBe("はいさいナイト") +} + func dummyServer(id int) *httptest.Server { marmoset.LoadViews("./test/html") r := marmoset.NewRouter() diff --git a/opengraph.go b/opengraph.go index 30096f3..7f2d944 100644 --- a/opengraph.go +++ b/opengraph.go @@ -138,15 +138,20 @@ func (og *OpenGraph) Parse(body io.Reader) error { if err != nil { return err } - og.Walk(node) + og.walk(node) return nil } +// Walk scans HTML nodes to pick up meaningful OGP data. +func (og *OpenGraph) Walk(n *html.Node) error { + return og.walk(n) +} + func (og *OpenGraph) satisfied() bool { return false } -func (og *OpenGraph) Walk(n *html.Node) error { +func (og *OpenGraph) walk(n *html.Node) error { if og.satisfied() { return nil } @@ -166,7 +171,7 @@ func (og *OpenGraph) Walk(n *html.Node) error { } for child := n.FirstChild; child != nil; child = child.NextSibling { - og.Walk(child) + og.walk(child) } return nil