aboutsummaryrefslogtreecommitdiff
path: root/internal/reader/json/parser_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/reader/json/parser_test.go')
-rw-r--r--internal/reader/json/parser_test.go76
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",