diff options
Diffstat (limited to 'internal/reader/json/parser_test.go')
-rw-r--r-- | internal/reader/json/parser_test.go | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/internal/reader/json/parser_test.go b/internal/reader/json/parser_test.go index 8e4102e0..0bbd39ec 100644 --- a/internal/reader/json/parser_test.go +++ b/internal/reader/json/parser_test.go @@ -177,6 +177,82 @@ func TestParsePodcast(t *testing.T) { } } +func TestParseFeedWithFeedURLWithTrailingSpace(t *testing.T) { + data := `{ + "version": "https://jsonfeed.org/version/1", + "title": "My Example Feed", + "home_page_url": "https://example.org/", + "feed_url": "https://example.org/feed.json ", + "items": [] + }` + + feed, err := Parse("https://example.org/feed.json", bytes.NewBufferString(data)) + if err != nil { + t.Fatal(err) + } + + if feed.FeedURL != "https://example.org/feed.json" { + t.Errorf("Incorrect feed URL, got: %s", feed.FeedURL) + } +} + +func TestParseFeedWithRelativeFeedURL(t *testing.T) { + data := `{ + "version": "https://jsonfeed.org/version/1", + "title": "My Example Feed", + "home_page_url": "https://example.org/", + "feed_url": "/feed.json", + "items": [] + }` + + feed, err := Parse("https://example.org/feed.json", bytes.NewBufferString(data)) + if err != nil { + t.Fatal(err) + } + + if feed.FeedURL != "https://example.org/feed.json" { + t.Errorf("Incorrect feed URL, got: %s", feed.FeedURL) + } +} + +func TestParseFeedSiteURLWithTrailingSpace(t *testing.T) { + data := `{ + "version": "https://jsonfeed.org/version/1", + "title": "My Example Feed", + "home_page_url": "https://example.org/ ", + "feed_url": "https://example.org/feed.json", + "items": [] + }` + + feed, err := Parse("https://example.org/feed.json", bytes.NewBufferString(data)) + if err != nil { + t.Fatal(err) + } + + if feed.SiteURL != "https://example.org/" { + t.Errorf("Incorrect site URL, got: %s", feed.SiteURL) + } +} + +func TestParseFeedWithRelativeSiteURL(t *testing.T) { + data := `{ + "version": "https://jsonfeed.org/version/1", + "title": "My Example Feed", + "home_page_url": "/home ", + "feed_url": "https://example.org/feed.json", + "items": [] + }` + + feed, err := Parse("https://example.org/feed.json", bytes.NewBufferString(data)) + if err != nil { + t.Fatal(err) + } + + if feed.SiteURL != "https://example.org/home" { + t.Errorf("Incorrect site URL, got: %s", feed.SiteURL) + } +} + func TestParseFeedWithoutTitle(t *testing.T) { data := `{ "version": "https://jsonfeed.org/version/1", |