basic json feed parser

This commit is contained in:
Nazar Kanaev 2021-03-19 16:22:37 +00:00
parent 0a9beddef9
commit a895775f81
3 changed files with 141 additions and 0 deletions

43
src/feed/json_test.go Normal file
View file

@ -0,0 +1,43 @@
package feed
import (
"reflect"
"strings"
"testing"
)
func TestJSONFeed(t *testing.T) {
have, _ := ParseJSON(strings.NewReader(`{
"version": "https://jsonfeed.org/version/1",
"title": "My Example Feed",
"home_page_url": "https://example.org/",
"feed_url": "https://example.org/feed.json",
"items": [
{
"id": "2",
"content_text": "This is a second item.",
"url": "https://example.org/second-item"
},
{
"id": "1",
"content_html": "<p>Hello, world!</p>",
"url": "https://example.org/initial-post"
}
]
}`), "https://example.com")
want := &Feed{
Title: "My Example Feed",
SiteURL: "https://example.org/",
FeedURL: "https://example.org/feed.json",
Items: []Item{
{GUID: "2", Content: "This is a second item.", URL: "https://example.org/second-item"},
{GUID: "1", Content: "<p>Hello, world!</p>", URL: "https://example.org/initial-post"},
},
}
if !reflect.DeepEqual(want, have) {
t.Logf("want: %#v", want)
t.Logf("have: %#v", have)
t.Fatal("invalid json")
}
}